Z0UjAQEAAAAAAAAAAAAAAE4AAAAqAAAAAQAAAAAAAAAqAAAAAAAAABwAAAAAAAAAHQAAAAAAAAAEAAAAAAAAAAUAAAAAAAAAGQAAAAAAAAAGAAAAAAAAACUAAAAAAAAABwAAAAAAAAAfAAAAAAAAAAgAAAAAAAAACQAAAAAAAAAAAQAAAAAAAAEBAAAAAAAADAEAAAAAAAARAQAAAAAAAAIBAAAAAAAAAwEAAAAAAAANAQAAAAAAAA4BAAAAAAAACgAAAAAAAAALAAAAAAAAAAwAAAAAAAAADQAAAAAAAAAOAAAAAAAAABAAAAAAAAAAEwAAAAAAAAAUAAAAAAAAABUAAAAAAAAAFgAAAAAAAAAEAQAAAAAAAAUBAAAAAAAABwEAAAAAAAAaAAAAAAAAABsAAAAAAAAADwEAAAAAAAAQAQAAAAAAACYAAAAAAAAAJwAAAAAAAADsAgAAAAAAgCgAAAAAAAAAbAcAAAAAAAAAAAAAAAAAAAQAAAAAAAAAIAAAAAAAAABwAAAAAAAAAHQAAAAAAAAAeAAAAAAAAACEAAAAAAAAAP//////////jAAAAAAAAADgAgAAAAAAAJQDAAAAAAAApAYAAAAAAADcBgAAAAAAADgHAAAAAAAAPAcAAAAAAABABwAAAAAAAKAHAAAAAAAApAcAAAAAAACoBwAAAAAAAKwHAAAAAAAAIA8AAAAAAACYQgAAAAAAAJhEAAAAAAAAiLMSAAAAAADAwRIAAAAAAJDhEgAAAAAAkPkSAAAAAADIARMAAAAAAOAOEwAAAAAAuBQTAAAAAAAQGxMAAAAAAMA3EwAAAAAAgFATAAAAAAAAXhMAAAAAAKhhEwAAAAAA/////////////////////1BlEwAAAAAAWGkTAAAAAADgbBMAAAAAAPCZEwAAAAAAsAcAAAAAAAAEAAAAAAAAABwAAAAAAAAAUAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAVAIAAAAAAAC0AAAAAAAAABADAAAAAAAAOAAAAAAAAABcAAAAAAAAAAQAAAAAAAAABAAAAAAAAABgAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAdDMAAAAAAAAAAgAAAAAAAPBuEgAAAAAANA4AAAAAAADQHwAAAAAAAAAYAAAAAAAAOAgAAAAAAAAUDQAAAAAAANgFAAAAAAAAWAYAAAAAAACwHAAAAAAAAMAYAAAAAAAAfA0AAAAAAACoAwAAAAAAAKgDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEAAAAAAAAiAMAAAAAAAAQLQAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEADIyLjA0LjAwMSBvciBhYm92ZQAAAAAAAAAABQAFAAgCAAAyMi41MC4wNzYAAAAAAAAAMjIuNTAuMDc2AAAAAAAAAGxpbnV4X3JoZWw1MF9nY2M0OHhfNjQgZ2NjXzQuOC4zAAAAAAAAAAAAAAAwS7kAAAAAAADTFotaAAAAAFIXi1oAAAAAEwAAADEAAAAMAAAAAAAAAA0AAAAAAAAADgAAAAAAAAAPAAAAAAAAABAAAAAAAAAAEQAAAAAAAAASAAAAAAAAABMAAAAAAAAAFAAAAAAAAAAVAAAAAAAAABYAAAAAAAAAGAAAAAAAAAAEAQAAAAAAAAUBAAAAAAAABgEAAAAAAAAHAQAAAAAAAAgBAAAAAAAACQEAAAAAAAAKAQAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAADsAgAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAACQAAAAAAAAAJAAAAAAAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAAP/////+/////////wIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAD///////////////8AAAAADgAAAAAAAAAaAAAAAAAAABsAAAAAAAAACwEAAAAAAAAPAQAAAAAAABABAAAAAAAAIAAAAAAAAAAhAAAAAAAAACMAAAAAAAAAJgAAAAAAAAAnAAAAAAAAABQBAAAAAAAAFQEAAAAAAAAWAQAAAAAAABcBAAAAAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAEAAAAAAAAACQCAAAAAAAAFgAAAA0AAAAAAgAAAAAAAAABAAAAAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAACAQAAAAAAAAICAAAAAAAA3C8AAAAAAIDxLwAAAAAAgGAwAAAAAACAnzEAAAAAAID4MgAAAAAAgCQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAFAAAAAAAAAAYAAAAAAAAACgAAAAAAAAAOAAAAAAAAABIAAAAAAAAAFgAAAAAAAAAfAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAA3C8AAAEAAAD/////CgAAAAMAAAAAAAAA8S8AAAEAAAD/////CgAAAAMAAAAAAAAAYDAAAAEAAAD/////CgAAAAMAAAAAAAAAnzEAAAEAAAD/////AAAAAAMAAAAAAAAA+DIAAAEAAAD/////AAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAP////8AAACAAAAAgAEAAMAAAAAAAQAAAAAAAAABAADAAAAAAAEAAAAAAAAAAQAAwAAAAAABAAAAAAAAAAEAAMABAAAABAAAAB15AwABAADAAQAAAAIAAABMuQAADQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADtAgAAAQAAAAAAAAAAAAAAAAAAACMAAAAFAAAAbWFza0xheW91dAAAAAAAAOgDAAAAAAAAc2NoZW1hdGljAAAAAAAAAKAAAAAFAAAAc2NoZW1hdGljU3ltYm9sAKAAAAAFAAAAbmV0bGlzdACgAAAABQAAAAUAAAAAAAAAAAAAAAIAAABtYXNrTGF5b3V0AAAAAAAAAAAAAAAAAABzY2hlbWF0aWMAAAAAAAAAAAAAAAAAAABzY2hlbWF0aWNTeW1ib2wAAAAAAAAAAABuZXRsaXN0AAAAAAAAAAAAAQAAAAAAAAC+UwAAqF4AAAAAAAAAQAAAYDMAAAAAAAAAAAAAAAAAAGRyYXdpbmcAZmlsbABzbG90AE9QQ1NlcmlmAE9QQ0FudGlTZXJpZgBhbm5vdGF0aW9uAGdhcEZpbGwAcmVkdW5kYW50AG9hQW55AG9hTm8Ab2FGaWxsT1BDAG9hQ3VzdG9tRmlsbABVbnJvdXRlZABsYXllckFiYnJldmlhdGlvbgAAVW5yb3V0ZQBDYW5wbGFjZQBDYW5wbGFjAENhbm5vdG9jY3VweQBub09jdXB5AEdyb3VwAFJvdwBtYXJrZXIAY2hhbmdlZExheWVyAGNobmdMeXIAZGVzaWduRmxvdwBkc25GbG93AHVuc2V0AHVua25vd24Ac3VwcGx5AHNwaWtlAHJlc2lzdABoaXoAZHJpdmUAc2VsZWN0AGhpbGl0ZQB5OQB5OAB5NwB5NgB5NQB5NAB5MwB5MgB5MQB5MABzdHJldGNoAHNuYXAAZWRnZUxheWVyAGVkZ2VMeXIAYXhpcwBwaW4Ad2lyZQBkZXZpY2UAYm9yZGVyAHRleHQAc29mdEZlbmNlAHNvZnRGbmMAaGFyZEZlbmNlAGhhcmRGbmMAYWxpZ24AcHJCb3VuZGFyeQBwckJuZHJ5AGluc3RhbmNlAGluc3RuY2UAYW5ub3RhdGUAYW5vdGF0ZQBncmlkAGJhY2tncm91bmQAYmtncm91bmQAcHVycG9zZUFiYnJldmlhdGlvbgB3YXJuaW5nAHduZwB0b29sMQB0bDEAdG9vbDAAdGwwAGxhYmVsAGxibABmbGlnaHQAZmx0AGVycm9yAGVycgBhbnQAZHJhd2luZzEAZHIxAGRyYXdpbmcyAGRyMgBkcmF3aW5nMwBkcjMAZHJhd2luZzQAZHI0AGRyYXdpbmc1AGRyNQBkcmF3aW5nNgBkcjYAZHJhd2luZzcAZHI3AGRyYXdpbmc4AGRyOABkcmF3aW5nOQBkcjkAYm91bmRhcnkAYm5kAGZpbABkcncAbmV0AGNlbGwAY2VsAGFsbAB0ZWNoTFBQAGxwcFBhY2tldE5hbWUAcHJiZGcAbHBwUHJpb3JpdHkAbHBwTGF5ZXIAbHBwUHVycG9zZQBscHBGbGFncwBwd2VsbABycG9seVBpbgBycG9seUxhYmVsAHJlcwBycG9seVJlcwBjdXQAcnBvbHlDdXQAcHdlbGxpc28AcHdlbGxpcwBlbG0AbndlbGwAaGlsaXRlMQBud2VsbFBpbgBud2VsbExhYmVsAGRud2VsbAB2aHZpAFZodmlJZABkaWZmAGRpZmZSZXMAZGlmZkN1dABkaWZmUGluAGRpZmZMYWJlbABkaWZmTmV0AGRpZmZCbmQAaHYAZGlmZkh2AHRhcAB0YXBQaW4AdGFwTmV0AHRhcEJuZAB0YXBMYWJlbABwc2RtAG5zZG0AcG9seQBwb2x5UGluAHBvbHlSZXMAcG9seUN1dABnYXRlAHBvbHlHYXRlAHBvbHlMYWJlbABwb2x5Qm5kAHByb2JlAHBvbHlQcm9iZQBzaG9ydABwb2x5U2hvcnQAcG9seU5ldABtb2RlbABwb2x5TW9kZWwAbGRudG0AbWV0OABsdnRuAGh2dHAAaHZ0cgB0dW5tAGxpY29uMQBsaWNvbjFCbmQAbGljb24xUGluAGxpY29uMU5ldABucGMAc2lsbQBsaTEAbGkxUGluAGxpMVJlcwBsaTFDdXQAbGkxTGFiZWwAbGkxTmV0AGxpMUJuZABibG9ja2FnZQBsaTFCbGtnAGxpMVNob3J0AGxpMVByb2JlAG1jb24AbWNvbkJuZABtY29uUGluAG1jb25OZXQAbWV0MQBtZXQxUmVzAG1ldDFDdXQAbWV0MVBpbgBtZXQxTGFiZWwAbWV0MU5ldABtZXQxQm5kAG1ldDFCbGtnAG1ldDFTaG9ydABtZXQxUHJvYmUAb3B0aW9uMQBtZXQxTWV0b3AxAG9wdGlvbjIAbWV0MU1ldG9wMgBvcHRpb24zAG1ldDFNZXRvcDMAb3B0aW9uNABtZXQxTWV0b3A0AG9wdGlvbjUAbWV0MU1ldG9wNQBvcHRpb242AG1ldDFNZXRvcDYAb3B0aW9uNwBtZXQxTWV0b3A3AG9wdGlvbjgAbWV0MU1ldG9wOAB2aWEAdmlhQm5kAHZpYU5ldAB2aWFQaW4AbWV0MgBtZXQyUmVzAG1ldDJDdXQAbWV0MlBpbgBtZXQyTGFiZWwAbWV0Mk5ldABtZXQyQm5kAG1ldDJCbGtnAG1ldDJTaG9ydABtZXQyUHJvYmUAbWV0Mk1ldG9wMQBtZXQyTWV0b3AyAG1ldDJNZXRvcDMAbWV0Mk1ldG9wNABtZXQyTWV0b3A1AG1ldDJNZXRvcDYAbWV0Mk1ldG9wNwBtZXQyTWV0b3A4AHZpYTIAdmlhMkJuZAB2aWEyUGluAHZpYTJOZXQAbWV0MwBtZXQzUmVzAG1ldDNDdXQAbWV0M1BpbgBtZXQzTGFiZWwAbWV0M05ldABtZXQzQm5kAG1ldDNCbGtnAG1ldDNTaG9ydABmdXNlAG1ldDNGdXNlAG1ldDNQcm9iZQBtZXQzTWV0b3AxAG1ldDNNZXRvcDIAbWV0M01ldG9wMwBtZXQzTWV0b3A0AG1ldDNNZXRvcDUAbWV0M01ldG9wNgBtZXQzTWV0b3A3AG1ldDNNZXRvcDgAdmlhMwB2aWEzQm5kAHZpYTNQaW4AdmlhM05ldABtZXQ0AG1ldDRSZXMAbWV0NEN1dABtZXQ0UGluAG1ldDRMYWJlbABtZXQ0TmV0AG1ldDRCbmQAbWV0NEJsa2cAbWV0NFNob3J0AG1ldDRGdXNlAG1ldDRQcm9iZQBtZXQ0TWV0b3AxAG1ldDRNZXRvcDIAbWV0NE1ldG9wMwBtZXQ0TWV0b3A0AG1ldDRNZXRvcDUAbWV0NE1ldG9wNgBtZXQ0TWV0b3A3AG1ldDRNZXRvcDgAdmlhNAB2aWE0Qm5kAHZpYTRQaW4AdmlhNE5ldABtZXQ1AG1ldDVSZXMAbWV0NUN1dABtZXQ1UGluAG1ldDVMYWJlbABtZXQ1TmV0AG1ldDVCbmQAbWV0NUJsa2cAbWV0NVNob3J0AG1ldDVGdXNlAG1ldDVQcm9iZQBtZXQ1TWV0b3AxAG1ldDVNZXRvcDIAbWV0NU1ldG9wMwBtZXQ1TWV0b3A0AG1ldDVNZXRvcDUAbWV0NU1ldG9wNgBtZXQ1TWV0b3A3AG1ldDVNZXRvcDgAbnNtAHBhZABwYWRMYWJlbABwYWRQaW4AcG5wAHBucGxhYmVsAG5wbgBucG5sYWJlbABycG0AaHZpAGNhcGFjaXRvcgBjYXBhY2l0AG5jbQBjbmNtAG1hc2sAY25jbW1hc2sAcG1tAHBvc3QyAHBtbTIAY2VzZG1hc2sAcmRsAG1ldDcAbWV0N1BpbgBtZXQ3TGFiZWwAbWV0N1Nob3J0AG1ldDdNZXRvcDEAbWV0N01ldG9wMgBtZXQ3TWV0b3AzAG1ldDdNZXRvcDQAbWV0N01ldG9wNQBtZXQ3TWV0b3A2AG1ldDdNZXRvcDcAbWV0N01ldG9wOAB1Ym0AYnBtAGJ1bXAAbnBtAGluZHVjdG9yAGluZHVjdG8AaW5kdWN0b3JMYWJlbAB0ZXJtMQBpbmR1Y3RvclRlcm0xAHRlcm0yAGluZHVjdG9yVGVybTIAdGVybTMAaW5kdWN0b3JUZXJtMwBjZm9tAGNmb21tYXNrAG1hc2tBZGQAY2ZvbW1hc2tBZGQAbWFza0Ryb3AAY2ZvbW1hc2tEcm9wAHdhZmZsZURyb3AAY2ZvbXdhZmZsZURyb3AAZm9tAGR1bW15AGNud20AY253bW1hc2sAY253bW1hc2tBZGQAY253bW1hc2tEcm9wAGNkbm0AY2RubW1hc2sAY2RubW1hc2tBZGQAY2RubW1hc2tEcm9wAGNsdnRubQBjbHZ0bm1tYXNrAGNsdnRubW1hc2tBZGQAY2x2dG5tbWFza0Ryb3AAY2h2dHBtAGNodnRwbW1hc2sAY2h2dHBtbWFza0FkZABjaHZ0cG1tYXNrRHJvcABjaHZ0cm0AY2h2dHJtbWFzawBjaHZ0cm1tYXNrQWRkAGNodnRybW1hc2tEcm9wAGN0dW5tAGN0dW5tbWFzawBjdHVubW1hc2tBZGQAY3R1bm1tYXNrRHJvcABjb25vbQBjb25vbW1hc2sAY29ub21tYXNrQWRkAGNvbm9tbWFza0Ryb3AAY25zZG0AY25zZG1tYXNrAGNuc2RtbWFza0FkZABjbnNkbW1hc2tEcm9wAGNwc2RtAGNwc2RtbWFzawBjcHNkbW1hc2tBZGQAY3BzZG1tYXNrRHJvcABjbnRtAGNudG1tYXNrAGNudG1tYXNrQWRkAGNudG1tYXNrRHJvcABodm50bQBjaHZudG0AY2h2bnRtbWFzawBjaHZudG1tYXNrQWRkAGNodm50bW1hc2tEcm9wAGNsZG50bQBjbW04AGNtbThtYXNrAGNsdm9tAGNsdm9tbWFzawBjbHZvbW1hc2tBZGQAY2x2b21tYXNrRHJvcABjcDFtAGNwMW1tYXNrAGNwMW1tYXNrQWRkAGNwMW13YWZmbGVEcm9wAGNwMW1tYXNrRHJvcABjbGkxbQBjbGkxbW1hc2sAY2xpMW1tYXNrQWRkAGNsaTFtbWFza0Ryb3AAY2xpY20xAGNsaWNtMW1hc2sAY2xpY20xbWFza0FkZABjbGljbTFtYXNrRHJvcABjbW0xAGNtbTFtYXNrAGNtbTFtYXNrQWRkAGNtbTFtYXNrRHJvcABjbW0xd2FmZmxlRHJvcABjdmlhbQBjdmlhbW1hc2sAY3ZpYW1tYXNrQWRkAGN2aWFtbWFza0Ryb3AAY21tMgBjbW0ybWFzawBjbW0ybWFza0FkZABjbW0ybWFza0Ryb3AAY21tMndhZmZsZURyb3AAY3ZpYW0yAGN2aWFtMm1hc2sAY3ZpYW0ybWFza0FkZABjdmlhbTJtYXNrRHJvcABjbW0zAGNtbTNtYXNrAGNtbTNtYXNrQWRkAGNtbTNtYXNrRHJvcABjbW0zd2FmZmxlRHJvcABjbnBjAGNzaWxtAGNzaWxtbWFzawBjc2lsbW1hc2tBZGQAY3NpbG1tYXNrRHJvcABjdmlhbTMAY3ZpYW0zbWFzawBjdmlhbTNtYXNrQWRkAGN2aWFtM21hc2tEcm9wAGNuc20AY3BkbQBjcGRtbWFzawBjcGRtbWFza0FkZABjcGRtbWFza0Ryb3AAY3BtbQBjY2ltAGNwYm8AY2NpbW1hc2sAY21tNABjbW00bWFzawBjbW00bWFza0FkZABjbW00bWFza0Ryb3AAY21tNHdhZmZsZURyb3AAY3ZpYW00AGN2aWFtNG1hc2sAY3ZpYW00bWFza0FkZABjdmlhbTRtYXNrRHJvcABjbW01AGNtbTVtYXNrAGNtbTV3YWZmbGVEcm9wAHRhcmdldABjY3RtMQBjY3RtMW1hc2sAY2N0bTFtYXNrQWRkAGNjdG0xbWFza0Ryb3AAY3JwbQBjcnBtbWFzawBjcnBtbWFza0FkZABjcnBtbWFza0Ryb3AAY2N1MW0AY3BtbTIAY3VibQBjYnVtcABjeXByb3RlY3QAY3lwcm90ZQBwaW1wAGN5dGV4dG1jAGN5dGV4dG0AdGV4dDEAY3lwc2JyAGFyZWFpZER1YWxNZW1vcnkAb3ZlcmxhcABvdmVybGFwQm5kAGFyZWFpZABsb3dUYXBEZW5zaXR5AG5vdENyaXRTaWRlAGFyZWFpZFRjYW1NZW1vcnkAaW5qZWN0aW9uAHBlcgByZmRpb2RlAGZpeABzZWFsAGFyZWFpZHNlYWwAY29yZQBhcmVhaWRjb3JlAGZyYW1lAGFyZWFpZGZyYW1lAGVzZABhcmVhaWRlc2QAZGllQ3V0AGFyZWFpZGRpZUN1dABtb2R1bGVDdXQAYXJlYWlkbW9kdWxlQ3V0AGZyYW1lUmVjdABhcmVhaWRmcmFtZVJlY3QAc3Vic3RyYXRlQ3V0AGFyZWFpZHN1YnN0cmF0ZUN1dDIAZGlvZGUAYXJlYWlkZGUAc3RhbmRhcmRjAGFyZWFpZFN0YW5kYXJkYwBkZWFkWm9uAGFyZWFpZGRuAGNyaXRDb3JuZXIAYXJlYWlkY3IAY3JpdFNpZABhcmVhaWRjZABvcGNEcm9wAGFyZWFpZG9wY0Ryb3AAd2FmZmxlV2luZG93AGFyZWFpZFdhZmZsZVdpbmRvdwBleHRlbmRlZERyYWluAGFyZWFpZGV4dGVuZGVkRHJhaW4AbHZOYXRpdmUAcGhvdG8AYXJlYWlkcHJvYmUAZXRlc3QAY21zbQBodm53ZWxsAG1zbQByZGxwcm9iZXBhZABzaWdQYWREaWZmAHNpZ1BhZFdlbGwAZmVlZHRocnUAc2lnUGFkTWV0TnRyAGFuYWxvZwBhcmVhaWRhbmFsb2cAcHJ1bmUAcHJ1bmVkZwBwYWRDZW50ZXIAcGFkQ2VudABwc2ExAG1ldDFQc2ExAG1ldDJQc2ExAG1ldDNQc2ExAG1ldDRQc2ExAG1ldDVQc2ExAHBzYTIAbWV0MVBzYTIAbWV0MlBzYTIAbWV0M1BzYTIAbWV0NFBzYTIAbWV0NVBzYTIAcHNhMwBtZXQxUHNhMwBtZXQyUHNhMwBtZXQzUHNhMwBtZXQ0UHNhMwBtZXQ1UHNhMwBwc2E0AG1ldDFQc2E0AG1ldDJQc2E0AG1ldDNQc2E0AG1ldDRQc2E0AG1ldDVQc2E0AHBzYTUAbWV0MVBzYTUAbWV0MlBzYTUAbWV0M1BzYTUAbWV0NFBzYTUAbWV0NVBzYTUAcHNhNgBtZXQxUHNhNgBtZXQyUHNhNgBtZXQzUHNhNgBtZXQ0UHNhNgBtZXQ1UHNhNgBtZXQ3UHNhMQBtZXQ3UHNhMgBtZXQ3UHNhMwBtZXQ3UHNhNABtZXQ3UHNhNQBtZXQ3UHNhNgBibGFua2luZwBibGFua2luAGdyaWQxAGFubm90YXRlMQBhbm5vdGF0ZTIAYW5ub3RhdGUzAGFubm90YXRlNABhbm5vdGF0ZTUAYW5ub3RhdGU2AGFubm90YXRlNwBhbm5vdGF0ZTgAYW5ub3RhdGU5AGluc3RhbmNlTGJsAHByQm91bmRhcnlMYmwAZGVmYXVsdFBhY2tldAB0ZXh0MgBkZXZpY2VMYmwAZGV2aWNlMQBkZXZpY2UyAGRldmljZUFudAB3aXJlTGJsAHdpcmVGbHQAcGluTGJsAHBpbkFudABlZGdlTGF5ZXJQaW4AaGlsaXRlMgBoaWxpdGUzAGhpbGl0ZTQAaGlsaXRlNQBoaWxpdGU2AGhpbGl0ZTcAaGlsaXRlOABoaWxpdGU5AGRlc2lnbkZsb3cxAGRlc2lnbkZsb3cyAGRlc2lnbkZsb3czAGRlc2lnbkZsb3c0AGRlc2lnbkZsb3c1AGRlc2lnbkZsb3c2AGRlc2lnbkZsb3c3AGRlc2lnbkZsb3c4AGRlc2lnbkZsb3c5AGNoYW5nZWRMYXllclRsMABjaGFuZ2VkTGF5ZXJUbDEAbWFya2VyV2FybgBtYXJrZXJFcnIAUm93TGJsAEdyb3VwTGJsAENhbm5vdG9jY3VweUJuZABVbnJvdXRlZDEAVW5yb3V0ZWQyAFVucm91dGVkMwBVbnJvdXRlZDQAVW5yb3V0ZWQ1AFVucm91dGVkNgBVbnJvdXRlZDcAVW5yb3V0ZWQ4AFVucm91dGVkOQBmZXJybwB6ZW5lcgBleHREcmFpbjIwAHRtcHBucABleHRGYWIAcHJlY3JlcwBzaWxpY29uAHZsYwBub2RudwBjdVBpbGxhcgB0ZWNoQ2QAc2NyAHBvcnQAcG9ydDEAcmVnaW9uAHBwYXRoAHBwYXRoMQBtYWNybwBud2VsbElzb2xhdGlvbgBibG9jawB3YWZmbGVBZGQxAHdhZmZsZUFkZDIAZHVhbE1lbW9yeQB0Y2FtTWVtb3J5AHN1YmNrdERldmljZQBwaXhlbABsdmRudwBndWFyZHJpbmcAaXBFeGVtcHQAcGl0Y2gASGlnaFZ0AGhvbGUAdW1jb25seQBvcGMAbm9kdW1teQBkcmMAdnNzAGZjAG1pbQBubWltAGN2cwBleHQAaXAAbG93X3Z0AGNpc19hcnJheQBpbWFnZXJzAHQzAGxvZ2ljAGRpbwBjYXAAcmVzMQBianQAZWZ1c2VNYXJrAHNsb3RCbG9jawBmdXNlTWFyawB1bWNJUAB0ZWNoRGV2aWNlAHRjaUNvbnRhY3REZXZpY2UASUxMaXN0AHRjaUNoZWNraW5EZXZpY2UAdGNpU2F2ZURldmljZQBsYXlvdXQAdGNIRUFERVIAY2RzTW9zAHRjUHJvcABmdW5jdGlvbgB0cmFuc2lzdG9yAHRjSUxDb2RlAHRjTG9jYWxWYXIAdGNGb3JtYWxQYXJhbQB0Y0NsYXNzUGFyYW0AY2RzVmlhAGNvbnRhY3QAc3ltYm9saWMAdGNDQVRFR09SWQBocnBvbHlfNXA3MwBocnBvbHlfMHAzNQBocnBvbHlfMHA2OQBocnBvbHlfMXA0MQBocnBvbHlfMnA4NQBzdWJDa3RSZXNDbGFzcwBhbmNob3IAYW5jaG9yQ2xhc3MAcGFkUEx3bGJpAHBhZFBMc3RnAHBhZFBMZnAAcGFkUExocABwbHVnZ2VkUGFkQ2xhc3MAYWR2U2VhbF82dW0AZGllU2VhbFJpbmdDbGFzc0FkdgBsYXpZX2RpZVNlYWxSaW5nAGxhelhfZGllU2VhbFJpbmcAbGFzZXJUYXJnZXRDbGFzcwBuaWtvbgBuaWtvbkNyb3NzQ2xhc3MATTRmdXNlAGZ1c2VTaGllbGRDbGFzcwBNM21ldG9wAG1ldG9wQ2xhc3MATTRNNV9UAFBZX1QATDFfVABNMV9UAE0yX1QATTFNMl9UAE0zX1QATTJNM19UAE00X1QATTNNNF9UAE01X1QAc3lQaW4AcnVsZVZpYTQAcnVsZVZpYQBydWxlVmlhMQBydWxlVmlhMgBydWxlVmlhMwBydWxlQ29udGFjdABkaXNjcmV0ZUNvbnRhY3RSaW5nAGRpc2NyZXRlQ29udGFjdFJpbmdDbGFzcwBNNE01X0MAVFBMMV9DAFBZTDFfQwBMMU0xX0MATTFNMl9DAE0yTTNfQwBNM000X0MAc3lDb250YWN0AHBFc2RDYXNjb2RlRmV0AGVzZENhc2NvZGVGZXRDbGFzcwBwRXNkRmV0AGVzZEZldENsYXNzAHZhcmFjdG9yMgB2YXJhY3RvcgB2YXJhY3RvckNsYXNzAFBZTTJidXR0X3ZhcmFjdG9yAFRQTTFzZF92YXJhY3RvcgBUUE0yc2RfdmFyYWN0b3IAUFlNMV92YXJhY3RvcgBQWU0yX3ZhcmFjdG9yAFBZTTFidXR0X3ZhcmFjdG9yAHNpbXBsZUNvbnRhY3RDbGFzcwBhbnRlbm5hX2Rpb2RlAGFudGVubmFEaW9kZUNsYXNzAGdlblJpdmV0TWlycm9yRExyaW5nAHJpdmV0UmluZ01pcnJvckNsYXNzAGdlblJpdmV0RExyaW5nAHJpdmV0UmluZ0NsYXNzAGdlbkludERMcmluZwBpbnRSaW5nQ2xhc3MAZ2VuRExyaW5nAHJpbmdDbGFzcwBSRExzaG9ydABwbHlzaG9ydABsaTFzaG9ydABNMXNob3J0AE0yc2hvcnQATTNzaG9ydABNNHNob3J0AE01c2hvcnQAc2hvcnRDbGFzcwBpc29Qd2VsbFJFUwByb2RJc29SZXNDbGFzcwBwREZiZW50UmVzAFBZYmVudFJlcwBuREZiZW50UmVzAGJlbnRSZXNJbXBDbGFzcwBMSXJlcwBuREZyZXMAcERGcmVzAFBZcmVzAHdsUmVzSW1wQ2xhc3MAZXh0RG5UcmFuAGV4dERwVHJhbgBtRXh0RHJhaW5UcmFuQ2xhc3MAcGZldABuZmV0AG1Nb2RlbEZldENsYXNzAGh2cFRyYW4AblRyYW4AcFRyYW4AaHZuVHJhbgBtTm9ybVRyYW5JbXBDbGFzcwBwRHJhaW5Pbmx5AG5EcmFpbk9ubHkAZHJhaW5Pbmx5Q2xhc3MAaHZERk0xc2QyAGh2REZNMXNkAFRQTTFzAERGTTFzZABERk0xc2QyAGRyYWluQ29udGFjdDNQb2xJbXBDbGFzcwBodkRGTDFzZDIAREZMMXNkAERGTDFzZGYAREZMMXNkMgBUUEwxcwBodkRGTDFzZABkcmFpbkNvbnRhY3RQb2xJbXBDbGFzcwBodkRGVFBNMXMyAERGVFBMMXMyAERGVFBNMXMyAGh2REZUUEwxczIAZW5Ec3RyYXAzUG9sSW1wQ2xhc3MAaHZERlRQTTFzMmVuaABERlRQTTFzMmVuaABlbmhTdHJhcDNQb2xJbXBDbGFzcwBodkRGVFBMMXMAREZUUEwxcwBERlRQTDFzdwBERlRQTTFzAERGVFBNMXN3AGh2REZUUE0xcwBlblNzdHJhcDNQb2xJbXBDbGFzcwBNNE01X1BSX1IAUFlMMV9QUgBuVFBMMV9QUgBwVFBMMV9QUgBuREZMMV9QUgBwREZMMV9QUgBNMU0yX1BSX1IATDFNMV9QUgBNMU0yX1BSAE0yTTNfUFIATTNNNF9QUgBNNE01X1BSAE0yTTNfUFJfUgBNM000X1BSX1IAc3lFbmhDb250YWN0AEwxTTIAcmMzSW50ZXJDb25DbGFzcwBQWU0xAHJjM0ludGVyQ29uSW1wQ2xhc3MAZ3VhcmRSaW5nRW5oAHJvZFRyaXBsZUd1YXJkUmluZwBNNVJETGxnX2F0bGFzAERGTTEAVFBNMQBNNVJETAByY0ludGVyQ29uRW5oQ2xhc3MASFJQb2x5XzVwNzNfTDFNMWNvbgBMMU0xAEwxTTFzcQBNMU0yAE0xTTJzcQBNMk0zAE0zTTQATTRNNQBNMk0zc3EATTNNNHNxAE00TTVzcQBGVVNFX00zTTQASFJQb2x5XzBwMzVfUlBMMWNvbgBIUlBvbHlfMHAzNV9MMU0xY29uAEhSUG9seV8wcDY5X1JQTDFjb24ASFJQb2x5XzBwNjlfTDFNMWNvbgBIUlBvbHlfMXA0MV9SUEwxY29uAEhSUG9seV8xcDQxX0wxTTFjb24ASFJQb2x5XzJwODVfUlBMMWNvbgBIUlBvbHlfMnA4NV9MMU0xY29uAEhSUG9seV81cDczX1JQTDFjb24AcmNJbnRlckNvbkNsYXNzAFRQTDFhAHJjSW50ZXJDb25TUG9sSW1wQ2xhc3MAVFBMMWNlbgByYzNJbnRlckNvbkNlblBvbEltcENsYXNzAERGTDFzcQBUUEwxAFRQTDFzcQBUUEwxX2ZlbmNlAERGTDEAcmNJbnRlckNvblBvbEltcENsYXNzAFBZTDFzcQBQWUwxAHJjSW50ZXJDb25JbXBDbGFzcwBwYXJ0bnVtYmxvY2sAcGFydG51bQBwYXJ0TnVtQ2xhc3MAcGFydG51bTlibG9jawBwYXJ0bnVtQQBwYXJ0bnVtQgBwYXJ0bnVtQwBwYXJ0bnVtRABwYXJ0bnVtRQBwYXJ0bnVtRgBwYXJ0bnVtRwBwYXJ0bnVtSABwYXJ0bnVtSQBwYXJ0bnVtSgBwYXJ0bnVtSwBwYXJ0bnVtTABwYXJ0bnVtTQBwYXJ0bnVtTgBwYXJ0bnVtTwBwYXJ0bnVtUABwYXJ0bnVtUQBwYXJ0bnVtUgBwYXJ0bnVtUwBwYXJ0bnVtVABwYXJ0bnVtVQBwYXJ0bnVtVgBwYXJ0bnVtVwBwYXJ0bnVtWABwYXJ0bnVtWQBwYXJ0bnVtWgBwYXJ0bnVtMABwYXJ0bnVtMQBwYXJ0bnVtMgBwYXJ0bnVtMwBwYXJ0bnVtNABwYXJ0bnVtNQBwYXJ0bnVtNgBwYXJ0bnVtNwBwYXJ0bnVtOABwYXJ0bnVtOQBwYXJ0bnVtQWJsb2NrAHBhcnRudW1CYmxvY2sAcGFydG51bUNibG9jawBwYXJ0bnVtRGJsb2NrAHBhcnRudW1FYmxvY2sAcGFydG51bUZibG9jawBwYXJ0bnVtR2Jsb2NrAHBhcnRudW1IYmxvY2sAcGFydG51bUlibG9jawBwYXJ0bnVtSmJsb2NrAHBhcnRudW1LYmxvY2sAcGFydG51bUxibG9jawBwYXJ0bnVtTWJsb2NrAHBhcnRudW1OYmxvY2sAcGFydG51bU9ibG9jawBwYXJ0bnVtUGJsb2NrAHBhcnRudW1RYmxvY2sAcGFydG51bVJibG9jawBwYXJ0bnVtU2Jsb2NrAHBhcnRudW1UYmxvY2sAcGFydG51bVVibG9jawBwYXJ0bnVtVmJsb2NrAHBhcnRudW1XYmxvY2sAcGFydG51bVhibG9jawBwYXJ0bnVtWWJsb2NrAHBhcnRudW1aYmxvY2sAcGFydG51bTBibG9jawBwYXJ0bnVtMWJsb2NrAHBhcnRudW0yYmxvY2sAcGFydG51bTNibG9jawBwYXJ0bnVtNGJsb2NrAHBhcnRudW01YmxvY2sAcGFydG51bTZibG9jawBwYXJ0bnVtN2Jsb2NrAHBhcnRudW04YmxvY2sAcGFydE51bUNoYXJDbGFzcwBlbmhSaXZldFJpbmdNaXJyb3JDbGFzcwBlbmhSaW5nQ2xhc3MAc3lNR0VuaGFuY2VtZW50AHJpdmV0Q2xhc3MAcmMzSW50ZXJDb25Qb2xJbXBDbGFzcwBwRXNkVHJhbkltcENhc2NvZGVDbGFzcwBuRXNkVHJhbkltcENhc2NvZGVDbGFzcwBwbHVnZ2VkUGFkQ2xhc3NTbG90AHBFc2RUcmFuSW1wQ2xhc3MAbkVzZFRyYW5JbXBDbGFzcwBtTm9ybVRyYW5DbGFzcwBmbGFyZWRHYXRlQ2FzY29kZUNsYXNzAGZsYXJlZEdhdGVDbGFzcwBkaWVTZWFsUmluZ0NsYXNzAHN5UmVjdFBpbgBzeURlcGxldGlvbgBzdHJldGNoRGlyAHN5RW5oYW5jZW1lbnQAbW9kaWZpZWRCdXROb3RTYXZlZABjb250cm9scwBvYVVucmVzdHJpY3RlZAB0ZWNoR3JvdXBGbGFncwB0ZWNoUGFyYW1zAGljY0tlZXBvdXRzAGljY0JvdW5kYXJ5TGF5ZXJzAGljY0VxdWl2YWxlbnRMYXllcnMAaWNjVmlhcwBpY2NMYXllcnMAVEVDSGNvbXBpbGVUaW1lVVRDAFRFQ0hjb21waWxlVGltZQBURUNIbWlzY1RkclNwZWNSZXYAVEVDSG1pc2NUZHJTcGVjTnVtAFRFQ0hib25kUGFkU3RyZXNzU3BlY1JldgBURUNIYm9uZFBhZFN0cmVzc1NwZWNOdW0AVEVDSHRkclNwZWNSZXYAVEVDSHRkclNwZWNOdW0AVEVDSHRlY2hub2xvZ3kAcHJPdmVybGFwTGF5ZXIAcHJSb3V0aW5nUGl0Y2gAcHJQaXRjaABwck5vbkRlZmF1bHRTdGFja1ZpYXMAcHJOb25EZWZhdWx0VmlhcwBwck5vbkRlZmF1bHRMYXllcnMAcHJFZGdlQ2FwYWNpdGFuY2UAcHJSZXNpc3RhbmNlAHByQ2FwYWNpdGFuY2UAcHJXaXJlRXh0ZW5zaW9uAHByTm90Y2gAcHJTcGFjaW5nAHByV2lkdGgAcHJOb25EZWZhdWx0UnVsZQBwck5vbkRlZmF1bHRSdWxlcwBwck5vbkRlZmF1bHRSdWxlTmFtZQBORFJfMV81AE5EUl8yAE5EUl8yXzUATkRSXzMAcHJHZW5WaWFSdWxlAHByRGlyZWN0aW9uAHZlcnRpY2FsAGhvcml6b250YWwAcHJZUGl0Y2gAcHJYUGl0Y2gAcHJVcHBlclB0AHByTG93ZXJQdABwck1ldGFsT3ZlcmhhbmcAcHJPdmVyaGFuZwBwcldNYXgAcHJXTWluAHByR2VuVmlhUnVsZXMAcHJHZW5WaWFSdWxlTmFtZQB2aWFHZW5WaWEAdmlhR2VuVmlhMgB2aWFHZW5WaWEzAHZpYUdlblZpYTQAbWV0MXR1cm4AbWV0MnR1cm4AbWV0M3R1cm4AbWV0NHR1cm4AbWV0NXR1cm4AcHJNYXN0ZXJzbGljZUxheWVycwBwclN0YWNrVmlhAHByU3RhY2tWaWFzAHByVmlhVHlwZXMATkRSX2R1bW15AGRlZmF1bHQAcHJWaWFEZXZpY2UAcHJSdWxlcwBwclJvdXRpbmdMYXllcnMAaGFsZlJvdXRlAG1wcFN1YlJlY3QAbXBwRW5kU2VnT2Zmc2V0AG1wcEJlZ2luU2VnT2Zmc2V0AG1wcEp1c3RpZmljYXRpb24AbWluaW11bQBtcHBHYXAAbXBwRW5kT2Zmc2V0AG1wcEJlZ2luT2Zmc2V0AG1wcFNwYWNpbmcAY2VudGVyAG1wcFNlcGFyYXRpb24AbXBwQ2hvcHBhYmxlAG1wcExlbmd0aABtcHBXaWR0aABtcHBTdWJSZWN0cwBtcHBFbmNQYXRoAG1wcEVuY2xvc3VyZQBtcHBFbmNQYXRocwBtcHBUZW1wbGF0ZQBtcHBPZmZzZXQAbXBwRW5kRXh0AG1wcEJlZ2luRXh0AG1wcEVuZFR5cGUAZmx1c2gAZGxlUnVsZXMAbHhNUFBUZW1wbGF0ZXMAbXBwTmFtZQBQWUwxX01QUABQWU0xX01QUABMMU0xX01QUABMMU0yX01QUABNMU0yX01QUABNMk0zX01QUABQVFBMMV9NUFAAUFRQTTFfTVBQAE5UUEwxX01QUABOVFBNMV9NUFAAdGZjRGVmaW5lU3ltRGVwbGV0aW9uRGV2aWNlAHN5bVBpbkRldmljZQBydWxlQ29udGFjdERldmljZQBjZHNNb3NEZXZpY2UAY2RzVmlhRGV2aWNlAHN5bUNvbnRhY3REZXZpY2UAc3ltRW5oYW5jZW1lbnREZXZpY2UAZGV2aWNlcwB0Y0NyZWF0ZUNEU0RldmljZUNsYXNzAHBhcmFsbGVsQ2FwAG9yZGVyZWRFbGVjdHJpY2FsUnVsZXMAZWxlY3RyaWNhbFJ1bGVzAG9uZUxheWVyRWxlY3RyaWNhbFJ1bGVzAGFyZWFDYXAAZWRnZUNhcGFjaXRhbmNlAGVkZ2VDYXAAc2hlZXRSZXMAdGhpY2tuZXNzAGN1cnJlbnRkZW4AZGVmYXVsdEFudGVubmFSdWxlAG1mZ0dyaWRSZXNvbHV0aW9uAHNhbWVOZXQAbWluU3BhY2luZwB0d29MYXllclNwYWNpbmdSdWxlcwBvbmVMYXllclNwYWNpbmdSdWxlcwBtaW5XaWR0aABkZWZhdWx0V2lkdGgAbWluQXJlYQBtaW5FbmNsb3NlZEFyZWEAb2Zmc2V0AG1pblNwYWNpbmdSYW5nZQBtaW5FbmNsb3N1cmUAcGh5c2ljYWxSdWxlcwBvcmRlcmVkU3BhY2luZ1J1bGVzAGxheWVyRnVuY3Rpb25zAGxheWVyRnVuY3Rpb24AbmRpZmYAbWV0YWwAdmlhTGF5ZXIAbGF5ZXJSdWxlcwB2aWFMYXllcnMAc3RyZWFtTGF5ZXJzAHRlY2hEaXNwbGF5cwB0ZWNoTGF5ZXJQdXJwb3NlUHJpb3JpdGllcwB0ZWNoTGF5ZXJzAHN1cGVyQ2xhc3NlcwBsYXllckRlZmluaXRpb25zAHRlY2hQdXJwb3NlcwBzY3M4aGRsbF9kdgBuREZMMV9QUl92aWEAblRQTDFfUFJfdmlhAFBZTDFfUFJfdmlhAEwxTTFfUFJfdmlhAE0xTTJfUFJfdmlhAE0yTTNfUFJfdmlhAE0zTTRfUFJfdmlhAE00TTVfUFJfdmlhAE0xTTJfUFJfUl92aWEATTJNM19QUl9SX3ZpYQBNM000X1BSX1JfdmlhAE00TTVfUFJfUl92aWEAcnVsZVZpYV92aWEAcnVsZVZpYTFfdmlhAHJ1bGVWaWEyX3ZpYQBydWxlVmlhM192aWEAcnVsZVZpYTRfdmlhAGxwcExheWVyTnVtAGxwcFB1cnBvc2VOdW0AZm91bmRyeQBvYUZvdW5kcnkAbmVlZFZhbGlkYXRlAHRlY2hDb25zdHJhaW50R3JvdXBHcm91cAB0ZWNoTGF5ZXJJZFRvQXBwT2JqRGVmAHRlY2hpT2xkRGF0YU1vZGVsTnVtAHVzZXJEZWZSZXNMYXllck51bQB0ZWNoSGFzVW5zdHVmZmVkAHRlY2hEaXNhYmxlQ29uZkNoZWNrAHRlY2hEaXNhYmxlR3JhcGhNb2RUcmlnAHN1YnN0cmF0ZQBmYXRhbABjcml0aWNhbABzb0NyaXRpY2FsAHNvRXJyb3IAYWNrV2FybgBpbmZvAHRyYWNrAGNkc0RlZlRlY2hMaWIAb2FEZWZhdWx0AHRlY2hJbXBsaWNpdFJlZgB0ZWNoVGltZVN0YW1wAGxheWVyTWZnUmVzb2x1dGlvbnMAbWluQ2xlYXJhbmNlAG1pblNhbWVOZXRTcGFjaW5nAG1pbkV4dGVuc2lvbgBDQVBBQ0lUQU5DRQBFREdFQ0FQQUNJVEFOQ0UAUkVTSVNUQU5DRQBUSElDS05FU1MAaG9yaXpvbnRhbFJvdXRlR3JpZE9mZnNldAB2ZXJ0aWNhbFJvdXRlR3JpZE9mZnNldABjdW1EaW9kZQBjdW11bGF0aXZlVmlhQW50ZW5uYQBhbnRlbm5hAGN1bXVsYXRpdmVNZXRhbEFudGVubmEAbHBwQXR0ckZsYWcAd2lkdGgAZGlzdGFuY2UAbWluUHJvdHJ1ZGVkUHJveGltaXR5U3BhY2luZwB0cnVuY2F0ZQB0ZWNoUmV2aXNpb24AdGVjaEhhc1VwUmV2Q2hhbmdlcwBSb3dCbmQAVW5yb3V0ZWRUcmsAbWFya2VyQW5vAG1hcmtlckluZgBtYXJrZXJBY2sAbWFya2VyU2VyAG1hcmtlclNjcgBtYXJrZXJDcnQAbWFya2VyRmF0AEdyb3VwQm5kAHkwRmx0AHkxRmx0AHkyRmx0AHkzRmx0AHk0Rmx0AHk1Rmx0AHk2Rmx0AHk3Rmx0AHk4Rmx0AHk5Rmx0AGFyZWEAQW5ub3RhdGVCb3VuZGFyeQBtaW5TYW1lTmV0Q2xlYXJhbmNlAFB1cnBvc2UgQXdhcmUgQ29uc3RyYWludABJbmNyZW1lbnRhbFRlY2gAdmlydHVvc29EZWZhdWx0U2V0dXAAb2FVc2VyRGVmaW5lZAB2YWxpZFJvdXRpbmdMYXllcnMAdmFsaWRSb3V0aW5nVmlhcwBfdGVjaExhc3RTYXZlZENvdW50ZXIAYmxrAGZhdABjcnQAc2VyAGFjawBpbmYAdHJrAGdyZABmaW8AdXNlckRlZlJlc0xheWVyQmFja3VwTnVtAE5ldyBSZXNlcnZlZCBQdXJwb3NlAAAAAAAEAAAAAAAAANQAAAAAAAAACAAAAAcAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAABAAAAAAAAAQEAAAAAAAACAQAAAAAAANQAAAAAAAAA2AAAAAAAAADcAAAAAAAAAOAAAAAAAAAA5AAAAAAAAABAAQAAAAAAAPgBAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAABcAAAAAAAAALgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAAWAAAAAAAAAD/////AAAAyAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAADIAgAAAKpcID7+MQQ/8D7gPtA+wD6wPqA+jD56Pmg+Vj5EPjQ++DQ+NSw1GjUKNSI8cDxkPFQ8RDw2PKA74DvSO8Y7tDuyPOw82jzIPIo94j3QPcA9rj2ePSw9SD0yQCZC/kHWQa5BhkFeQTZBDkHmQNJAxEC2QKhAnkCUQIpAfEByQGRAWkBeQ2xD7EIoQxJDBEP6Qm5CqEIyP14/0D8AQPY/7D/mNoI3ZjdKNyo3Cjd2DJJgAAAAAAQAAAAAAAAAzAIAAAAAAAAdAAAAFAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABAEAAAAAAAAAAwAAAAAAAAEDAAAAAAAAAgMAAAAAAAADAwAAAAAAAAABAAAAAAAAAwEAAAAAAAAGAwAAAAAAAAgDAAAAAAAADAMAAAAAAAASAwAAAAAAAAoDAAAAAAAADwMAAAAAAAANAwAAAAAAAAQDAAAAAAAAEwMAAAAAAADMAgAAAAAAANACAAAAAAAA1AIAAAAAAADYAgAAAAAAANwCAAAAAAAALAwAAAAAAAB8FQAAAAAAAMweAAAAAAAAeCMAAAAAAADILAAAAAAAAMwsAAAAAAAAJDcAAAAAAAAMOAAAAAAAADA5AAAAAAAASDsAAAAAAADAWhIAAAAAALxoEgAAAAAAjGkSAAAAAADobhIAAAAAAP//////////BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAABQCQAAAAAAAFAJAAAAAAAAUAkAAAAAAACsBAAAAAAAAFAJAAAAAAAABAAAAAAAAABYCgAAAAAAAOgAAAAAAAAAJAEAAAAAAAAYAgAAAAAAAHgfEgAAAAAA/A0AAAAAAADQAAAAAAAAAFwFAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAACkBAAAUQAAAKIEAAAAAADIAgAAAAAAAQACAAMAAAAAAAAAAAABAAQABQAGAAcAAAAAAAIACAAJAAoACwAAAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAAAAAAAAADAAwADQAOAA8AAAAQABEAEgATAAAAFAAVABYAFwAAABgAGQAaAAAAGwAcAB0AHgAAAB8AIAAhAAAAAAAEACIAIwAkACUAAAAAAAUAJgAnACgAKQAAAAAABgAqACsALAAtAAAALgAvADAAMQAAAAAABwAyADMANAA1AAAAAAAIADYANwA4ADkAAAAAAAkAOgA7ADwAPQAAAAAACgA+AD8AQABBAAAAAAALAEIAQwBEAEUAAAAAAAwARgBHAEgASQAAAAAADQBKAEsATABNAAAATgBPAFAAUQAAAFIAUwBUAAAAVQBWAFcAWAAAAFkAWgBbAAAAAAAOAFwAXQBeAF8AAAAAAA8AYABhAGIAYwAAAAAAEABkAGUAZgBnAAAAAAARAGgAaQBqAGsAAAAAABIAbABtAG4AbwAAAAAAEwBwAHEAcgBzAAAAAAAUAHQAdQB2AHcAAAAAABUAeAB5AHoAewAAAAAAFgB8AH0AfgB/AAAAAAAXAIAAgQCCAIMAAACEAIUAhgCHAAAAiACJAIoAiwAAAIwAjQCOAI8AAACQAJEAkgCTAAAAlACVAJYAlwAAAJgAmQCaAAAAmwCcAJ0AngAAAAAAGACfAKAAoQCiAAAAAAAZAKMApAClAKYAAAAAABoApwCoAKkAqgAAAKsArACtAK4AAACvALAAsQAAAAAAGwCyALMAtAC1AAAAtgC3ALgAAAC5ALoAuwAAAAAAHAC8AL0AvgC/AAAAAAAdAMAAwQDCAMMAAAAAAB4AxADFAMYAxwAAAMgAyQDKAMsAAAAAAB8AzADNAM4AzwAAAAAAIADQANEA0gDTAAAA1ADVANYA1wAAANgA2QDaANsAAADcAN0A3gDfAAAA4ADhAOIA4wAAAOQA5QDmAOcAAAAAACEA6ADpAOoAAAAAACIA6wDsAO0A7gAAAAAAIwDvAPAA8QDyAAAAAAAkAPMA9AD1APYAAAAAAPcAJQD4APkA+gD7AAAAAAD8ACYA/QD+AP8AAAEBAAEBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEBAAIAAwAEAAUAJwAoACkAKgAPARABEQESARMBBgAHABQBFQEWARcBGAEIAAkAGQEaARsBHAEdAQoACwAeAR8BIAEhASIBDAANACMBJAElASYBJwEOAA8AKwAsAC0AKAEpASoBKwEsARAAEQAtAS4BLwEwATEBEgATADIBMwE0ATUBNgEUABUANwE4ATkBOgE7ARYAFwA8AT0BPgE/AUABGAAZAC4ALwAwAEEBQgFDAUQBRQEaABsARgFHAUgBSQFKARwAHQBLAUwBTQFOAU8BHgAfAFABUQFSAVMBVAEgACEAVQFWAVcBWAFZASIAIwAxADIAMwBaAVsBXAFdAV4BJAAlAF8BYAFhAWIBYwEmACcAZAFlAWYBZwFoASgAKQBpAWoBawFsAW0BKgArAG4BbwFwAXEBcgEsAC0ANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAHMBLgAvAHQBdQEwADEAdgF3AUIAMgAzAHgBeQFDAHoBNAA1AHsBfAE2ADcAfQF+AUQAOAA5AH8BgAFFAIEBOgA7AIIBgwE8AD0AhAGFAUYAPgA/AIYBhwFHAIgBQABBAIkBigFCAEMAiwGMAUgARABFAI0BjgFJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAI8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwFWAFcAWABZAFoAWwBcAF0AXgBGAEcAXwBIAEkAAgBgAEoAAwAEAAUASwBMAGEATQBOAAYAYgBPAAcACAAJAFAAUQAKAFIAUwBUAAsAVQBWAFcADABYAFkAWgANAA4AWwBjAFwAXQBkAA8AXgBfAGAAZQBhAGIAEABmAGMAEQASABMAZABlABQAZgBnAGgAFQBpAGoAawAWABcAbABnAG0AbgBoABgAbwBwAHEAaQByAHMAGQBqAHQAGgAbABwAdQB2AGsAdwB4AB0AbAB5AB4AHwAgAHoAewAhAHwAfQB+ACIAfwCAAIEAIwAkAIIAbQCDAIQAbgAlAIUAhgCHAG8AiACJACYAcACKACcAKAApAIsAjAAqAI0AjgCPACsALACQAHEAkQCSAHIALQCTAJQAlQBzAJYAlwAuAHQAmAAvADAAMQCZAJoAMgCbAJwAdQCdAJ4AdgAzAJ8AoAChAHcAogCjADQAeACkADUANgA3AKUApgA4ADkApwB5AKgAqQB6ADoAqgCrAKwAewCtAK4AOwB8AK8APAA9AD4AsACxAH0AsgCzAD8AfgC0AEAAQQBCALUAtgBDAEQAtwC4AEUARgC5AH8AugC7AIAARwC8AL0AvgCBAL8AwABIAIIAwQBJAEoASwDCAMMATABNAMQAgwDFAMYAhABOAMcAyADJAIUAygDLAE8AhgDMAFAAUQBSAM0AzgCHAM8A0ABTAIgA0QBUAFUAVgDSANMAVwDUANUA1gBYANcA2ADZAFkA2gDbAIkA3ADdAIoAWgDeAN8A4ACLAOEA4gBbAIwA4wBcAF0AXgDkAOUAXwDmAOcA6ABgAOkA6gCNAOsA7ACOAGEA7QCPAJAAkQCSAJMAlACVAJYAlwCYAO4A7wDwAPEA8gDzAPQA9QACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAAFAQYBBwEIAQkBCgELAQwBEQASABMAFAAVABYAFwAYABkAGgAEAAUABgAHAAgACQAKAAsAHAEdAR4BHwEgASEBIgEjASQBJQEmAaABoQGiAaMBpAGlAaYBpwGoAakBqgEBACgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAQAAAMgCAAAATRhYGHAYAACPGJYYnximGK0YwRjKGNUY4xjwGKYYrRjBGMoY1RjjGP8YCBlPGWUZlBmwGeYZ/RkUGiwaBACoGsgaHwArG0YbZRvTG/QbGxw/HFscchy/HNYcBR0vHVEdbh2ZHcEd+B1BHoEesB77Howfnh+0H9UfBiAnIT0hXCGZIbsh4yEsJZYYTxmmGK0YwRjKGNUY4xjmGcEYyhjVGOMYPSXBGMoY1RjjGFUlwRjKGNUYsBnBGMoY1RjjGMgawRjKGNUY1hymGK0YwRjKGNUY4xgrG6YYrRjBGMoY1RjjGEYbphitGMEYyhjVGOMY9BvBGMoY1RjjGG4dphitGMEYyhjVGOMYUR2mGK0YwRjKGNUY4xjTG6YYrRjBGMoY1RjjGGUbphitGMEYyhjVGOMYYiWmGK0YwRjKGNUY4xiMH6YYrRjBGMoY1RjjGL8cphitGMEYyhjVGOMYGxzBGMoY1RjjGD8cwRjKGNUYciXBGMoY1RjjGHIcwRjKGNUYBiCmGK0YwRjKGNUY4xh9JaYYrRjBGMoY1RjjGLQfphitGMEYyhjVGOMYnh+mGK0YwRjKGNUY4xhcIaYYrRjBGMoY1RjjGD0hphitGMEYyhjVGOMYmSGmGK0YwRjKGNUY4xi7IaYYrRjBGMoY1RjjGCchphitGMEYyhjVGOMYLx2mGK0YwRjKGNUY4xiUJcEYyhjVGOMYrCXBGMoY1RjjGMQlwRjKGNUY4xiUGcEYyhjVGOMY2CXBGMoY1RjjGP0ZwRjKGOMY6SXBGMoY1RjjGJkdphitGMEYyhjVGOMY1R+mGK0YwRjKGNUY4xj6JaYYrRjBGMoY1RjjGCwawRjKGNUY4xhbHMEYyhjVGBQaphitGMEYyhjVGOMYCSbBGMoY1RggJsEYyhjVGLAephitGMEYyhjVGOMY+x6mGK0YwRjKGNUY4xiBHqYYrRjBGMoY1RjjGMEdwRjKGNUY4xj4HaYYrRjBGMoY1RjjGEEephitGMEYyhjVGOMYMCbBGMoY1RjjGAUdwRjKGNUY4xhlGcEYyhjVGOMY4yHBGMoY1RjjGCwlwRjKGNUY4xioGqYYrRjBGMoY1RhBJqYYrRjBGMoY1RjjGHYaphitGMEYyhjVGOMYEhumGK0YwRjKGNUY4xhLJqYYVyatGMEYyhjVGOMYYiamGFcmrRjBGMoY1RjjGHAmIgDDAcQBxQHGAfomDScdJzAnQydcJ3UnhCeTJ8AnwCfAJ8AnwCd8Gp8alhqNGgIoFCghKC8oPyhHKFEoAigUKCEoLyg/KEcoUSgCKBQoISgvKD8oRyhRKAIoFCghKC8oPyhHKFEoAigUKCEoLyg/KEcoUSifGpYajRoCKBQoISgvKD8oRyhRKAIoFCghKC8oPyhHKFEoAigUKCEoLyg/KEcoUSgCKBQoISgvKD8oRyhRKAIoFCghKC8oPyhHKFEonxqWGo0aAigUKCEoLyg/KEcoUSgCKBQoISgvKD8oRyhRKAIoFCghKC8oPyhHKFEoAigUKCEoLyg/KEcoUSgCKBQoISgvKD8oRyhRKJ8alhqNGgIoFCghKC8oPyhHKFEoAigUKCEoLyg/KEcoUSgCKBQoISgvKD8oRyhRKAIoFCghKC8oPyhHKFEoAigUKCEoLyg/KEcoUSh8KHwofCh8KLoouii6KLoouii6KLoouii6KLooFCjaKOMo7Cj2KAApECkbKSIpuigAKRApGykiKbooFCjaKOMo7Cj2KAApECkbKSIpuigAKRApGykiKbooFCjaKOMo7Cj2KAApECkbKSIpuigAKRApGykiKbooFCjaKOMo7Cj2KAApECkbKSIpuigAKRApGykiKbooNyk3KTcpNyk3KTcpNyk3KTcpkSjWKeAp6CnoKegp6CnoKegp6CnoKegp6CnoKegp6CnoKegp6CnoKboouii6KLoouii6KLoouii6KCEqMSpDKlwqYypwKn8qkSqfKqwqtiohKjEqQypcKmMqcCp/KpEqnyqsKrYqYypwKp8q1ipjKnAqnyrWKmMqcCqfKtYqYypwKp8q1ir7KkMqBSsPKxsrnyq2KiEqMSpDKlwqYypwKn8qkSqfKqwqtipjKnAqnyrWKmMqcCqfKtYqYypwKp8q1ir7KkMqBSsPKxsrnyq2KiEqMSpDKlwqYypwKn8qkSqfKqwqtiohKjEqQypcKmMqcCp/KpEqnyqsKrYqYypwKp8q1ipjKnAqnyrWKmMqcCqfKtYq+ypDKgUrDysbK58qtiohKjEqQypcKmMqcCp/KpEqnyqsKrYqYypwKp8q1ipjKnAqnyrWKvsqQyoFKw8rGyufKrYqISoxKkMqXCpjKnAqfyqRKp8qrCq2KmMqcCqfKtYq+ypDKgUrDysbK58qtiohKjEqQypcKmMqcCp/KpEqnyqsKrYqYypwKp8q1ir7KkMqBSsPKxsrnyq2KiEqMSpDKlwqYypwKn8qkSqfKqwqtiohKjEqQypcKmMqcCp/KpEqnyqsKrYqYypwKp8q1ipjKnAqnyrWKvsqQyoFKw8rGyufKrYqISoxKkMqXCpjKnAqfyqRKp8qrCq2KmMqcCqfKtYq+ypDKgUrDysbK58qtiohKjEqQypcKmMqcCp/KpEqnyqsKrYqISoxKkMqXCpjKnAqfyqRKp8qrCq2KmMqcCqfKtYqYypwKp8q1ipjKnAqnyrWKvsqQyoFKw8rGyufKrYqISoxKkMqXCpjKnAqfyqRKp8qrCq2KmMqcCqfKtYqYypwKp8q1ir7KkMqBSsPKxsrnyq2KkQrRCtEK0QrRCtEK0QrRCtEK0QrRCxELEQsRCxELEQsRCxELL8wvzC/ML8wvzC/ML8wyzDLMMswyzDLMMswyzDLMMcBOAQ5BDoEOwQ8BD0EPgTbMNsw2zDbMNsw2zDbMNsw2zDbMOYw5jDmMOYw5jDmMOYw5jA/BMIswizCLMIswizCLMIswizCLMIsUgRdBF4EXwRgBGEEYgRjBGQEZQRmBL8wZwRpBGoEawRsBG0EbgRvBHAEcQRyBHMEdAR1BHYEdwR4BHkEegR7BHwEfQR+BH8EgASBBIIEOC2DBIUEOC2GBIgEOC2JBIsEjASNBI4EjwSQBJEEOC2SBJQElQQ4LZYEOC2YBJoEmwScBJ0EngSfBKAEoQSiBDgtAAAAyAIAAAABAAEAAQABAAEABQAGAAcACAAHAAcABwAHAAYADgAPAA4ADgAOAA4AAQAVABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFQBFAEYARwBGAEYARgBGAEUATQBNAE0ATQBFAFIAUgBSAFIARQBXAFcAVwBFAFsAWwBbAFsARQBgAGAAYABFAGQAZQBkAGQAZABkAEUAawBsAGsAawBrAGsARQByAHMAcgByAHIAcgBFAHkAeQB5AHkARQB+AH8AfgB+AH4AfgBFAIUAhgCFAIUAhQCFAEUAjACNAIwAjACMAIwARQCTAJQAkwCTAJMAkwBFAJoAmwCaAJoAmgCaAEUAoQCiAKEAoQChAKEARQCoAKkAqACoAKgAqABFAK8ArwCvAK8ARQC0ALQAtABFALgAuAC4ALgARQC9AL0AvQBFAMEAwgDBAMEAwQDBAEUAyADJAMgAyADIAMgARQDPANAAzwDPAM8AzwBFANYA1wDWANYA1gDWAEUA3QDeAN0A3QDdAN0ARQDkAOUA5ADkAOQA5ABFAOsA7ADrAOsA6wDrAEUA8gDzAPIA8gDyAPIARQD5APoA+QD5APkA+QBFAAABAQEAAQABAAEAAUUABwEHAQcBBwFFAAwBDAEMAQwBRQARAREBEQERAUUAFgEWARYBFgFFABsBGwEbARsBRQAgASABIAFFACQBJAEkASQBRQApASoBKQEpASkBKQFFADABMQEwATABMAEwAUUANwE4ATcBNwE3ATcBRQA+AT4BPgE+AUUAQwFDAUMBRQBHAUgBRwFHAUcBRwFFAE4BTgFOAUUAUgFSAVIBRQBWAVcBVgFWAVYBVgFFAF0BXgFdAV0BXQFdAUUAZAFlAWQBZAFkAWQBRQBrAWsBawFrAUUAcAFxAXABcAFwAXABRQB3AXgBdwF3AXcBdwFFAH4BfgF+AX4BRQCDAYMBgwGDAUUAiAGIAYgBiAFFAI0BjQGNAY0BRQCSAZIBkgGSAUUAlwGYAZcBlwGXAUUAnQGeAZ0BnQGdAZ0BRQCkAaUBpAGkAaQBpAFFAKsBrAGrAasBqwGrAUUAsgGzAbMBsgGyAbIBsgFFALoBuwG7AboBugG6AboBAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEQASABMAFAAVAAYABgAGAAYAGgAaABoAGgAaABoAGgAbABsAGwAbABsAGwAbABwAHAAcABwAHAAcABwAHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAAoACgAKACUAJQAlACUAJQAlACUAJgAmACYAJgAmACYAJgAnACcAJwAnACcAJwAnACgAKAAoACgAKAAoACgAKQApACkAKQApACkAKQAOAA4ADgAwADAAMAAwADAAMAAwADEAMQAxADEAMQAxADEAMgAyADIAMgAyADIAMgAzADMAMwAzADMAMwAzADQANAA0ADQANAA0ADQAEgASABIAOwA7ADsAOwA7ADsAOwA8ADwAPAA8ADwAPAA8AD0APQA9AD0APQA9AD0APgA+AD4APgA+AD4APgA/AD8APwA/AD8APwA/AEMARABFAEYASABJAEsATABOAE8AUQBSAFQAVQBWAFYAVgBWAFYAVwBXAFcAVwBXAFgAWABYAFgAWABZAFkAWQBZAFkAWgBaAFoAWgBaAFsAWwBbAFsAWwBcAFwAXABcAFwAXQBdAF0AXQBdAF4AXgBeAF4AXgBfAF8AXwBfAF8AYABgAGAAYABgAGEAYQBhAGEAYQBiAGMAZABlAGYAZwBoAGkAagAxADEAMQCcAJ0AngCfAKAAoQCiAKMApAClAKYApwCoAKkAqgCrAKwArgCvALAAsQCyALMAtAC1ALYAvgC+AL4AvgC+AL4AvgC+AL4AvgC+AMAAwADAAMAAwADAAMAAwADAAMAAwADEAMQAxADEAMYAxgDGAMYAyADIAMgAyADKAMoAygDKANAA0ADQANAA0ADQANAA1ADUANQA1ADUANQA1ADUANQA1ADUANcA1wDXANcA2QDZANkA2QDbANsA2wDbAOAA4ADgAOAA4ADgAOAA5ADkAOQA5ADkAOQA5ADkAOQA5ADkAOYA5gDmAOYA5gDmAOYA5gDmAOYA5gDqAOoA6gDqAOwA7ADsAOwA7gDuAO4A7gDzAPMA8wDzAPMA8wDzAPcA9wD3APcA9wD3APcA9wD3APcA9wD6APoA+gD6APwA/AD8APwAAAEAAQABAAEAAQABAAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBwEHAQcBBwEKAQoBCgEKAQoBCgEKAQ4BDgEOAQ4BDgEOAQ4BDgEOAQ4BDgERAREBEQERARQBFAEUARQBFAEUARQBGAEYARgBGAEYARgBGAEYARgBGAEYARoBGgEaARoBGgEaARoBGgEaARoBGgEeAR4BHgEeASABIAEgASABJAEkASQBJAEkASQBJAEoASgBKAEoASgBKAEoASgBKAEoASgBKwErASsBKwEuAS4BLgEuAS4BLgEuATIBMgEyATIBMgEyATIBMgEyATIBMgE0ATQBNAE0ATQBNAE0ATQBNAE0ATQBOAE4ATgBOAE6AToBOgE6ATwBPAE8ATwBQQFBAUEBQQFBAUEBQQFFAUUBRQFFAUUBRQFFAUUBRQFFAUUBSAFIAUgBSAFKAUoBSgFKAU4BTgFOAU4BTgFOAU4BUwFUAVUBVgFXAVgBWQFaAVsBXAF1AXYBdwF4AXkBegF7AXwBSABGAEQAQgBAAD4ANgBUAEgARgBEAEIAQAA+ADYAjQGOAY8BkAGRAZIBkwGUAVQASABGAEQAQgBAAD4ALwA2ADIAVABIAEYARABCAEAAPgA2AKcBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBVADvAfAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+Af8BAAIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgITAhQCFQIWAhcCGAIZAhoCGwIcAh0CHgIfAiACIQIiAiMCJAIlAiYCJwIoAikCKgIAAADIAQAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAICAgICAgICAgICAgICAwMDAwMCAgICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwICAgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwICAgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDDQ0NDQ0NDQ0NDQ0NDQ0NAwMDAwMDAwMNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0DAwMDAwMDAwMDAwMDAwMDAwMDAwMDDQMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAMgCAAAAwgEVAAAAAwADAAAADgANAAAAAAAKAAsADAAAABQAAAAAABEAEgATAAUARQBEAAAAGAAZABoAGwAcAB0AHgAeACAAIQAhACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAAAAugFMAAAAAABJAEoASwAAAFEAAABPAFAATQBWAAAAVABVAFIAWgAAAFkAVwBfAAAAXQBeAFsAYwAAAGIAYABqAAAAAABnAGgAaQBkAHEAAAAAAG4AbwBwAGsAeAAAAAAAdQB2AHcAcgB9AAAAewB8AHkAhAAAAAAAgQCCAIMAfgCLAAAAAACIAIkAigCFAJIAAAAAAI8AkACRAIwAmQAAAAAAlgCXAJgAkwCgAAAAAACdAJ4AnwCaAKcAAAAAAKQApQCmAKEArgAAAAAAqwCsAK0AqACzAAAAsQCyAK8AtwAAALYAtAC8AAAAugC7ALgAwAAAAL8AvQDHAAAAAADEAMUAxgDBAM4AAAAAAMsAzADNAMgA1QAAAAAA0gDTANQAzwDcAAAAAADZANoA2wDWAOMAAAAAAOAA4QDiAN0A6gAAAAAA5wDoAOkA5ADxAAAAAADuAO8A8ADrAPgAAAAAAPUA9gD3APIA/wAAAAAA/AD9AP4A+QAGAQAAAAADAQQBBQEAAQsBAAAJAQoBBwEQAQAADgEPAQwBFQEAABMBFAERARoBAAAYARkBFgEfAQAAHQEeARsBIwEAACIBIAEoAQAAJgEnASQBLwEAAAAALAEtAS4BKQE2AQAAAAAzATQBNQEwAT0BAAAAADoBOwE8ATcBQgEAAEABQQE+AUYBAABFAUMBTQEAAAAASgFLAUwBRwFRAQAAUAFOAVUBAABUAVIBXAEAAAAAWQFaAVsBVgFjAQAAAABgAWEBYgFdAWoBAAAAAGcBaAFpAWQBbwEAAG0BbgFrAXYBAAAAAHMBdAF1AXABfQEAAAAAegF7AXwBdwGCAQAAgAGBAX4BhwEAAIUBhgGDAYwBAACKAYsBiAGRAQAAjwGQAY0BlgEAAJQBlQGSAZwBAAAAAJoBmwGXAaMBAAAAAKABoQGiAZ0BqgEAAAAApwGoAakBpAGxAQAAAACuAa8BsAGrAbkBtQEAAAAAtgG3AbgBsgHBAb0BAAAAAL4BvwHAAQAA0AEAAMQBxQHGAQAAyAHJAcoBywHMAc0BzgHPAQAAAAAAAAAAAADZAQAA1wHYAeABAADbAdwB3QHeAd8B5wEAAOIB4wHkAeUB5gHuAQAA6QHqAesB7AHtAfUBAADwAfEB8gHzAfQB/AEAAPcB+AH5AfoB+wH/AQAA/gEGAgAAAQICAgMCBAIFAg0CAAAIAgkCCgILAgwCFAIAAA8CEAIRAhICEwIbAgAAFgIXAhgCGQIaAiICAAAdAh4CHwIgAiECJQIAACQCLAIAACcCKAIpAioCKwIzAgAALgIvAjACMQIyAjoCAAA1AjYCNwI4AjkCQQIAADwCPQI+Aj8CQAJIAgAAQwJEAkUCRgJHAksCAABKAlICAABNAk4CTwJQAlECWQIAAFQCVQJWAlcCWAJgAgAAWwJcAl0CXgJfAmcCAABiAmMCZAJlAmYCbgIAAGkCagJrAmwCbQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQIAAH4CfwKAAoYCAACDAoQChQKLAgAAiAKJAooCkAIAAI0CjgKPApUCAACSApMClAKaAgAAlwKYApkCnwIAAJwCnQKeAqQCAAChAqICowKpAgAApgKnAqgCrgIAAKsCrAKtArMCAACwArECsgK4AgAAtQK2ArcCAAAAAAAAAAAAAAAAAAAAAAAAxAIAAMMCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOkCAADgAuEC4gLjAuQC5QLmAucC6AL0AgAA6wLsAu0C7gLvAvAC8QLyAvMC+AIAAPYC9wL8AgAA+gL7AgADAAD+Av8CBAMAAAIDAwMLAwAABgMHAwgDCQMKAxYDAAANAw4DDwMQAxEDEgMTAxQDFQMaAwAAGAMZAx4DAAAcAx0DIgMAACADIQMpAwAAJAMlAyYDJwMoAzQDAAArAywDLQMuAy8DMAMxAzIDMwM/AwAANgM3AzgDOQM6AzsDPAM9Az4DQwMAAEEDQgNHAwAARQNGA0sDAABJA0oDUgMAAE0DTgNPA1ADUQNdAwAAVANVA1YDVwNYA1kDWgNbA1wDYQMAAF8DYANlAwAAYwNkA2wDAABnA2gDaQNqA2sDdwMAAG4DbwNwA3EDcgNzA3QDdQN2A3sDAAB5A3oDggMAAH0DfgN/A4ADgQONAwAAhAOFA4YDhwOIA4kDigOLA4wDkQMAAI8DkAOYAwAAkwOUA5UDlgOXA6MDAACaA5sDnAOdA54DnwOgA6EDogOuAwAApQOmA6cDqAOpA6oDqwOsA60DsgMAALADsQO2AwAAtAO1A70DAAC4A7kDugO7A7wDyAMAAL8DwAPBA8IDwwPEA8UDxgPHA8wDAADKA8sD0wMAAM4DzwPQA9ED0gPeAwAA1QPWA9cD2APZA9oD2wPcA90D6QMAAOAD4QPiA+MD5APlA+YD5wPoA+0DAADrA+wD8QMAAO8D8AP1AwAA8wP0A/wDAAD3A/gD+QP6A/sDBwQAAP4D/wMABAEEAgQDBAQEBQQGBAsEAAAJBAoEDwQAAA0EDgQWBAAAEQQSBBMEFAQVBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEsETARNBE4ETwRQBFEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwBDEEMgQzBDQENQQ2BAAANwQAAEAEQQRCBEMERARFBEYESAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEoEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASrkAAFQJAAABAAAAAgAAABlAFQAFAACACUAZQBlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBlAHAAMAAwADAAMAAwADAAMAACADAAMAACADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAJQBlAGUAUAAUABQAFAAUACUAVAAUABQAFAAlAFQAFAAUABQAJQBUABQAFAAlAFQAFAAUABQAJQBUABQAFAAlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBlAFAAFAAUABQAFAAlAFQAFAAUABQAJQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBlAFAAFAAUABQAFAAlAFQAFAAUABQAJQBUABQAFAAlAFQAFAAUABQAJQBUABQAFAAlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAVAAUABQAFAAlAFQAFAAUABQAJQBUABQAFAAUACUAVAAUABQAFAAlAFQAFAAUABQAJQBUABQAFAAlAFQAFAAUABQAJQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBUABQAFAAUACUAVAAUABQAJQBlAFAAFAAUABQAFAAlAFQAFAAUACUAVAAUABQAJQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBUABQAFAAUACUAZQBQABQAFAAUABQAJQBlAFAAFAAUABQAFAAlAFQAFAAUABQAJQBUABQAFAAUACUAVAAUABQAFAAlAFQAFAAUABQAJQBUABQAFAAUACUAZQBQABQAFAAUACUAZQBQABQAFAAUABQAJQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAZQBUABAAFAAUABQAFAAlAGUAVAAQABQAFAAUABQAIAACAAIAAgACAAIAFIAUgBSAFIAUgBSAFIAUgFSAWABYAFgAWABYAFCAEIAQgBCAVAAUABQAFAAUABgAGABUABQAFAAUABQAGAAYAFQAFAAUABQAFAAYABgAVAAUABQAFAAUABgAGABUABQAFAAUABQAGAAYAFCAEIAQgFQAFAAUABQAFAAYABgAVAAUABQAFAAUABgAGABUABQAFAAUABQAGAAYAFQAFAAUABQAFAAYABgAVAAUABQAFAAUABgAGABQgBCAEIBUABQAFAAUABQAGAAYAFQAFAAUABQAFAAYABgAVAAUABQAFAAUABgAGABUABQAFAAUABQAGAAYAFQAFAAUABQAFAAYABgAUIAQgBCAVAAUABQAFAAUABgAGABUABQAFAAUABQAGAAYAFQAFAAUABQAFAAYABgAVAAUABQAFAAUABgAGABUABQAFAAUABQAGAAYAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABUABgAGAAUABQAWAAYABQAFAAQAFgAGAAUABQAEABUABgAGAAUABQAWAAYABQAFAAQAFgAGAAUABQAEABUABgAGAAUABQAWAAYABQAFAAQAFgAGAAUABQAEABUABgAGAAUABQAWAAYABQAFAAQAFgAGAAUABQAEABQAFAAUABQAFAAUABQAFAAUABQgBCAEIBUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABQAFAAUABQAFAAUABQAFAAWAAYABAAGAAYACAAEAAYACAAIAAgAFgAGAAQABgAGAAgABAAGAAgACAAIABYABgAIAAYAFgAGAAgABgAWAAYACAAGABYABgAIAAgAFgAEAAYABgAEAAgABgAWAAYABAAGAAYACAAEAAYACAAIAAgAFgAGAAgABgAWAAYACAAGABYABgAIAAgAFgAEAAYABgAEAAgABgAWAAYABAAGAAYACAAEAAYACAAIAAgAFgAGAAQABgAGAAgABAAGAAgACAAIABYABgAIAAYAFgAGAAgABgAWAAYACAAIABYABAAGAAYABAAIAAYAFgAGAAQABgAGAAgABAAGAAgACAAIABYABgAIAAYAFgAGAAgACAAWAAQABgAGAAQACAAGABYABgAEAAYABgAIAAQABgAIAAgACAAWAAYACAAGABYABAAGAAYABAAIAAYAFgAGAAQABgAGAAgABAAGAAgACAAIABYABgAIAAgAFgAEAAYABgAEAAgABgAWAAYABAAGAAYACAAEAAYACAAIAAgAFgAGAAQABgAGAAgABAAGAAgACAAIABYABgAIAAgAFgAGAAgACAAWAAQABgAGAAQACAAGABYABgAEAAYABgAIAAQABgAIAAgACAAWAAYACAAIABYABAAGAAYABAAIAAYAFgAGAAQABgAGAAgABAAGAAgACAAIABYABgAEAAYABgAIAAQABgAIAAgACAAWAAYACAAGABYABgAIAAYAFgAGAAgABgAWAAQABgAGAAQACAAGABYABgAEAAYABgAIAAQABgAIAAgACAAWAAYACAAGABYABgAIAAYAFgAEAAYABgAEAAgABgAUABQAFAAUABQAFAAUABQAFAAUABYAFgAWABYAFgAWABYAFgASABIAEgASABIAEgASAAIAAgACAAIAAgACAAIAAgAAgACAAIAAgACAAIAAgACAAgACAAIAAgACAAIAAgASAAIAEgAAAAAAAAAAAAAAAAAAAAAAAIAWABYAFgAWABYAFgAWABYAFgAWAACAAIAAgACAAIAAgACAAIAAgACAAIASAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgBYAAIAAgBYAAIAAgBYAAIAAgACAAIAAgACAAIAAgBYAAIAAgACAFgAAgBYAAIAAgACAAIAAgACAAIAAgACAAIAWAAAAAAAAAAAAAAAAABAAAAAKAAAAAAEAAAAAAAABAQAAAAAAAAIBAAAAAAAAAwEAAAAAAAAFAQAAAAAAAAYBAAAAAAAABwEAAAAAAAAAAwAAAAAAAAEDAAAAAAAAAgMAAAAAAAAPAAAAAAAAAA4AAAAAAAAADQAAAAAAAAAMAAAAAAAAAAsAAAAAAAAACgAAAAAAAAAIAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAAAAACkAAAAAAAAAAYAAAAFAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAAAwAAAAAAAKQAAAAAAAAAqAAAAAAAAACsAAAAAAAAALAAAAAAAAAAtAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAsAAAADAAAA/////wAAAMikBgAAeAAAAAIAAADQBwAAsAQAACADAAAgAwAAXgEAAF4BAABkAAAAtAAAAAQAAAAAAAAApAAAAAAAAAAGAAAABQAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAMAAAAAAACkAAAAAAAAAKgAAAAAAAAArAAAAAAAAACwAAAAAAAAALQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAAaAAAAAAAAAP////8AAADIdIIyNsdu2TZedRE3l2RTN/fMkjcUbdg3E8UaOFFM3jiYCdA2E26mNhAkrTUdpfk14b6jNe8/8DVgxlo2Ks4sNwrXozvVeOk8EoNAPRKDQD0AAAA+AAAAPjMzQ0EAgNREzcxAQgAA8EIEAAAApAAAAAAAAAAGAAAABQAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAMAAAAAAACkAAAAAAAAAKgAAAAAAAAArAAAAAAAAACwAAAAAAAAALQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAABgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACrAAAAqwAAABMAAACqAAAAAAAAyAIAAAC2GPcYthi2GLYYthi2GLYY9xi2GLYY9xi2GPcY9xj3GPcY9xj3GPcY9xj3GLYYthi2GLYYthj3GPcY9xj3GPcY9xhnAWcB9xi2GLYYfBqfGpYajRqfGpYajRqfGpYajRqfGpYajRqRKJkonyinKMYozyjGKM8oxijPKMYozyjGKM8oxijPKMYozyjGKM8ozyjGKEgpUildKWgpcyl8KYUpjimXKZEo1ingKQwqDCoMKgwqzyjGKM8oxijPKFQqiipUKooqiiqXMVQqiiqKKpcxVCqKKlQqiiqKKpcxVCqKKooqlzFUKooqiiqXMVQqiiqKKpcxVCqKKlQqiiqKKpcxVCqKKooqlzFUKooqVCqKKooqlzFUKooqiiqXMUwrVSteK2crcCt5K4IrjCuWK6ArAACZAJoAmwCcAJ0AngCfAKAAoQCiAKMApAClAKYApwCoAKkAqgAAAAQAAAC8AAAAAAAAAAcAAAAGAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAAAwAAAAAAAAEDAAAAAAAAvAAAAAAAAADAAAAAAAAAAMQAAAAAAAAAyAAAAAAAAADMAAAAAAAAADAEAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAABkAwAAAAAAAEQbEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK4BAACuAQAAFQAAAAEBAAAAAADIAgAAAGkYaRiqAWkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYqwEDAQQBBQEBAWkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYaRhpGGkYAACgAaEBogGjAaQBpQGmAacBqAGpAawBrQGuAQMAAAAAyAQAAAABAAAAnQAAAAAAAAAsFwAAoBoAAPwdAAAaIAAAqyIAAJMjAABaJAAAYyUAAJ0lAADOTgAAoVEAAOdRAABqUwAA+VcAAFxYAABwWAAAklgAAOpvAADCcgAAwXQAANV0AADbrQAAcrAAABCyAADZ+wAAbQABANoAAQAsAwEABhsBABkeAQDKHwEANksBAHJNAQCdTQEA708BAAEAAgC/EwIAPxUCAKQYAgCPwAIAk9MCAC3VAgCn2AIAQPsCAPn/AgCCAAMAAQAEAGhRBQC2XgUABGEFADxjBQCTugUA9L4FAEW/BQBXwwUAs9oFALjcBQDr3AUAAQAGACRDBgAvRwYAoUcGADtJBgDKTwYAUVAGAHFQBgAhUQYAHWgGABFrBgBiawYACW4GAEZxBgCgcQYAsnEGABdyBgCNhwYAGYoGAL2LBgDRiwYAT9MGAKHWBgA22AYA1D8HALtEBwBuRQcA6EYHAJB1BwCKdwcAvngHANvHBwAUzwcAOtAHAJHVBwCT8AcA7PIHACTzBwABAAgALBQIAD8WCABmFggAexgIABgoCAAJKggAHioIAHgrCACZVAgAs1gIAIhZCACJXAgAj3AIAJFyCADVcggAzHQIACuKCAAYjAgAgowIAC6OCABTnwgAEqEIAHGhCACjoggADbQIAMS1CAAXtggASbcIAELYCADp2ggAQ9sIAPHcCADUuQkAXsUJAELGCQABAAoA1KwKAAq3CgAAuAoAt70KAOHdCgAC4QoAKOEKAArjCgAjDQsA5hELAJgSCwABAAwAmlsNAN1tDQDfbg0ANnYNAHeVDQABlw0AAQAOAMigDgDhqg4A16sOAGWxDgAiNw8A3UEPAJtDDwAfRg8A/XAPANFzDwBmdA8AMHYPAGOdDwBjnw8ABKAPAOCgDwDKow8AJKQPAEakDwAwpQ8A5NIPALHUDwC21Q8Ak+QPAEHmDwC55g8AqecPADjzDwDw8w8AtfQPAOb7DwCA/A8AAQAQAHdMEAA/UxAAGFQQAGNYEACanRAAoKQQAEelEADsqRAA2fcQACz+EADe/hAAKwMRAIQVEQD+FhEAcRcRAD8YEQA6MBEA/jIRACszEQA/NhEAUEoRAMRMEQADTREAZU8RAB9+EQCPgREA5YERAO6DEQA2uxEAdb8RAPi/EQAOwREAt/IRAGL2EQAa9xEAEvgRAKL7EQAQ/BEAaPwRAHb8EQDV/BEA7/wRABf9EQAl/REAlf4RAAEAEgB9ARIA0AESAAICEgAUAhIAXQISANECEgAoAxIAPAMSALoDEgBtBBIA/wQSAGAFEgAOBhIANAYSALcGEgAXBxIAKQcSAMoHEgDwBxIATwgSAIkIEgCbCBIAAAAAAAAAAAAAAAAAAAAAAAAAAAD/CBIACgkSACEJEgAmCRIAMgkSADcJEgBCCRIARwkSAFMJEgBlCRIAaQkSAG0JEgBxCRIAdQkSAHkJEgB9CRIAgQkSAIUJEgCJCRIAjQkSAJEJEgCVCRIAmQkSAJ0JEgChCRIApQkSAKkJEgCtCRIAsQkSALUJEgC5CRIAvQkSAMEJEgDFCRIAyQkSAM0JEgDRCRIA1QkSANkJEgDdCRIA4QkSAOUJEgDpCRIA7QkSAPEJEgD1CRIA+QkSAP0JEgABChIABQoSAAkKEgANChIAEQoSABUKEgAZChIAHQoSACEKEgAlChIAKQoSAC0KEgAxChIANQoSADkKEgA9ChIAQQoSAEUKEgBJChIATQoSAFEKEgBVChIAWQoSAF0KEgBhChIAZQoSAGkKEgBtChIAcQoSAHUKEgB5ChIAfQoSAIEKEgCFChIAiQoSAI0KEgCRChIAlQoSAJkKEgCdChIAoQoSAKUKEgCpChIArQoSALEKEgC1ChIAuQoSAL0KEgDBChIAxQoSAMkKEgDNChIA0QoSANUKEgDZChIA3QoSAOEKEgDlChIA6QoSAO0KEgDxChIA9QoSAAwLEgAWCxIAIgsSACYLEgAqCxIALgsSADILEgBJCxIAUwsSAF8LEgBjCxIAZwsSAGsLEgBvCxIAhgsSAJALEgCcCxIAoAsSAKQLEgCoCxIArAsSAMILEgDQCxIA4AsSAOQLEgDoCxIA7AsSAPALEgAIDBIAIAwSADcMEgBODBIAZQwSAHwMEgCTDBIAqgwSAMMMEgDcDBIA9QwSAA4NEgAlDRIAPQ0SAFUNEgBtDRIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAJ0AAACQFgAAAAAAAHUDAABdAwAAHwIAAJICAADpAAAAyAAAAAoBAAA7AAAAMikAANQCAABHAAAAhAEAAJAEAABkAAAAFQAAACMAAABZFwAA2QIAAAACAAAVAAAABzkAAJgCAACfAQAAykkAAJUEAABuAAAAUwIAANsXAAAUAwAAsgEAAG0rAAA9AgAALAAAAFMCAAC7pQAAvxMAAIEBAABmAwAA7KcAAAUTAACbAQAAewMAAJoiAAC6BAAAigAAADoDAABoUQEATw0AAE8CAAA5AgAAWFcAAGIEAABSAAAAEwQAAF0XAAAGAgAANAAAABUAAAAkQwAADAQAAHMAAACbAQAAkAYAAIgAAAAhAAAAsQAAAP0WAAD1AgAAUgAAAKgCAAA+AwAAWwAAABMAAABmAAAAdxUAAI0CAAClAQAAFQAAAH9HAABTAwAAlgEAAJ9nAADoBAAAtAAAAHsBAACpLgAA+wEAADUBAAAeTwAAOgcAACcBAABYBQAAAxsAAFoCAAA5AAAApAIAACwUAAAUAgAAKAAAABYCAACeDwAA8gEAABYAAABbAQAAIikAABsEAADWAAAAAgMAAAcUAAADAgAARQAAAPgBAABgFQAA7gEAAGsAAACtAQAAJhEAAMABAABgAAAAMwEAAGsRAAC4AQAAVAAAADMBAAD6IAAAqAIAAFsAAACvAQAA5NwAAIsLAADlAAAAfgUAANSsAAA3CgAA9wAAALgFAAArIAAAIgMAACcAAADjAQAAGioAAMQEAACzAAAAYAMAAJpbAQBEEgAAAwEAAFgHAABCHwAAiwEAAOYAAADIoAAAGgoAAPcAAACPBQAAvoUAALwKAAC/AQAAhQIAAN8qAADVAgAAlgAAAMsBAAA0JwAAAQIAAKIAAADdAAAA6wIAAFsAAAAjAAAA6wAAALUtAADOAQAABgEAAN4OAACvAQAAeQAAAPEAAACQCwAAuQAAAMYAAAAyBwAAmwAAAKwAAAB3TAAAyQYAANoAAABMBAAAOEUAAAcHAACoAAAApgQAAO5NAABUBgAAswAAAE4EAABaEgAAewEAAHQAAADPAAAA/BcAAMUCAAAuAAAAFQMAABIUAAB1AgAAQAAAAGMCAAC7LgAAcQMAAFcAAAAKAgAASTcAAEAEAACEAAAAFwEAAKoxAACsAwAAuQAAAPkAAACRAwAAbwAAAFkAAAAPAAAAYAAAABsAAAApAAAADwAAAHEBAADhAAAAfQEAAFQAAAAzAAAAEwAAAEoAAAB1AAAAWAAAABUAAAB/AAAAtAAAAJMAAABiAAAArwAAACcAAACEAAAAYQAAABMAAACiAAAAJwAAAGAAAAA7AAAAEwAAAGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAYAAAABgAAAA0AAAAGAAAADAAAAAYAAAANAAAAEwAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAYAAAACwAAAA0AAAAFAAAABQAAAAUAAAAFAAAAGAAAAAsAAAANAAAABQAAAAUAAAAFAAAABQAAABgAAAALAAAADQAAAAUAAAAFAAAABQAAAAUAAAAXAAAADwAAABEAAAAFAAAABQAAAAUAAAAFAAAAGQAAABkAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAaAAAAGgAAABoAAAAaAAAAGAAAABkAAAAZAAAAGQAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBIAhA0SAAAAAABYCgAARvwAAAIjAAA6CgAAQjQAAArqAAAbaAAA1gIAAIwAAAAAAAAAAAAAAAAAAAAAAAAAKCgiTTRNNV9DIiAic3ltYm9saWMiKSAoIk0zTTRfQyIgInN5bWJvbGljIikgKCJNMk0zX0MiICJzeW1ib2xpYyIpICgiTTFNMl9DIiAic3ltYm9saWMiKSAoIkwxTTFfQyIgInN5bWJvbGljIikgKCJQWUwxX0MiICJzeW1ib2xpYyIpICgiVFBMMV9DIiAic3ltYm9saWMiKSkAKCgiaHJwb2x5XzVwNzMiICJzeW1ib2xpYyIpICgiSFJQb2x5XzVwNzNfTDFNMWNvbiIgInN5bWJvbGljIikgKCJIUlBvbHlfNXA3M19SUEwxY29uIiAic3ltYm9saWMiKSAoImhycG9seV8ycDg1IiAic3ltYm9saWMiKSAoIkhSUG9seV8ycDg1X0wxTTFjb24iICJzeW1ib2xpYyIpICgiSFJQb2x5XzJwODVfUlBMMWNvbiIgInN5bWJvbGljIikgKCJocnBvbHlfMXA0MSIgInN5bWJvbGljIikgKCJIUlBvbHlfMXA0MV9MMU0xY29uIiAic3ltYm9saWMiKSAoIkhSUG9seV8xcDQxX1JQTDFjb24iICJzeW1ib2xpYyIpICgiaHJwb2x5XzBwNjkiICJzeW1ib2xpYyIpICgiSFJQb2x5XzBwNjlfTDFNMWNvbiIgInN5bWJvbGljIikgKCJIUlBvbHlfMHA2OV9SUEwxY29uIiAic3ltYm9saWMiKSAoImhycG9seV8wcDM1IiAic3ltYm9saWMiKSAoIkhSUG9seV8wcDM1X0wxTTFjb24iICJzeW1ib2xpYyIpICgiSFJQb2x5XzBwMzVfUlBMMWNvbiIgInN5bWJvbGljIikgKCJodkRGVFBNMXMyZW5oIiAic3ltYm9saWMiKSAoImFuY2hvciIgInN5bWJvbGljIikgKCJwYWRQTHdsYmkiICJzeW1ib2xpYyIpICgicGFkUExocCIgInN5bWJvbGljIikgKCJwYWRQTGZwIiAic3ltYm9saWMiKSAoInBhZFBMc3RnIiAic3ltYm9saWMiKSAoImFkdlNlYWxfNnVtIiAic3ltYm9saWMiKSAoImxhellfZGllU2VhbFJpbmciICJzeW1ib2xpYyIpICgibGF6WF9kaWVTZWFsUmluZyIgInN5bWJvbGljIikgKCJuaWtvbiIgInN5bWJvbGljIikgKCJNNGZ1c2UiICJzeW1ib2xpYyIpICgiRlVTRV9NM000IiAic3ltYm9saWMiKSAoIk0zbWV0b3AiICJzeW1ib2xpYyIpICgiTTRNNV9UIiAic3ltYm9saWMiKSAoIk01X1QiICJzeW1ib2xpYyIpICgiTTNNNF9UIiAic3ltYm9saWMiKSAoIk00X1QiICJzeW1ib2xpYyIpICgiTTJNM19UIiAic3ltYm9saWMiKSAoIk0zX1QiICJzeW1ib2xpYyIpICgiTTFNMl9UIiAic3ltYm9saWMiKSAoIk0yX1QiICJzeW1ib2xpYyIpICgiTTFfVCIgInN5bWJvbGljIikgKCJMMV9UIiAic3ltYm9saWMiKSAoIlBZX1QiICJzeW1ib2xpYyIpICgicnVsZVZpYTQiICJzeW1ib2xpYyIpICgicnVsZVZpYTMiICJzeW1ib2xpYyIpICgicnVsZVZpYTIiICJzeW1ib2xpYyIpICgicnVsZVZpYTEiICJzeW1ib2xpYyIpICgicnVsZVZpYSIgInN5bWJvbGljIikgKCJNNE01X0MiICJzeW1ib2xpYyIpICgiTTNNNF9DIiAic3ltYm9saWMiKSAoIk0yTTNfQyIgInN5bWJvbGljIikgKCJNNE01X1BSX1IiICJzeW1ib2xpYyIpICgiTTNNNF9QUl9SIiAic3ltYm9saWMiKSAoIk0yTTNfUFJfUiIgInN5bWJvbGljIikgKCJNNE01X1BSIiAic3ltYm9saWMiKSAoIk0zTTRfUFIiICJzeW1ib2xpYyIpICgiTTJNM19QUiIgInN5bWJvbGljIikgKCJNNE01c3EiICJzeW1ib2xpYyIpICgiTTNNNHNxIiAic3ltYm9saWMiKSAoIk0yTTNzcSIgInN5bWJvbGljIikgKCJNNVJETGxnX2F0bGFzIiAic3ltYm9saWMiKSAoIk01UkRMIiAic3ltYm9saWMiKSAoIk00TTUiICJzeW1ib2xpYyIpICgiTTNNNCIgInN5bWJvbGljIikgKCJNMk0zIiAic3ltYm9saWMiKSAoIlJETHNob3J0IiAic3ltYm9saWMiKSAoIk01c2hvcnQiICJzeW1ib2xpYyIpICgiTTRzaG9ydCIgInN5bWJvbGljIikgKCJkaXNjcmV0ZUNvbnRhY3RSaW5nIiAic3ltYm9saWMiKSAoIk0xTTJfQyIgInN5bWJvbGljIikgKCJMMU0xX0MiICJzeW1ib2xpYyIpICgiUFlMMV9DIiAic3ltYm9saWMiKSAoIlRQTDFfQyIgInN5bWJvbGljIikgKCJwRXNkQ2FzY29kZUZldCIgInN5bWJvbGljIikgKCJwRXNkRmV0IiAic3ltYm9saWMiKSAoInZhcmFjdG9yMiIgInN5bWJvbGljIikgKCJ2YXJhY3RvciIgInN5bWJvbGljIikgKCJQWU0yYnV0dF92YXJhY3RvciIgInN5bWJvbGljIikgKCJQWU0xYnV0dF92YXJhY3RvciIgInN5bWJvbGljIikgKCJQWU0yX3ZhcmFjdG9yIiAic3ltYm9saWMiKSAoIlBZTTFfdmFyYWN0b3IiICJzeW1ib2xpYyIpICgiVFBNMnNkX3ZhcmFjdG9yIiAic3ltYm9saWMiKSAoIlRQTTFzZF92YXJhY3RvciIgInN5bWJvbGljIikgKCJhbnRlbm5hX2Rpb2RlIiAic3ltYm9saWMiKSAoImdlblJpdmV0TWlycm9yRExyaW5nIiAic3ltYm9saWMiKSAoImdlblJpdmV0RExyaW5nIiAic3ltYm9saWMiKSAoImdlbkludERMcmluZyIgInN5bWJvbGljIikgKCJnZW5ETHJpbmciICJzeW1ib2xpYyIpICgiTTNzaG9ydCIgInN5bWJvbGljIikgKCJNMnNob3J0IiAic3ltYm9saWMiKSAoIk0xc2hvcnQiICJzeW1ib2xpYyIpICgibGkxc2hvcnQiICJzeW1ib2xpYyIpICgicGx5c2hvcnQiICJzeW1ib2xpYyIpICgiaXNvUHdlbGxSRVMiICJzeW1ib2xpYyIpICgicERGYmVudFJlcyIgInN5bWJvbGljIikgKCJuREZiZW50UmVzIiAic3ltYm9saWMiKSAoIlBZYmVudFJlcyIgInN5bWJvbGljIikgKCJMSXJlcyIgInN5bWJvbGljIikgKCJQWXJlcyIgInN5bWJvbGljIikgKCJwREZyZXMiICJzeW1ib2xpYyIpICgibkRGcmVzIiAic3ltYm9saWMiKSAoImV4dERuVHJhbiIgInN5bWJvbGljIikgKCJleHREcFRyYW4iICJzeW1ib2xpYyIpICgicGZldCIgInN5bWJvbGljIikgKCJuZmV0IiAic3ltYm9saWMiKSAoImh2cFRyYW4iICJzeW1ib2xpYyIpICgiaHZuVHJhbiIgInN5bWJvbGljIikgKCJwVHJhbiIgInN5bWJvbGljIikgKCJuVHJhbiIgInN5bWJvbGljIikgKCJwRHJhaW5Pbmx5IiAic3ltYm9saWMiKSAoIm5EcmFpbk9ubHkiICJzeW1ib2xpYyIpICgiaHZERlRQTDFzIiAic3ltYm9saWMiKSAoImh2REZMMXNkMiIgInN5bWJvbGljIikgKCJodkRGTDFzZCIgInN5bWJvbGljIikgKCJodkRGVFBNMXMiICJzeW1ib2xpYyIpICgiaHZERlRQTTFzMiIgInN5bWJvbGljIikgKCJodkRGVFBMMXMyIiAic3ltYm9saWMiKSAoImh2REZNMXNkMiIgInN5bWJvbGljIikgKCJERk0xc2QyIiAic3ltYm9saWMiKSAoIkRGTTFzZCIgInN5bWJvbGljIikgKCJUUE0xcyIgInN5bWJvbGljIikgKCJUUEwxcyIgInN5bWJvbGljIikgKCJERkwxc2QyIiAic3ltYm9saWMiKSAoIkRGTDFzZGYiICJzeW1ib2xpYyIpICgiaHZERk0xc2QiICJzeW1ib2xpYyIpICgiREZMMXNkIiAic3ltYm9saWMiKSAoIkRGVFBNMXMyIiAic3ltYm9saWMiKSAoIkRGVFBMMXMyIiAic3ltYm9saWMiKSAoIkRGVFBNMXMyZW5oIiAic3ltYm9saWMiKSAoIkRGVFBNMXN3IiAic3ltYm9saWMiKSAoIkRGVFBNMXMiICJzeW1ib2xpYyIpICgiREZUUEwxc3ciICJzeW1ib2xpYyIpICgiREZUUEwxcyIgInN5bWJvbGljIikgKCJNMU0yX1BSX1IiICJzeW1ib2xpYyIpICgiTTFNMl9QUiIgInN5bWJvbGljIikgKCJMMU0xX1BSIiAic3ltYm9saWMiKSAoInBERkwxX1BSIiAic3ltYm9saWMiKSAoIm5ERkwxX1BSIiAic3ltYm9saWMiKSAoInBUUEwxX1BSIiAic3ltYm9saWMiKSAoIm5UUEwxX1BSIiAic3ltYm9saWMiKSAoIlBZTDFfUFIiICJzeW1ib2xpYyIpICgiTDFNMiIgInN5bWJvbGljIikgKCJQWU0xIiAic3ltYm9saWMiKSAoIlRQTTEiICJzeW1ib2xpYyIpICgiZ3VhcmRSaW5nRW5oIiAic3ltYm9saWMiKSAoIkRGTTEiICJzeW1ib2xpYyIpICgiTTFNMnNxIiAic3ltYm9saWMiKSAoIk0xTTIiICJzeW1ib2xpYyIpICgiTDFNMXNxIiAic3ltYm9saWMiKSAoIkwxTTEiICJzeW1ib2xpYyIpICgiREZMMXNxIiAic3ltYm9saWMiKSAoIkRGTDEiICJzeW1ib2xpYyIpICgiVFBMMWEiICJzeW1ib2xpYyIpICgiVFBMMWNlbiIgInN5bWJvbGljIikgKCJUUEwxX2ZlbmNlIiAic3ltYm9saWMiKSAoIlRQTDFzcSIgInN5bWJvbGljIikgKCJUUEwxIiAic3ltYm9saWMiKSAoIlBZTDFzcSIgInN5bWJvbGljIikgKCJQWUwxIiAic3ltYm9saWMiKSAoInBhcnRudW1ibG9jayIgInN5bWJvbGljIikgKCJwYXJ0bnVtOWJsb2NrIiAic3ltYm9saWMiKSAoInBhcnRudW04YmxvY2siICJzeW1ib2xpYyIpICgicGFydG51bTdibG9jayIgInN5bWJvbGljIikgKCJwYXJ0bnVtNmJsb2NrIiAic3ltYm9saWMiKSAoInBhcnRudW01YmxvY2siICJzeW1ib2xpYyIpICgicGFydG51bTRibG9jayIgInN5bWJvbGljIikgKCJwYXJ0bnVtM2Jsb2NrIiAic3ltYm9saWMiKSAoInBhcnRudW0yYmxvY2siICJzeW1ib2xpYyIpICgicGFydG51bTFibG9jayIgInN5bWJvbGljIikgKCJwYXJ0bnVtMGJsb2NrIiAic3ltYm9saWMiKSAoInBhcnRudW1aYmxvY2siICJzeW1ib2xpYyIpICgicGFydG51bVlibG9jayIgInN5bWJvbGljIikgKCJwYXJ0bnVtWGJsb2NrIiAic3ltYm9saWMiKSAoInBhcnRudW1XYmxvY2siICJzeW1ib2xpYyIpICgicGFydG51bVZibG9jayIgInN5bWJvbGljIikgKCJwYXJ0bnVtVWJsb2NrIiAic3ltYm9saWMiKSAoInBhcnRudW1UYmxvY2siICJzeW1ib2xpYyIpICgicGFydG51bVNibG9jayIgInN5bWJvbGljIikgKCJwYXJ0bnVtUmJsb2NrIiAic3ltYm9saWMiKSAoInBhcnRudW1RYmxvY2siICJzeW1ib2xpYyIpICgicGFydG51bVBibG9jayIgInN5bWJvbGljIikgKCJwYXJ0bnVtT2Jsb2NrIiAic3ltYm9saWMiKSAoInBhcnRudW1OYmxvY2siICJzeW1ib2xpYyIpICgicGFydG51bU1ibG9jayIgInN5bWJvbGljIikgKCJwYXJ0bnVtTGJsb2NrIiAic3ltYm9saWMiKSAoInBhcnRudW1LYmxvY2siICJzeW1ib2xpYyIpICgicGFydG51bUpibG9jayIgInN5bWJvbGljIikgKCJwYXJ0bnVtSWJsb2NrIiAic3ltYm9saWMiKSAoInBhcnRudW1IYmxvY2siICJzeW1ib2xpYyIpICgicGFydG51bUdibG9jayIgInN5bWJvbGljIikgKCJwYXJ0bnVtRmJsb2NrIiAic3ltYm9saWMiKSAoInBhcnRudW1FYmxvY2siICJzeW1ib2xpYyIpICgicGFydG51bURibG9jayIgInN5bWJvbGljIikgKCJwYXJ0bnVtQ2Jsb2NrIiAic3ltYm9saWMiKSAoInBhcnRudW1CYmxvY2siICJzeW1ib2xpYyIpICgicGFydG51bUFibG9jayIgInN5bWJvbGljIikgKCJwYXJ0bnVtIiAic3ltYm9saWMiKSAoInBhcnRudW05IiAic3ltYm9saWMiKSAoInBhcnRudW04IiAic3ltYm9saWMiKSAoInBhcnRudW03IiAic3ltYm9saWMiKSAoInBhcnRudW02IiAic3ltYm9saWMiKSAoInBhcnRudW01IiAic3ltYm9saWMiKSAoInBhcnRudW00IiAic3ltYm9saWMiKSAoInBhcnRudW0zIiAic3ltYm9saWMiKSAoInBhcnRudW0yIiAic3ltYm9saWMiKSAoInBhcnRudW0xIiAic3ltYm9saWMiKSAoInBhcnRudW0wIiAic3ltYm9saWMiKSAoInBhcnRudW1aIiAic3ltYm9saWMiKSAoInBhcnRudW1ZIiAic3ltYm9saWMiKSAoInBhcnRudW1YIiAic3ltYm9saWMiKSAoInBhcnRudW1XIiAic3ltYm9saWMiKSAoInBhcnRudW1WIiAic3ltYm9saWMiKSAoInBhcnRudW1VIiAic3ltYm9saWMiKSAoInBhcnRudW1UIiAic3ltYm9saWMiKSAoInBhcnRudW1TIiAic3ltYm9saWMiKSAoInBhcnRudW1SIiAic3ltYm9saWMiKSAoInBhcnRudW1RIiAic3ltYm9saWMiKSAoInBhcnRudW1QIiAic3ltYm9saWMiKSAoInBhcnRudW1PIiAic3ltYm9saWMiKSAoInBhcnRudW1OIiAic3ltYm9saWMiKSAoInBhcnRudW1NIiAic3ltYm9saWMiKSAoInBhcnRudW1MIiAic3ltYm9saWMiKSAoInBhcnRudW1LIiAic3ltYm9saWMiKSAoInBhcnRudW1KIiAic3ltYm9saWMiKSAoInBhcnRudW1JIiAic3ltYm9saWMiKSAoInBhcnRudW1IIiAic3ltYm9saWMiKSAoInBhcnRudW1HIiAic3ltYm9saWMiKSAoInBhcnRudW1GIiAic3ltYm9saWMiKSAoInBhcnRudW1FIiAic3ltYm9saWMiKSAoInBhcnRudW1EIiAic3ltYm9saWMiKSAoInBhcnRudW1DIiAic3ltYm9saWMiKSAoInBhcnRudW1CIiAic3ltYm9saWMiKSAoInBhcnRudW1BIiAic3ltYm9saWMiKSkAKChfZGJpUEREQ3JlYXRlQ2RzTW9zIHRjQ2VsbFZpZXcgZ2F0ZVBvbHlMYXllciBtZXRhbExheWVyIGNvbnRhY3RMYXllciBkaWZmdXNpb25MYXllciBpbXBsYW50TGF5ZXJzIGdhdGVUZXJtaW5hbE5hbWUgc291cmNlVGVybWluYWxOYW1lIGRyYWluVGVybWluYWxOYW1lIHN0cmV0Y2hIYW5kbGVzIGNvbnRhY3RTcGFjaW5nTWV0aG9kIHBvbHlEaWZmdXNpb25FeHRlbnNpb24gcG9seUNvbnRhY3RTcGFjaW5nIHBvbHlEaWZmdXNpb25TcGFjaW5nIHBvbHlQb2x5U3BhY2luZyBwb2x5V2lkdGggbWV0YWxDb250YWN0RW5jbG9zdXJlIHhDb250YWN0U3BhY2luZyB5Q29udGFjdFNwYWNpbmcgeENvbnRhY3RMYXllclcgeUNvbnRhY3RMYXllckwgZGlmZnVzaW9uQ29udGFjdEVuY2xvc3VyZSBkaWZmdXNpb25Qb2x5RW5jbG9zdXJlIGRpZmZ1c2lvblNwYWNpbmcgZGlmZnVzaW9uV2lkdGggYWJ1dENsYXNzIHVzZXJGdW5jIGNsYXNzVmVyc2lvbiBmaW5nZXJXaWR0aCBmaW5nZXJMZW5ndGggbnVtRmluZ2VyIGxlZnRBYnV0bWVudFN0YXRlIHJpZ2h0QWJ1dG1lbnRTdGF0ZSBjb250YWN0TGlzdCBtZXRhbExpc3QgZ2F0ZUV4dFN0cmV0Y2ggZGlmZlN0cmV0Y2hMSCBkaWZmU3RyZXRjaFJIIGRpZmZTdHJldGNoTFRWIGRpZmZTdHJldGNoTEJWIGRpZmZTdHJldGNoUlRWIGRpZmZTdHJldGNoUkJWIHNvdXJjZUZpcnN0IG1ldGFsQ29udGFjdEVuY1RvcCBtZXRhbENvbnRhY3RFbmNCb3R0b20gbWV0YWxDb250YWN0RW5jSW5uZXIgbWV0YWxDb250YWN0RW5jT3V0ZXIgbWV0YWxDb250YWN0RW5jT3ZlcnJpZGUgdXNlckFyZ3MgZm9ybWFsVmVyc2lvbiBub3RjaEV4dFN0cmV0Y2ggZ2F0ZVBvc2l0aW9uIGRmbUNvbnN0ckdycCBpbnN0REZNVmFsIHNpbmdsZUNvbnRhY3QpKQAoZ2F0ZVBvbHlMYXllciBtZXRhbExheWVyIGNvbnRhY3RMYXllciBkaWZmdXNpb25MYXllciBpbXBsYW50TGF5ZXJzIGdhdGVUZXJtaW5hbE5hbWUgc291cmNlVGVybWluYWxOYW1lIGRyYWluVGVybWluYWxOYW1lIHN0cmV0Y2hIYW5kbGVzIGNvbnRhY3RTcGFjaW5nTWV0aG9kIHBvbHlEaWZmdXNpb25FeHRlbnNpb24gcG9seUNvbnRhY3RTcGFjaW5nIHBvbHlEaWZmdXNpb25TcGFjaW5nIHBvbHlQb2x5U3BhY2luZyBwb2x5V2lkdGggbWV0YWxDb250YWN0RW5jbG9zdXJlIHhDb250YWN0U3BhY2luZyB5Q29udGFjdFNwYWNpbmcgeENvbnRhY3RMYXllclcgeUNvbnRhY3RMYXllckwgZGlmZnVzaW9uQ29udGFjdEVuY2xvc3VyZSBkaWZmdXNpb25Qb2x5RW5jbG9zdXJlIGRpZmZ1c2lvblNwYWNpbmcgZGlmZnVzaW9uV2lkdGggYWJ1dENsYXNzIHVzZXJGdW5jIHVzZXJBcmdzIGNsYXNzVmVyc2lvbiBkZm1Db25zdHJHcnAgZmluZ2VyV2lkdGggZmluZ2VyTGVuZ3RoIG51bUZpbmdlciBsZWZ0QWJ1dG1lbnRTdGF0ZSByaWdodEFidXRtZW50U3RhdGUgY29udGFjdExpc3QgbWV0YWxMaXN0IGdhdGVFeHRTdHJldGNoIGRpZmZTdHJldGNoTEggZGlmZlN0cmV0Y2hSSCBkaWZmU3RyZXRjaExUViBkaWZmU3RyZXRjaExCViBkaWZmU3RyZXRjaFJUViBkaWZmU3RyZXRjaFJCViBzb3VyY2VGaXJzdCBtZXRhbENvbnRhY3RFbmNUb3AgbWV0YWxDb250YWN0RW5jQm90dG9tIG1ldGFsQ29udGFjdEVuY0lubmVyIG1ldGFsQ29udGFjdEVuY091dGVyIG1ldGFsQ29udGFjdEVuY092ZXJyaWRlIHVzZXJBcmdzIGZvcm1hbFZlcnNpb24gbm90Y2hFeHRTdHJldGNoIGdhdGVQb3NpdGlvbiBpbnN0REZNVmFsIHNpbmdsZUNvbnRhY3QpACgoZmluZ2VyV2lkdGggMi4wKSAoZmluZ2VyTGVuZ3RoIDEuMCkgKG51bUZpbmdlciAxKSAobGVmdEFidXRtZW50U3RhdGUgMSkgKHJpZ2h0QWJ1dG1lbnRTdGF0ZSAxKSAoY29udGFjdExpc3QgbmlsKSAobWV0YWxMaXN0IG5pbCkgKGdhdGVFeHRTdHJldGNoIG5pbCkgKGRpZmZTdHJldGNoTEggMC4wKSAoZGlmZlN0cmV0Y2hSSCAwLjApIChkaWZmU3RyZXRjaExUViAwLjApIChkaWZmU3RyZXRjaExCViAwLjApIChkaWZmU3RyZXRjaFJUViAwLjApIChkaWZmU3RyZXRjaFJCViAwLjApIChzb3VyY2VGaXJzdCAiVFJVRSIpIChtZXRhbENvbnRhY3RFbmNUb3AgMC4wKSAobWV0YWxDb250YWN0RW5jQm90dG9tIDAuMCkgKG1ldGFsQ29udGFjdEVuY0lubmVyIDAuMCkgKG1ldGFsQ29udGFjdEVuY091dGVyIDAuMCkgKG1ldGFsQ29udGFjdEVuY092ZXJyaWRlICIiKSAodXNlckFyZ3MgIiIpIChmb3JtYWxWZXJzaW9uIDApIChub3RjaEV4dFN0cmV0Y2ggbmlsKSAoZ2F0ZVBvc2l0aW9uIG5pbCkgKGluc3RERk1WYWwgbmlsKSAoc2luZ2xlQ29udGFjdCAwKSkAKChnYXRlUG9seUxheWVyICJoaWxpdGUiKSAobWV0YWxMYXllciAiaGlsaXRlIikgKGNvbnRhY3RMYXllciAiaGlsaXRlIikgKGRpZmZ1c2lvbkxheWVyICJoaWxpdGUiKSAoaW1wbGFudExheWVycyBuaWwpIChnYXRlVGVybWluYWxOYW1lICJHIikgKHNvdXJjZVRlcm1pbmFsTmFtZSAiUyIpIChkcmFpblRlcm1pbmFsTmFtZSAiRCIpIChzdHJldGNoSGFuZGxlcyBuaWwpIChjb250YWN0U3BhY2luZ01ldGhvZCAxKSAocG9seURpZmZ1c2lvbkV4dGVuc2lvbiAwLjApIChwb2x5Q29udGFjdFNwYWNpbmcgMC4wKSAocG9seURpZmZ1c2lvblNwYWNpbmcgMC4wKSAocG9seVBvbHlTcGFjaW5nIDAuMCkgKHBvbHlXaWR0aCAwLjApIChtZXRhbENvbnRhY3RFbmNsb3N1cmUgMC4wKSAoeENvbnRhY3RTcGFjaW5nIDAuMCkgKHlDb250YWN0U3BhY2luZyAwLjApICh4Q29udGFjdExheWVyVyAwLjApICh5Q29udGFjdExheWVyTCAwLjApIChkaWZmdXNpb25Db250YWN0RW5jbG9zdXJlIDAuMCkgKGRpZmZ1c2lvblBvbHlFbmNsb3N1cmUgMC4wKSAoZGlmZnVzaW9uU3BhY2luZyAwLjApIChkaWZmdXNpb25XaWR0aCAwLjApIChhYnV0Q2xhc3MgIm1vcyIpICh1c2VyRnVuYyAiIikgKHVzZXJBcmdzICIiKSAoY2xhc3NWZXJzaW9uIDEpIChkZm1Db25zdHJHcnAgbmlsKSkAKChfZGJpUEREQ3JlYXRlQ2RzVmlhIHRjQ2VsbFZpZXcgY3V0TGF5ZXIgbGF5ZXIxIGxheWVyMiByb3cgY29sdW1uIG9yaWdpbiBzdGFja2VkVmlhcyBjdXRMYXllclcgY3V0TGF5ZXJMIHhDdXRTcGFjaW5nIHlDdXRTcGFjaW5nIGxheWVyMVhFbmNsb3N1cmUgbGF5ZXIxWUVuY2xvc3VyZSBsYXllcjJYRW5jbG9zdXJlIGxheWVyMllFbmNsb3N1cmUgbGF5ZXIxRGlyZWN0aW9uIGxheWVyMkRpcmVjdGlvbikpAChjdXRMYXllciBsYXllcjEgbGF5ZXIyIHJvdyBjb2x1bW4gb3JpZ2luIHN0YWNrZWRWaWFzIGN1dExheWVyVyBjdXRMYXllckwgeEN1dFNwYWNpbmcgeUN1dFNwYWNpbmcgbGF5ZXIxWEVuY2xvc3VyZSBsYXllcjFZRW5jbG9zdXJlIGxheWVyMlhFbmNsb3N1cmUgbGF5ZXIyWUVuY2xvc3VyZSBsYXllcjFEaXJlY3Rpb24gbGF5ZXIyRGlyZWN0aW9uKQAoKHJvdyAxKSAoY29sdW1uIDEpIChvcmlnaW4gImNlbnRlckNlbnRlciIpIChzdGFja2VkVmlhcyBuaWwpIChjdXRMYXllclcgbmlsKSAoY3V0TGF5ZXJMIG5pbCkgKHhDdXRTcGFjaW5nIG5pbCkgKHlDdXRTcGFjaW5nIG5pbCkgKGxheWVyMVhFbmNsb3N1cmUgbmlsKSAobGF5ZXIxWUVuY2xvc3VyZSBuaWwpIChsYXllcjJYRW5jbG9zdXJlIG5pbCkgKGxheWVyMllFbmNsb3N1cmUgbmlsKSAobGF5ZXIxRGlyZWN0aW9uICIiKSAobGF5ZXIyRGlyZWN0aW9uICIiKSkAKChjdXRMYXllciAiaGlsaXRlIikgKGxheWVyMSAiaGlsaXRlIikgKGxheWVyMiAiaGlsaXRlIikpACgoY29udGFjdE5hbWVzID0gcGFyc2VTdHJpbmcoY29udGFjdE5hbWVzKSkgKGZOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAicjAiKSkgKGRiQ3JlYXRlVGVybSBmTmV0ICJyMCIgImlucHV0T3V0cHV0IikgKGxOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAicjEiKSkgKGRiQ3JlYXRlVGVybSBsTmV0ICJyMSIgImlucHV0T3V0cHV0IikgKHgxQ29vcmQgPSAwLjApICh4T2Zmc2V0ID0gMC4wKSAoeDFDb29yZDIgPSAwLjApICh5MUNvb3JkID0gMC4wKSB3aGVuKCgobGVuZ3RoKGNvbnRhY3ROYW1lcykgPiAyKSB8fCAobGVuZ3RoKGNvbnRhY3ROYW1lcykgPCAyKSkgZXJyb3Ioc3ByaW50ZihuaWwgImNvbnRhY3ROYW1lcyBhcmd1bWVudCBhY2NlcHRzIDIgY29udGFjdHM6ICVMIiBjb250YWN0TmFtZXMpKSkgd2hlbigoY29udGFjdE5hbWVzICE9ICIiKSAoY29udGFjdElkMSA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBjYXIoY29udGFjdE5hbWVzKSAic3ltYm9saWMiIG5pbCAicm4iKSkgKGNvbnRhY3RJZDIgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgY2Fkcihjb250YWN0TmFtZXMpICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoY29udGFjdElkMSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQvb3BlbiBgJXMnXG4iIGNhcihjb250YWN0TmFtZXMpKSkpIHVubGVzcyhjb250YWN0SWQyIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZC9vcGVuIGAlcydcbiIgY2Fkcihjb250YWN0TmFtZXMpKSkpIHVubGVzcygoY29udGFjdElkMX4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJgJXMnIGlzIG5vdCBhIHBjZWxsXG4iIGNhcihjb250YWN0TmFtZXMpKSkpIHVubGVzcygoY29udGFjdElkMn4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJgJXMnIGlzIG5vdCBhIHBjZWxsXG4iIGNhZHIoY29udGFjdE5hbWVzKSkpKSAocGFyYW1zMSA9IChjb250YWN0SWQxfj5wYXJhbWV0ZXJzKSkgKHBhcmFtczIgPSAoY29udGFjdElkMn4+cGFyYW1ldGVycykpIChjb250YWN0UGl0Y2gxID0gKHBhcmFtczF+PnlQaXRjaCkpIChjb250YWN0UGl0Y2gyID0gKHBhcmFtczJ+PnlQaXRjaCkpIChudW1Sb3dzMSA9IG1heChmaXgoKChydyAvIGNvbnRhY3RQaXRjaDEpICsgMWUtMDYpKSAxKSkgKGluc3QxID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkMSAiYzAiICh4MUNvb3JkOnkxQ29vcmQpICJNWSIgMSBsaXN0KGxpc3QoInJvdyIgImludCIgbnVtUm93czEpKSkpIChudW1Sb3dzMiA9IG1heChmaXgoKChydyAvIGNvbnRhY3RQaXRjaDIpICsgMWUtMDYpKSAxKSkgKGluc3QyID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkMiAiYzEiICh4MUNvb3JkOnkxQ29vcmQpICJNWSIgMSBsaXN0KGxpc3QoInJvdyIgImludCIgbnVtUm93czIpKSkpIHVubGVzcyhpbnN0MSBlcnJvcihzcHJpbnRmKG5pbCAiRmFpbGVkIHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgJXMnXG4iIGNhcihjb250YWN0TmFtZXMpKSkpIHVubGVzcyhpbnN0MiBlcnJvcihzcHJpbnRmKG5pbCAiRmFpbGVkIHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiBgJXMnXG4iIGNhZHIoY29udGFjdE5hbWVzKSkpKSAobWFzdGVyMSA9IChpbnN0MX4+bWFzdGVyKSkgKG1hc3RlcjIgPSAoaW5zdDJ+Pm1hc3RlcikpIHVubGVzcygobWFzdGVyMX4+Ym90TGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQgYm90TGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnXG4iIGNhcihjb250YWN0TmFtZXMpKSkpIHVubGVzcygobWFzdGVyMn4+Ym90TGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQgYm90TGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnXG4iIGNhZHIoY29udGFjdE5hbWVzKSkpKSB1bmxlc3MoKG1hc3RlcjF+PmNvbnRhY3RMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBjb250YWN0TGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnXG4iIGNhcihjb250YWN0TmFtZXMpKSkpIHVubGVzcygobWFzdGVyMn4+Y29udGFjdExheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGNvbnRhY3RMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcydcbiIgY2Fkcihjb250YWN0TmFtZXMpKSkpIHVubGVzcygoKG1hc3RlcjF+PnRvcExheWVyKSAmJiAobWFzdGVyMX4+dG9wTGF5ZXJQaW5CYm94KSkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgdG9wTGF5ZXIgYW5kL29yIHRvcExheWVyUGluQmJveCBpbiBgJXMnXG4iIGNhcihjb250YWN0TmFtZXMpKSkpIHVubGVzcygoKG1hc3RlcjJ+PnRvcExheWVyKSAmJiAobWFzdGVyMn4+dG9wTGF5ZXJQaW5CYm94KSkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgdG9wTGF5ZXIgYW5kL29yIHRvcExheWVyUGluQmJveCBpbiBgJXMnXG4iIGNhZHIoY29udGFjdE5hbWVzKSkpKSAoY29udGFjdFhPZmZzZXQxID0gMC4wKSBpZigoKHJ3IC0gKGNhZGFkcigobWFzdGVyMX4+Ym90TGF5ZXJCYm94KSkgLSBjYWRhcigobWFzdGVyMX4+Ym90TGF5ZXJCYm94KSkpKSA+IC0xZS0wNikgdGhlbiAoY29udGFjdFhPZmZzZXQxID0gY2FhcigobWFzdGVyMX4+Y29udGFjdExheWVyQmJveCkpKSBlbHNlIHdoZW4oKHBlcmNlbnRWYXJpYWJpbGl0eSA+IDFlLTA2KSBlcnJvcihzcHJpbnRmKG5pbCAicGVyY2VudFZhcmlhYmlsaXR5IG11c3QgYmUgMCB3aGVuIHJ3IGlzIGxlc3MgdGhhbiAlTFxuIiAoY2FkYWRyKChtYXN0ZXIxfj5ib3RMYXllckJib3gpKSAtIGNhZGFyKChtYXN0ZXIxfj5ib3RMYXllckJib3gpKSkpKSAocGVyY2VudFZhcmlhYmlsaXR5ID0gMCkpKSAoY29udGFjdFhPZmZzZXQyID0gMC4wKSBpZigoKHJ3IC0gKGNhZGFkcigobWFzdGVyMn4+Ym90TGF5ZXJCYm94KSkgLSBjYWRhcigobWFzdGVyMn4+Ym90TGF5ZXJCYm94KSkpKSA+IC0xZS0wNikgdGhlbiAoY29udGFjdFhPZmZzZXQyID0gY2FhcigobWFzdGVyMn4+Y29udGFjdExheWVyQmJveCkpKSBlbHNlIHdoZW4oKHBlcmNlbnRWYXJpYWJpbGl0eSA+IDFlLTA2KSBlcnJvcihzcHJpbnRmKG5pbCAicGVyY2VudFZhcmlhYmlsaXR5IG11c3QgYmUgMCB3aGVuIHJ3IGlzIGxlc3MgdGhhbiAlTFxuIiAoY2FkYWRyKChtYXN0ZXIyfj5ib3RMYXllckJib3gpKSAtIGNhZGFyKChtYXN0ZXIyfj5ib3RMYXllckJib3gpKSkpKSAocGVyY2VudFZhcmlhYmlsaXR5ID0gMCkpKSAoY29udGFjdFlPZmZzZXQxID0gKChydyAvIDIuMCkgLSAoKChjYWRhZHIoKG1hc3RlcjF+PmNvbnRhY3RMYXllckJib3gpKSAtIGNhZGFyKChtYXN0ZXIxfj5jb250YWN0TGF5ZXJCYm94KSkpIC8gMi4wKSArIChjYWRhcigobWFzdGVyMX4+Y29udGFjdExheWVyQmJveCkpIC0gY2FkYXIoKG1hc3RlcjF+PmJvdExheWVyQmJveCkpKSkpKSAoY29udGFjdFlPZmZzZXQyID0gKChydyAvIDIuMCkgLSAoKChjYWRhZHIoKG1hc3RlcjJ+PmNvbnRhY3RMYXllckJib3gpKSAtIGNhZGFyKChtYXN0ZXIyfj5jb250YWN0TGF5ZXJCYm94KSkpIC8gMi4wKSArIChjYWRhcigobWFzdGVyMn4+Y29udGFjdExheWVyQmJveCkpIC0gY2FkYXIoKG1hc3RlcjJ+PmJvdExheWVyQmJveCkpKSkpKSAoY29udGFjdFlPZmZzZXQxID0gKHJvdW5kKChjb250YWN0WU9mZnNldDEgLyByZXNpc3RvckxheWVyR3JpZCkpICogcmVzaXN0b3JMYXllckdyaWQpKSAoY29udGFjdFlPZmZzZXQyID0gKHJvdW5kKChjb250YWN0WU9mZnNldDIgLyByZXNpc3RvckxheWVyR3JpZCkpICogcmVzaXN0b3JMYXllckdyaWQpKSAoZGJNb3ZlRmlnIGluc3QxIHRjQ2VsbFZpZXcgbGlzdCgoY29udGFjdFhPZmZzZXQxOmNvbnRhY3RZT2Zmc2V0MSkgIlIwIikpIChkYk1vdmVGaWcgaW5zdDIgdGNDZWxsVmlldyBsaXN0KChjb250YWN0WE9mZnNldDI6Y29udGFjdFlPZmZzZXQyKSAiUjAiKSkgKGJCb3gxID0gbGlzdChsaXN0KChjb250YWN0WE9mZnNldDEgLSBjYWFyKChtYXN0ZXIxfj50b3BMYXllclBpbkJib3gpKSkgKGNvbnRhY3RZT2Zmc2V0MSArIGNhZGFyKChtYXN0ZXIxfj50b3BMYXllclBpbkJib3gpKSkpIGxpc3QoKGNvbnRhY3RYT2Zmc2V0MSAtIGNhYWRyKChtYXN0ZXIxfj50b3BMYXllclBpbkJib3gpKSkgKGNvbnRhY3RZT2Zmc2V0MSArIGNhZGFkcigobWFzdGVyMX4+dG9wTGF5ZXJQaW5CYm94KSkpKSkpIChiQm94MiA9IGxpc3QobGlzdCgoY29udGFjdFhPZmZzZXQyIC0gY2FhcigobWFzdGVyMn4+dG9wTGF5ZXJQaW5CYm94KSkpIChjb250YWN0WU9mZnNldDIgKyBjYWRhcigobWFzdGVyMn4+dG9wTGF5ZXJQaW5CYm94KSkpKSBsaXN0KChjb250YWN0WE9mZnNldDIgLSBjYWFkcigobWFzdGVyMn4+dG9wTGF5ZXJQaW5CYm94KSkpIChjb250YWN0WU9mZnNldDIgKyBjYWRhZHIoKG1hc3RlcjJ+PnRvcExheWVyUGluQmJveCkpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyAobWFzdGVyMX4+dG9wTGF5ZXIpIGJCb3gxKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgKG1hc3RlcjJ+PnRvcExheWVyKSBiQm94MikpIChkYkNyZWF0ZVBpbiBmTmV0IGRiaWQpICh4T2Zmc2V0ID0gKGNhYWRyKChtYXN0ZXIxfj5ib3RMYXllckJib3gpKSAtIGNvbnRhY3RYT2Zmc2V0MSkpICh4MUNvb3JkMiA9ICh4MUNvb3JkIC0geE9mZnNldCkpIHdoZW4od2VsbExheWVyICh4MVdlbGxDb29yZCA9ICh4MUNvb3JkMiAtIHdlbGxFbmMpKSAoeTFXZWxsQ29vcmQgPSAoLSB3ZWxsRW5jKSkgd2hlbigoY29udGFjdFlPZmZzZXQxIDwgMWUtMDYpICh5MVdlbGxDb29yZCA9IChjb250YWN0WU9mZnNldDEgLSB3ZWxsRW5jKSkpKSB3aGVuKGltcGxhbnRMYXllciAoaW1wT2Zmc2V0ID0gKGltcFNwYWNlQ29udGFjdCAtIChjYWFyKChtYXN0ZXIxfj5jb250YWN0TGF5ZXJCYm94KSkgLSBjb250YWN0WE9mZnNldDEpKSkgd2hlbigocncgPCAoY2FkYWRyKChtYXN0ZXIxfj5ib3RMYXllckJib3gpKSAtIGNhZGFyKChtYXN0ZXIxfj5ib3RMYXllckJib3gpKSkpIChpbXBPZmZzZXQgPSAoaW1wU3BhY2VSZXNpc3RvckxheWVyICsgY2FhcigobWFzdGVyMX4+Ym90TGF5ZXJCYm94KSkpKSkgKHgxSW1wQ29vcmQgPSAoeDFDb29yZDIgLSBpbXBFbmMpKSAoeTFJbXBDb29yZCA9ICgtIGltcEVuYykpICh4MUNvb3JkID0gKHgxQ29vcmQgKyBpbXBPZmZzZXQpKSAoeE9mZnNldCA9ICh4T2Zmc2V0ICsgaW1wT2Zmc2V0KSkpIHdoZW4oaW1wbGFudDJMYXllciAoaW1wMk9mZnNldCA9IChpbXAyU3BhY2VDb250YWN0IC0gKGNhYXIoKG1hc3RlcjF+PmNvbnRhY3RMYXllckJib3gpKSAtIGNvbnRhY3RYT2Zmc2V0MSkpKSB3aGVuKChydyA8IChjYWRhZHIoKG1hc3RlcjF+PmJvdExheWVyQmJveCkpIC0gY2FkYXIoKG1hc3RlcjF+PmJvdExheWVyQmJveCkpKSkgKGltcDJPZmZzZXQgPSAoaW1wMlNwYWNlUmVzaXN0b3JMYXllciArIGNhYXIoKG1hc3RlcjF+PmJvdExheWVyQmJveCkpKSkpICh4MUltcDJDb29yZCA9ICh4MUNvb3JkMiAtIGltcDJFbmMpKSAoeTFJbXAyQ29vcmQgPSAoLSBpbXAyRW5jKSkgKHgxQ29vcmQgPSAoeDFDb29yZCArIGltcDJPZmZzZXQpKSAoeE9mZnNldCA9ICh4T2Zmc2V0ICsgaW1wMk9mZnNldCkpKSkgKHgyQ29vcmQgPSAoeDFDb29yZCArIHJsICsgeE9mZnNldCkpICh4MkNvb3JkMiA9ICh4MUNvb3JkICsgcmwpKSB3aGVuKChwZXJjZW50VmFyaWFiaWxpdHkgPiAxZS0wNikgKEluY0xlbmd0aCA9ICgocmwgKiBwZXJjZW50VmFyaWFiaWxpdHkpIC8gMTAwLjApKSAoSW5jTGVuZ3RoID0gKHJvdW5kKChJbmNMZW5ndGggLyByZXNpc3RvckxheWVyR3JpZCkpICogcmVzaXN0b3JMYXllckdyaWQpKSAoeDJDb29yZCA9ICh4T2Zmc2V0ICsgeDFDb29yZCArIHJsICsgSW5jTGVuZ3RoKSkgKHgyQ29vcmQyID0gKHgxQ29vcmQgKyBybCArIG1pbihkZWx0YUxlbmd0aCBJbmNMZW5ndGgpKSkpIChjZW50ZXJYID0gKHgxQ29vcmQgKyAoKHgyQ29vcmQyIC0geDFDb29yZCkgLyAyLjApKSkgKGJCb3ggPSBsaXN0KGxpc3QoKGNlbnRlclggLSAocmVzQ3V0V2lkdGggLyAyLjApKSB5MUNvb3JkKSBsaXN0KChjZW50ZXJYICsgKHJlc0N1dFdpZHRoIC8gMi4wKSkgKHkxQ29vcmQgKyBydykpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc0N1dExheWVyIGJCb3gpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByZXNpc3RvckxheWVyIGxpc3QoKHgxQ29vcmQyOnkxQ29vcmQpICh4MkNvb3JkOih5MUNvb3JkICsgcncpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByZXNJZExheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKHgyQ29vcmQyOih5MUNvb3JkICsgcncpKSkpIHdoZW4oKGNvbnRhY3ROYW1lcyA9PSAiIikgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmVzaXN0b3JMYXllciBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICgoeDFDb29yZCArIHJlc2lzdG9yTGF5ZXJHcmlkKTooeTFDb29yZCArIHJ3KSkpKSkgKGRiQ3JlYXRlUGluIGZOZXQgZGJpZCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmVzaXN0b3JMYXllciBsaXN0KCgoeDJDb29yZDIgLSByZXNpc3RvckxheWVyR3JpZCk6eTFDb29yZCkgKHgyQ29vcmQyOih5MUNvb3JkICsgcncpKSkpKSAoZGJDcmVhdGVQaW4gbE5ldCBkYmlkKSB3aGVuKHdlbGxMYXllciAoeDFXZWxsQ29vcmQgPSAoeDFDb29yZCAtIHdlbGxFbmMpKSAoeTFXZWxsQ29vcmQgPSAoeTFDb29yZCAtIHdlbGxFbmMpKSAoeDJXZWxsQ29vcmQgPSBtYXgoKHgxV2VsbENvb3JkICsgd2VsbFdpZHRoKSAoeDJDb29yZCArIHdlbGxFbmMpKSkgKHkyV2VsbENvb3JkID0gbWF4KCh5MVdlbGxDb29yZCArIHdlbGxXaWR0aCkgKHkxQ29vcmQgKyBydyArIHdlbGxFbmMpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KCh4MVdlbGxDb29yZDp5MVdlbGxDb29yZCkgKHgyV2VsbENvb3JkOnkyV2VsbENvb3JkKSkpKSB3aGVuKGltcGxhbnRMYXllciAoeDFJbXBDb29yZCA9ICh4MUNvb3JkIC0gaW1wRW5jKSkgKHkxSW1wQ29vcmQgPSAoeTFDb29yZCAtIGltcEVuYykpICh4MkltcENvb3JkID0gbWF4KCh4MkNvb3JkMiArIGltcEVuYykgKHgxSW1wQ29vcmQgKyBpbXBXaWR0aCkpKSAoeTJJbXBDb29yZCA9IG1heCgoeTFDb29yZCArIHJ3ICsgaW1wRW5jKSAoeTFJbXBDb29yZCArIGltcFdpZHRoKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBpbXBsYW50TGF5ZXIgbGlzdCgoeDFJbXBDb29yZDp5MUltcENvb3JkKSAoeDJJbXBDb29yZDp5MkltcENvb3JkKSkpKSB3aGVuKGltcGxhbnQyTGF5ZXIgKHgySW1wMkNvb3JkID0gbWF4KCh4MkNvb3JkMiArIGltcDJFbmMpICh4MUltcDJDb29yZCArIGltcDJXaWR0aCkpKSAoeTJJbXAyQ29vcmQgPSBtYXgoKHkxQ29vcmQgKyBydyArIGltcDJFbmMpICh5MUltcDJDb29yZCArIGltcDJXaWR0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaW1wbGFudDJMYXllciBsaXN0KCh4MUltcDJDb29yZDp5MUltcDJDb29yZCkgKHgySW1wMkNvb3JkOnkySW1wMkNvb3JkKSkpKSkgd2hlbigoY29udGFjdE5hbWVzICE9ICIiKSAoeDFDb29yZCA9ICh4MkNvb3JkMiArIGNhYXIoKG1hc3RlcjF+PmJvdExheWVyQmJveCkpKSkgd2hlbihpbXBsYW50TGF5ZXIgKHgySW1wQ29vcmQgPSBtYXgoKHgyQ29vcmQgKyBpbXBFbmMpICh4MUltcENvb3JkICsgaW1wV2lkdGgpKSkgKHkySW1wQ29vcmQgPSBtYXgoKHkxQ29vcmQgKyBydyArIGltcEVuYykgKHkxSW1wQ29vcmQgKyBpbXBXaWR0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaW1wbGFudExheWVyIGxpc3QoKHgxSW1wQ29vcmQ6eTFJbXBDb29yZCkgKHgySW1wQ29vcmQ6eTJJbXBDb29yZCkpKSAoeDFDb29yZCA9ICh4MUNvb3JkICsgaW1wT2Zmc2V0KSkpIHdoZW4oaW1wbGFudDJMYXllciAoeDJJbXAyQ29vcmQgPSBtYXgoKHgyQ29vcmQgKyBpbXAyRW5jKSAoeDFJbXAyQ29vcmQgKyBpbXAyV2lkdGgpKSkgKHkySW1wMkNvb3JkID0gbWF4KCh5MUNvb3JkICsgcncgKyBpbXAyRW5jKSAoeTFJbXAyQ29vcmQgKyBpbXAyV2lkdGgpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGltcGxhbnQyTGF5ZXIgbGlzdCgoeDFJbXAyQ29vcmQ6eTFJbXAyQ29vcmQpICh4MkltcDJDb29yZDp5MkltcDJDb29yZCkpKSkgKGNvbnRhY3RYT2Zmc2V0MSA9ICgtIGNvbnRhY3RYT2Zmc2V0MSkpIChjb250YWN0WE9mZnNldDIgPSAoLSBjb250YWN0WE9mZnNldDIpKSAoaW5zdDEgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBjb250YWN0SWQxICJjMiIgKCh4MUNvb3JkICsgY29udGFjdFhPZmZzZXQxKTpjb250YWN0WU9mZnNldDEpICJSMCIgMSBsaXN0KGxpc3QoInJvdyIgImludCIgbnVtUm93czEpKSkpIChpbnN0MiA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGNvbnRhY3RJZDIgImMzIiAoKHgxQ29vcmQgKyBjb250YWN0WE9mZnNldDIpOmNvbnRhY3RZT2Zmc2V0MikgIlIwIiAxIGxpc3QobGlzdCgicm93IiAiaW50IiBudW1Sb3dzMikpKSkgdW5sZXNzKGluc3QxIGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGAlcydcbiIgY2FyKGNvbnRhY3ROYW1lcykpKSkgdW5sZXNzKGluc3QyIGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGAlcydcbiIgY2Fkcihjb250YWN0TmFtZXMpKSkpIChtYXN0ZXIxID0gKGluc3Qxfj5tYXN0ZXIpKSAobWFzdGVyMiA9IChpbnN0Mn4+bWFzdGVyKSkgKGJCb3gxID0gbGlzdChsaXN0KCh4MUNvb3JkICsgY2FhcigobWFzdGVyMX4+dG9wTGF5ZXJQaW5CYm94KSkgKyBjb250YWN0WE9mZnNldDEpIChjb250YWN0WU9mZnNldDEgKyBjYWRhcigobWFzdGVyMX4+dG9wTGF5ZXJQaW5CYm94KSkpKSBsaXN0KCh4MUNvb3JkICsgY2FhZHIoKG1hc3RlcjF+PnRvcExheWVyUGluQmJveCkpICsgY29udGFjdFhPZmZzZXQxKSAoY29udGFjdFlPZmZzZXQxICsgY2FkYWRyKChtYXN0ZXIxfj50b3BMYXllclBpbkJib3gpKSkpKSkgKGJCb3gyID0gbGlzdChsaXN0KCh4MUNvb3JkICsgY2FhcigobWFzdGVyMn4+dG9wTGF5ZXJQaW5CYm94KSkgKyBjb250YWN0WE9mZnNldDIpIChjb250YWN0WU9mZnNldDIgKyBjYWRhcigobWFzdGVyMn4+dG9wTGF5ZXJQaW5CYm94KSkpKSBsaXN0KCh4MUNvb3JkICsgY2FhZHIoKG1hc3RlcjJ+PnRvcExheWVyUGluQmJveCkpICsgY29udGFjdFhPZmZzZXQyKSAoY29udGFjdFlPZmZzZXQyICsgY2FkYWRyKChtYXN0ZXIyfj50b3BMYXllclBpbkJib3gpKSkpKSkgd2hlbigoKHBlcmNlbnRWYXJpYWJpbGl0eSA+IDFlLTA2KSAmJiAoKEluY0xlbmd0aCAtIGRlbHRhTGVuZ3RoKSA+IDFlLTA2KSkgKGJCb3gxID0gbGlzdChsaXN0KCh4MUNvb3JkICsgY2FhcigobWFzdGVyMX4+dG9wTGF5ZXJQaW5CYm94KSkgKyBjb250YWN0WE9mZnNldDEpIChjb250YWN0WU9mZnNldDEgKyBjYWRhcigobWFzdGVyMX4+dG9wTGF5ZXJQaW5CYm94KSkpKSBsaXN0KCh4MUNvb3JkICsgY2FhZHIoKG1hc3RlcjF+PnRvcExheWVyUGluQmJveCkpICsgY29udGFjdFhPZmZzZXQxICsgKEluY0xlbmd0aCAtIGRlbHRhTGVuZ3RoKSkgKGNvbnRhY3RZT2Zmc2V0MSArIGNhZGFkcigobWFzdGVyMX4+dG9wTGF5ZXJQaW5CYm94KSkpKSkpKSB3aGVuKCgocGVyY2VudFZhcmlhYmlsaXR5ID4gMWUtMDYpICYmICgoSW5jTGVuZ3RoIC0gZGVsdGFMZW5ndGgpID4gMWUtMDYpKSAoYkJveDIgPSBsaXN0KGxpc3QoKHgxQ29vcmQgKyBjYWFyKChtYXN0ZXIyfj50b3BMYXllclBpbkJib3gpKSArIGNvbnRhY3RYT2Zmc2V0MikgKGNvbnRhY3RZT2Zmc2V0MiArIGNhZGFyKChtYXN0ZXIyfj50b3BMYXllclBpbkJib3gpKSkpIGxpc3QoKHgxQ29vcmQgKyBjYWFkcigobWFzdGVyMn4+dG9wTGF5ZXJQaW5CYm94KSkgKyBjb250YWN0WE9mZnNldDIgKyAoSW5jTGVuZ3RoIC0gZGVsdGFMZW5ndGgpKSAoY29udGFjdFlPZmZzZXQyICsgY2FkYWRyKChtYXN0ZXIyfj50b3BMYXllclBpbkJib3gpKSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IChtYXN0ZXIxfj50b3BMYXllcikgYkJveDEpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyAobWFzdGVyMn4+dG9wTGF5ZXIpIGJCb3gyKSkgKGRiQ3JlYXRlUGluIGxOZXQgZGJpZCkgd2hlbih3ZWxsTGF5ZXIgKHgyV2VsbENvb3JkID0gbWF4KCh4MVdlbGxDb29yZCArIHdlbGxXaWR0aCkgKHgyQ29vcmQgKyB3ZWxsRW5jKSkpICh5MldlbGxDb29yZCA9IG1heCgoeTFDb29yZCArIHJ3ICsgd2VsbEVuYykgKGNvbnRhY3RZT2Zmc2V0MSArIGNhZGFkcigobWFzdGVyMX4+Ym90TGF5ZXJCYm94KSkgKyB3ZWxsRW5jKSAoeTFXZWxsQ29vcmQgKyB3ZWxsV2lkdGgpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KCh4MVdlbGxDb29yZDp5MVdlbGxDb29yZCkgKHgyV2VsbENvb3JkOnkyV2VsbENvb3JkKSkpKSAoZGJDbG9zZSBjb250YWN0SWQxKSAoZGJDbG9zZSBjb250YWN0SWQyKSkpAChyZXNpc3RvckxheWVyIHdlbGxMYXllciBpbXBsYW50TGF5ZXIgaW1wbGFudDJMYXllciB3ZWxsRW5jIGltcEVuYyBpbXBXaWR0aCBpbXAyRW5jIGltcDJXaWR0aCB3ZWxsV2lkdGggaW1wU3BhY2VDb250YWN0IGltcFNwYWNlUmVzaXN0b3JMYXllciBpbXAyU3BhY2VDb250YWN0IGltcDJTcGFjZVJlc2lzdG9yTGF5ZXIgcmVzSWRMYXllciByZXNDdXRMYXllciByZXNDdXRXaWR0aCByZXNpc3RvckxheWVyR3JpZCBydyBybCBwZXJjZW50VmFyaWFiaWxpdHkgZGVsdGFMZW5ndGggY29udGFjdE5hbWVzIGZOZXQgbE5ldCB4MUNvb3JkIHhPZmZzZXQgeDFDb29yZDIgeTFDb29yZCBjb250YWN0SWQxIGNvbnRhY3RJZDIgcGFyYW1zMSBwYXJhbXMyIGNvbnRhY3RQaXRjaDEgY29udGFjdFBpdGNoMiBudW1Sb3dzMSBpbnN0MSBudW1Sb3dzMiBpbnN0MiBtYXN0ZXIxIG1hc3RlcjIgY29udGFjdFhPZmZzZXQxIGNvbnRhY3RYT2Zmc2V0MiBjb250YWN0WU9mZnNldDEgY29udGFjdFlPZmZzZXQyIGJCb3gxIGJCb3gyIGRiaWQgeDFXZWxsQ29vcmQgeTFXZWxsQ29vcmQgaW1wT2Zmc2V0IHgxSW1wQ29vcmQgeTFJbXBDb29yZCBpbXAyT2Zmc2V0IHgxSW1wMkNvb3JkIHkxSW1wMkNvb3JkIHgyQ29vcmQgeDJDb29yZDIgSW5jTGVuZ3RoIGNlbnRlclggYkJveCB4MldlbGxDb29yZCB5MldlbGxDb29yZCB4MkltcENvb3JkIHkySW1wQ29vcmQgeDJJbXAyQ29vcmQgeTJJbXAyQ29vcmQpACgocmwgMC4wKSAocGVyY2VudFZhcmlhYmlsaXR5IDApIChkZWx0YUxlbmd0aCAwLjApIChjb250YWN0TmFtZXMgIiIpKQAoKHJlc2lzdG9yTGF5ZXIgInRhcCIpICh3ZWxsTGF5ZXIgbmlsKSAoaW1wbGFudExheWVyIG5pbCkgKGltcGxhbnQyTGF5ZXIgbmlsKSAod2VsbEVuYyAwLjApIChpbXBFbmMgMC4wKSAoaW1wV2lkdGggMC4wKSAoaW1wMkVuYyAwLjApIChpbXAyV2lkdGggMC4wKSAod2VsbFdpZHRoIDAuMCkgKGltcFNwYWNlQ29udGFjdCAwLjApIChpbXBTcGFjZVJlc2lzdG9yTGF5ZXIgMC4wKSAoaW1wMlNwYWNlQ29udGFjdCAwLjApIChpbXAyU3BhY2VSZXNpc3RvckxheWVyIDAuMCkgKHJlc0lkTGF5ZXIgbGlzdCgicmVzIiAiZHJhd2luZyIpKSAocmVzQ3V0TGF5ZXIgbGlzdCgicmVzIiAiY3V0IikpIChyZXNDdXRXaWR0aCAwLjApIChyZXNpc3RvckxheWVyR3JpZCAwLjApIChydyAwLjApKQAoKHRvcE1ldE1pblNwYWNlID0gbnRoKDAgbGFzdChtZXRTcGFjaW5ncykpKSAobGVuZ3RoID0gKCh0b3BNZXRNaW5TcGFjZSAqIDIpICsgNDguMCkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsaXN0KCJhcmVhaWQiICJtb2R1bGVDdXQiKSBsaXN0KCgwLjA6MC4wKSAobGVuZ3RoOmxlbmd0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdCgiYXJlYWlkIiAiZnJhbWUiKSBsaXN0KCgwLjA6MC4wKSAobGVuZ3RoOmxlbmd0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdCgiY3BkbSIgIm1hc2siKSBsaXN0KCgwLjA6MC4wKSAobGVuZ3RoOmxlbmd0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdCgiY3AxbSIgIndhZmZsZURyb3AiKSBsaXN0KCgwLjA6MC4wKSAobGVuZ3RoOmxlbmd0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdCgicGFkIiAiZHJhd2luZyIpIGxpc3QoKDAuMDowLjApIChsZW5ndGg6bGVuZ3RoKSkpIChpID0gMCkgZm9yZWFjaChtZXRMYXllciBtZXRMaXN0IChtaW5FbmNsID0gbnRoKGkgbWV0U3BhY2luZ3MpKSAobWV0TGF5ZXJOdW0gPSBhdG9pKG50aCgwIHBhcnNlU3RyaW5nKG1ldExheWVyICJtZXQiKSkpKSAoY21tTGF5ZXJOdW0gPSAobWV0TGF5ZXJOdW0gLSAxKSkgc3ByaW50ZihjbW1MYXllck51bSAiJWQiIGNtbUxheWVyTnVtKSBpZigoYXRvaShjbW1MYXllck51bSkgPiAwKSB0aGVuIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsaXN0KHN0cmNhdCgiY21tIiBjbW1MYXllck51bSkgIndhZmZsZURyb3AiKSBsaXN0KCgwLjA6MC4wKSAobGVuZ3RoOmxlbmd0aCkpKSkgaWYoKG9yaWVudGF0aW9uID09ICJ4IikgdGhlbiAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdChtZXRMYXllciAiZHJhd2luZyIpIGxpc3QobGlzdCgoKGxlbmd0aCAvIDIpIC0gNSkgbWluRW5jbCkgbGlzdCgoKGxlbmd0aCAvIDIpICsgNSkgKGxlbmd0aCAtIG1pbkVuY2wpKSkpKSBpZigob3JpZW50YXRpb24gPT0gInkiKSB0aGVuIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsaXN0KG1ldExheWVyICJkcmF3aW5nIikgbGlzdChsaXN0KG1pbkVuY2wgKChsZW5ndGggLyAyKSAtIDUpKSBsaXN0KChsZW5ndGggLSBtaW5FbmNsKSAoKGxlbmd0aCAvIDIpICsgNSkpKSkpIChpID0gKGkgKyAxKSkpKQAobWV0TGlzdCBtZXRTcGFjaW5ncyBvcmllbnRhdGlvbiB0b3BNZXRNaW5TcGFjZSBsZW5ndGggaSBtZXRMYXllciBtaW5FbmNsIG1ldExheWVyTnVtIGNtbUxheWVyTnVtKQAoKG9yaWVudGF0aW9uIG5pbCkpACgobWV0TGlzdCBuaWwpIChtZXRTcGFjaW5ncyBuaWwpKQAoaWYoKChza2lwVG9wID09ICJGQUxTRSIpIHx8ICFza2lwVG9wKSB0aGVuIChkcmF3VG9wID0gdCkgZWxzZSAoZHJhd1RvcCA9IG5pbCkpIGlmKCgoc2tpcEJvdHRvbSA9PSAiRkFMU0UiKSB8fCAhc2tpcEJvdHRvbSkgdGhlbiAoZHJhd0JvdHRvbSA9IHQpIGVsc2UgKGRyYXdCb3R0b20gPSBuaWwpKSBpZigoKHNraXBMZWZ0ID09ICJGQUxTRSIpIHx8ICFza2lwTGVmdCkgdGhlbiAoZHJhd0xlZnQgPSB0KSBlbHNlIChkcmF3TGVmdCA9IG5pbCkpIGlmKCgoc2tpcFJpZ2h0ID09ICJGQUxTRSIpIHx8ICFza2lwUmlnaHQpIHRoZW4gKGRyYXdSaWdodCA9IHQpIGVsc2UgKGRyYXdSaWdodCA9IG5pbCkpIHdoZW4od2lkdGhFcUxlbmd0aCAocml2ZXRMZW5ndGggPSByaXZldFdpZHRoKSkgKGNvcm5lckV4Y2x1ZGVXaWR0aCA9IG1heCgwLjAgbGxCZXZlbExlbmd0aCB1bEJldmVsTGVuZ3RoIGxyQmV2ZWxMZW5ndGggdXJCZXZlbExlbmd0aCkpIChyaXZldFBpdGNoWSA9IChyaXZldFdpZHRoICsgcml2ZXRTcGFjZSkpIChyaXZldFBpdGNoWCA9IChyaXZldExlbmd0aCArIHJpdmV0U3BhY2UpKSB3aGVuKHJpdmV0MkxheWVyIChyaXZldDJQaXRjaEwgPSAocml2ZXQyTGVuZ3RoICsgcml2ZXQyU3BhY2UpKSAocml2ZXQyQWN0aXZlTCA9IChyaXZldExlbmd0aCAtICgyICogcml2ZXQyRW5jQnlSaXZldDFMKSkpIChudW1Db2wyID0gZml4KCgoKHJpdmV0MkFjdGl2ZUwgKyByaXZldDJTcGFjZSkgLyByaXZldDJQaXRjaEwpICsgMWUtMDYpKSkgKHJpdmV0MVJlYWxMID0gKChudW1Db2wyICogcml2ZXQyUGl0Y2hMKSAtIHJpdmV0MlNwYWNlKSkgKHJpdmV0Mk9mZnNldEwgPSAoKHJpdmV0MkFjdGl2ZUwgLSByaXZldDFSZWFsTCkgLyAyKSkgKHJpdmV0Mk9mZnNldEwgPSAoZml4KCgocml2ZXQyT2Zmc2V0TCAvIGdyaWQpICsgMWUtMDYpKSAqIGdyaWQpKSkgKG51bUNvbHMgPSBmaXgoKCgocmluZ1dpZHRoICsgcml2ZXRTcGFjZSkgLyByaXZldFBpdGNoWSkgKyAxZS0wNSkpKSAocml2ZXRXaWR0aEdyaWRzID0gZml4KCgwLjk5OSArIChyaXZldFdpZHRoIC8gZ3JpZCkpKSkgKHJpdmV0U3BhY2VHcmlkcyA9IGZpeCgoMC45OTkgKyAocml2ZXRTcGFjZSAvIGdyaWQpKSkpIGNvbmQoKChjb3JuZXJFeGNsdWRlV2lkdGggPCAocml2ZXRTcGFjZSAvIDIuMCkpICh4V29ya2luZ1dpZHRoID0gKGwgLSByaXZldFNwYWNlKSkgd2hlbihvZGRwKHJpdmV0U3BhY2VHcmlkcykgKHhXb3JraW5nV2lkdGggPSAoeFdvcmtpbmdXaWR0aCAtIGdyaWQpKSkpICh0ICh4V29ya2luZ1dpZHRoID0gKGwgLSAoMiAqIGNvcm5lckV4Y2x1ZGVXaWR0aCkpKSkpICh4V29ya2luZ0dyaWRzID0gZml4KCgwLjk5OSArICh4V29ya2luZ1dpZHRoIC8gZ3JpZCkpKSkgKG51bVJpdmV0cyA9IGZpeCgoMWUtMDUgKyAoKHhXb3JraW5nV2lkdGggKyByaXZldFNwYWNlKSAvIChyaXZldExlbmd0aCArIHJpdmV0U3BhY2UpKSkpKSAoZGVsdGFXaWR0aCA9ICh4V29ya2luZ1dpZHRoIC0gKChudW1SaXZldHMgKiByaXZldExlbmd0aCkgKyAoKG51bVJpdmV0cyAtIDEpICogcml2ZXRTcGFjZSkpKSkgKGNlbnRlclNwYWNlID0gcml2ZXRTcGFjZSkgd2hlbihldmVucChudW1SaXZldHMpIGNvbmQoKGV2ZW5wKHhXb3JraW5nR3JpZHMpIHdoZW4ob2RkcChyaXZldFNwYWNlR3JpZHMpIGNvbmQoKChkZWx0YVdpZHRoID49IGdyaWQpIChjZW50ZXJTcGFjZSA9IChjZW50ZXJTcGFjZSArIGdyaWQpKSkgKHQgKG51bVJpdmV0cyA9IChudW1SaXZldHMgLSAxKSkpKSkpICh0IHdoZW4oZXZlbnAocml2ZXRTcGFjZUdyaWRzKSBjb25kKCgoZGVsdGFXaWR0aCA+PSBncmlkKSAoY2VudGVyU3BhY2UgPSAoY2VudGVyU3BhY2UgKyBncmlkKSkpICh0IChudW1SaXZldHMgPSAobnVtUml2ZXRzIC0gMSkpKSkpKSkpIHdoZW4ob2RkcChudW1SaXZldHMpIGNvbmQoKGV2ZW5wKHhXb3JraW5nR3JpZHMpIHdoZW4ob2RkcChyaXZldFdpZHRoR3JpZHMpIChudW1SaXZldHMgPSAobnVtUml2ZXRzIC0gMSkpIHdoZW4ob2RkcChyaXZldFNwYWNlR3JpZHMpIChjZW50ZXJTcGFjZSA9IChjZW50ZXJTcGFjZSArIGdyaWQpKSkpKSAodCB3aGVuKGV2ZW5wKHJpdmV0V2lkdGhHcmlkcykgKG51bVJpdmV0cyA9IChudW1SaXZldHMgLSAxKSkgd2hlbihldmVucChyaXZldFNwYWNlR3JpZHMpIChjZW50ZXJTcGFjZSA9IChjZW50ZXJTcGFjZSArIGdyaWQpKSkpKSkpICh4T3JpZ2luID0gKCh4T2Zmc2V0ICsgKGwgLyAyLjApKSAtICgoKG51bVJpdmV0cyAqIHJpdmV0TGVuZ3RoKSArICgobnVtUml2ZXRzIC0gMikgKiByaXZldFNwYWNlKSArIGNlbnRlclNwYWNlKSAvIDIuMCkpKSB3aGVuKCgobnVtUml2ZXRzID09IDApIHx8IChudW1Db2xzID09IDApKSBlcnJvcihzcHJpbnRmKG5pbCAicml2ZXJSaW5nTWlycm9yQ2xhc3M6IG51bWJlciBvZiB2aWFDb25zIGxlc3MgdGhhbiB6ZXJvIikpKSB3aGVuKChyaXZldDJMYXllciAmJiAobnVtQ29sMiA9PSAwKSkgZXJyb3Ioc3ByaW50ZihuaWwgInJpdmVyUmluZ01pcnJvckNsYXNzOiBudW1iZXIgb2YgdmlhQ29ucyBsZXNzIHRoYW4gemVybyIpKSkgZm9yKHJvdyAxIG51bVJpdmV0cyAoeU9yaWdpbkJvdCA9IHlPZmZzZXQpICh5T3JpZ2luVG9wID0gKHlPZmZzZXQgKyB3KSkgZm9yKGNvbCAxIG51bUNvbHMgd2hlbihkcmF3Qm90dG9tIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByaXZldExheWVyIGxpc3QoKHhPcmlnaW46eU9yaWdpbkJvdCkgKCh4T3JpZ2luICsgcml2ZXRMZW5ndGgpOih5T3JpZ2luQm90ICsgcml2ZXRXaWR0aCkpKSkpIHdoZW4oZHJhd1RvcCAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcml2ZXRMYXllciBsaXN0KCh4T3JpZ2luOnlPcmlnaW5Ub3ApICgoeE9yaWdpbiArIHJpdmV0TGVuZ3RoKTooeU9yaWdpblRvcCAtIHJpdmV0V2lkdGgpKSkpKSB3aGVuKHJpdmV0MkxheWVyICh5T3JpZ2luQm90MiA9ICh5T3JpZ2luQm90ICsgcml2ZXQyRW5jQnlSaXZldDFXKSkgKHlPcmlnaW5Ub3AyID0gKHlPcmlnaW5Ub3AgLSByaXZldDJFbmNCeVJpdmV0MVcpKSAoeE9yaWdpbjIgPSAoeE9yaWdpbiArIHJpdmV0MkVuY0J5Uml2ZXQxTCArIHJpdmV0Mk9mZnNldEwpKSBmb3IoY29sMiAxIG51bUNvbDIgd2hlbihkcmF3Qm90dG9tIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByaXZldDJMYXllciBsaXN0KCh4T3JpZ2luMjp5T3JpZ2luQm90MikgKCh4T3JpZ2luMiArIHJpdmV0Mkxlbmd0aCk6KHlPcmlnaW5Cb3QyICsgcml2ZXQyV2lkdGgpKSkpKSB3aGVuKGRyYXdUb3AgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJpdmV0MkxheWVyIGxpc3QoKHhPcmlnaW4yOnlPcmlnaW5Ub3AyKSAoKHhPcmlnaW4yICsgcml2ZXQyTGVuZ3RoKTooeU9yaWdpblRvcDIgLSByaXZldDJXaWR0aCkpKSkpICh4T3JpZ2luMiA9ICh4T3JpZ2luMiArIHJpdmV0MlBpdGNoTCkpKSkgKHlPcmlnaW5Cb3QgPSAoeU9yaWdpbkJvdCArIHJpdmV0UGl0Y2hZKSkgKHlPcmlnaW5Ub3AgPSAoeU9yaWdpblRvcCAtIHJpdmV0UGl0Y2hZKSkpIGNvbmQoKChldmVucChudW1SaXZldHMpICYmIChhYnMoKHJvdyAtIChudW1SaXZldHMgLyAyLjApKSkgPCAxZS0wNSkpICh4T3JpZ2luID0gKHhPcmlnaW4gKyByaXZldExlbmd0aCArIGNlbnRlclNwYWNlKSkpICh0ICh4T3JpZ2luID0gKHhPcmlnaW4gKyByaXZldFBpdGNoWCkpKSkpIGNvbmQoKChjb3JuZXJFeGNsdWRlV2lkdGggPCAobnVtQ29scyAqIHJpdmV0UGl0Y2hZKSkgKHlXb3JraW5nV2lkdGggPSAodyAtICgyICogbnVtQ29scyAqIHJpdmV0UGl0Y2hZKSkpKSAodCAoeVdvcmtpbmdXaWR0aCA9ICh3IC0gKDIgKiBjb3JuZXJFeGNsdWRlV2lkdGgpKSkpKSAoeVdvcmtpbmdHcmlkcyA9IGZpeCgoMC45OTkgKyAoeVdvcmtpbmdXaWR0aCAvIGdyaWQpKSkpIChudW1SaXZldHMgPSBmaXgoKDFlLTA1ICsgKCh5V29ya2luZ1dpZHRoICsgcml2ZXRTcGFjZSkgLyAocml2ZXRMZW5ndGggKyByaXZldFNwYWNlKSkpKSkgKGRlbHRhV2lkdGggPSAoeVdvcmtpbmdXaWR0aCAtICgobnVtUml2ZXRzICogcml2ZXRMZW5ndGgpICsgKChudW1SaXZldHMgLSAxKSAqIHJpdmV0U3BhY2UpKSkpIChjZW50ZXJTcGFjZSA9IHJpdmV0U3BhY2UpIHdoZW4oZXZlbnAobnVtUml2ZXRzKSBjb25kKChldmVucCh5V29ya2luZ0dyaWRzKSB3aGVuKG9kZHAocml2ZXRTcGFjZUdyaWRzKSBjb25kKCgoZGVsdGFXaWR0aCA+PSBncmlkKSAoY2VudGVyU3BhY2UgPSAoY2VudGVyU3BhY2UgKyBncmlkKSkpICh0IChudW1SaXZldHMgPSAobnVtUml2ZXRzIC0gMSkpKSkpKSAodCB3aGVuKGV2ZW5wKHJpdmV0U3BhY2VHcmlkcykgY29uZCgoKGRlbHRhV2lkdGggPj0gZ3JpZCkgKGNlbnRlclNwYWNlID0gKGNlbnRlclNwYWNlICsgZ3JpZCkpKSAodCAobnVtUml2ZXRzID0gKG51bVJpdmV0cyAtIDEpKSkpKSkpKSB3aGVuKG9kZHAobnVtUml2ZXRzKSBjb25kKChldmVucCh5V29ya2luZ0dyaWRzKSB3aGVuKG9kZHAocml2ZXRXaWR0aEdyaWRzKSAobnVtUml2ZXRzID0gKG51bVJpdmV0cyAtIDEpKSB3aGVuKG9kZHAocml2ZXRTcGFjZUdyaWRzKSAoY2VudGVyU3BhY2UgPSAoY2VudGVyU3BhY2UgKyBncmlkKSkpKSkgKHQgd2hlbihldmVucChyaXZldFdpZHRoR3JpZHMpIChudW1SaXZldHMgPSAobnVtUml2ZXRzIC0gMSkpIHdoZW4oZXZlbnAocml2ZXRTcGFjZUdyaWRzKSAoY2VudGVyU3BhY2UgPSAoY2VudGVyU3BhY2UgKyBncmlkKSkpKSkpKSAoeU9yaWdpbiA9ICgoeU9mZnNldCArICh3IC8gMi4wKSkgLSAoKChudW1SaXZldHMgKiByaXZldExlbmd0aCkgKyAoKG51bVJpdmV0cyAtIDIpICogcml2ZXRTcGFjZSkgKyBjZW50ZXJTcGFjZSkgLyAyLjApKSkgZm9yKHJvdyAxIG51bVJpdmV0cyAoeE9yaWdpbkxlZnQgPSB4T2Zmc2V0KSAoeE9yaWdpblJpZ2h0ID0gKHhPZmZzZXQgKyBsKSkgZm9yKGNvbCAxIG51bUNvbHMgd2hlbihkcmF3TGVmdCAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcml2ZXRMYXllciBsaXN0KCh4T3JpZ2luTGVmdDp5T3JpZ2luKSAoKHhPcmlnaW5MZWZ0ICsgcml2ZXRXaWR0aCk6KHlPcmlnaW4gKyByaXZldExlbmd0aCkpKSkpIHdoZW4oZHJhd1JpZ2h0IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByaXZldExheWVyIGxpc3QoKHhPcmlnaW5SaWdodDp5T3JpZ2luKSAoKHhPcmlnaW5SaWdodCAtIHJpdmV0V2lkdGgpOih5T3JpZ2luICsgcml2ZXRMZW5ndGgpKSkpKSB3aGVuKHJpdmV0MkxheWVyICh4T3JpZ2luTGVmdDIgPSAoeE9yaWdpbkxlZnQgKyByaXZldDJFbmNCeVJpdmV0MVcpKSAoeE9yaWdpblJpZ2h0MiA9ICh4T3JpZ2luUmlnaHQgLSByaXZldDJFbmNCeVJpdmV0MVcpKSAoeU9yaWdpbjIgPSAoeU9yaWdpbiArIHJpdmV0MkVuY0J5Uml2ZXQxTCArIHJpdmV0Mk9mZnNldEwpKSBmb3IoY29sMiAxIG51bUNvbDIgd2hlbihkcmF3TGVmdCAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcml2ZXQyTGF5ZXIgbGlzdCgoeE9yaWdpbkxlZnQyOnlPcmlnaW4yKSAoKHhPcmlnaW5MZWZ0MiArIHJpdmV0MldpZHRoKTooeU9yaWdpbjIgKyByaXZldDJMZW5ndGgpKSkpKSB3aGVuKGRyYXdSaWdodCAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcml2ZXQyTGF5ZXIgbGlzdCgoeE9yaWdpblJpZ2h0Mjp5T3JpZ2luMikgKCh4T3JpZ2luUmlnaHQyIC0gcml2ZXQyV2lkdGgpOih5T3JpZ2luMiArIHJpdmV0Mkxlbmd0aCkpKSkpICh5T3JpZ2luMiA9ICh5T3JpZ2luMiArIHJpdmV0MlBpdGNoTCkpKSkgKHhPcmlnaW5MZWZ0ID0gKHhPcmlnaW5MZWZ0ICsgcml2ZXRQaXRjaFkpKSAoeE9yaWdpblJpZ2h0ID0gKHhPcmlnaW5SaWdodCAtIHJpdmV0UGl0Y2hZKSkpIGNvbmQoKChldmVucChudW1SaXZldHMpICYmIChhYnMoKHJvdyAtIChudW1SaXZldHMgLyAyLjApKSkgPCAxZS0wNSkpICh5T3JpZ2luID0gKHlPcmlnaW4gKyByaXZldExlbmd0aCArIGNlbnRlclNwYWNlKSkpICh0ICh5T3JpZ2luID0gKHlPcmlnaW4gKyByaXZldFBpdGNoWCkpKSkpKQAod2lkdGhFcUxlbmd0aCB3IGwgeE9mZnNldCB5T2Zmc2V0IHJpdmV0TGF5ZXIgcml2ZXQyTGF5ZXIgcml2ZXRMYXllcjIgcmluZ1dpZHRoIHJpdmV0V2lkdGggcml2ZXRMZW5ndGggcml2ZXRTcGFjZSByaXZldDJXaWR0aCByaXZldDJMZW5ndGggcml2ZXQyU3BhY2Ugcml2ZXQyRW5jQnlSaXZldDFMIHJpdmV0MkVuY0J5Uml2ZXQxVyBsbEJldmVsTGVuZ3RoIHVsQmV2ZWxMZW5ndGggbHJCZXZlbExlbmd0aCB1ckJldmVsTGVuZ3RoIGF1dG9JbmNyZWFzZUJldmVsV2lkdGggc2tpcFRvcCBza2lwQm90dG9tIHNraXBMZWZ0IHNraXBSaWdodCBncmlkIGRyYXdUb3AgZHJhd0JvdHRvbSBkcmF3TGVmdCBkcmF3UmlnaHQgY29ybmVyRXhjbHVkZVdpZHRoIHJpdmV0UGl0Y2hZIHJpdmV0UGl0Y2hYIHJpdmV0MlBpdGNoTCByaXZldDJBY3RpdmVMIG51bUNvbDIgcml2ZXQxUmVhbEwgcml2ZXQyT2Zmc2V0TCBudW1Db2xzIHJpdmV0V2lkdGhHcmlkcyByaXZldFNwYWNlR3JpZHMgeFdvcmtpbmdXaWR0aCB4V29ya2luZ0dyaWRzIG51bVJpdmV0cyBkZWx0YVdpZHRoIGNlbnRlclNwYWNlIHhPcmlnaW4gcm93IHlPcmlnaW5Cb3QgeU9yaWdpblRvcCBjb2wgeU9yaWdpbkJvdDIgeU9yaWdpblRvcDIgeE9yaWdpbjIgY29sMiB5V29ya2luZ1dpZHRoIHlXb3JraW5nR3JpZHMgeU9yaWdpbiB4T3JpZ2luTGVmdCB4T3JpZ2luUmlnaHQgeE9yaWdpbkxlZnQyIHhPcmlnaW5SaWdodDIgeU9yaWdpbjIpACgodyA1LjApIChsIDUuMCkgKHhPZmZzZXQgMC4wKSAoeU9mZnNldCAwLjApIChyaXZldExheWVyIGxpc3QoInkzIiAiZHJhd2luZyIpKSAocml2ZXQyTGF5ZXIgbmlsKSAocml2ZXRMYXllcjIgbmlsKSAocmluZ1dpZHRoIDEuMCkgKHJpdmV0V2lkdGggMS4wKSAocml2ZXRMZW5ndGggMC4yNSkgKHJpdmV0U3BhY2UgMC41KSAocml2ZXQyV2lkdGggMC4wKSAocml2ZXQyTGVuZ3RoIDAuMCkgKHJpdmV0MlNwYWNlIDAuMCkgKHJpdmV0MkVuY0J5Uml2ZXQxTCAwLjApIChyaXZldDJFbmNCeVJpdmV0MVcgMC4wKSAobGxCZXZlbExlbmd0aCAxLjApICh1bEJldmVsTGVuZ3RoIDEuMCkgKGxyQmV2ZWxMZW5ndGggMS4wKSAodXJCZXZlbExlbmd0aCAxLjApIChhdXRvSW5jcmVhc2VCZXZlbFdpZHRoICJGQUxTRSIpIChza2lwVG9wICJGQUxTRSIpIChza2lwQm90dG9tICJGQUxTRSIpIChza2lwTGVmdCAiRkFMU0UiKSAoc2tpcFJpZ2h0ICJGQUxTRSIpIChncmlkIChURUNIZ2V0UHJvcCBzbmFwR3JpZCkpKQAoKHdpZHRoRXFMZW5ndGggdCkpACh3aGVuKChiZXZlbFRoZU91dHNpZGUgPT0gIkZBTFNFIikgKGJldmVsVGhlT3V0c2lkZSA9IG5pbCkpIGlmKCgoc2tpcExlZnRTaWRlID09ICJGQUxTRSIpIHx8ICFza2lwTGVmdFNpZGUpIHRoZW4gKGRyYXdMZWZ0U2lkZSA9IHQpIGVsc2UgKGRyYXdMZWZ0U2lkZSA9IG5pbCkpIGlmKCgoc2tpcFJpZ2h0U2lkZSA9PSAiRkFMU0UiKSB8fCAhc2tpcFJpZ2h0U2lkZSkgdGhlbiAoZHJhd1JpZ2h0U2lkZSA9IHQpIGVsc2UgKGRyYXdSaWdodFNpZGUgPSBuaWwpKSBpZigoKHNraXBUb3BTaWRlID09ICJGQUxTRSIpIHx8ICFza2lwVG9wU2lkZSkgdGhlbiAoZHJhd1RvcFNpZGUgPSB0KSBlbHNlIChkcmF3VG9wU2lkZSA9IG5pbCkpIGlmKCgoc2tpcEJvdHRvbVNpZGUgPT0gIkZBTFNFIikgfHwgIXNraXBCb3R0b21TaWRlKSB0aGVuIChkcmF3Qm90dG9tU2lkZSA9IHQpIGVsc2UgKGRyYXdCb3R0b21TaWRlID0gbmlsKSkgaWYoKChza2lwTGVmdFNpZGUgPT0gIlRSVUUiKSB8fCAoc2tpcFJpZ2h0U2lkZSA9PSAiVFJVRSIpIHx8IChza2lwVG9wU2lkZSA9PSAiVFJVRSIpIHx8IChza2lwQm90dG9tU2lkZSA9PSAiVFJVRSIpKSB0aGVuIChzZWxlY3RpdmVEcmF3aW5nID0gdCkgZWxzZSAoc2VsZWN0aXZlRHJhd2luZyA9IG5pbCkpIHdoZW4oKGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlID09ICJGQUxTRSIpIChiZXZlbFRoZU91dHNpZGVOb0luc2lkZSA9IG5pbCkpIGlmKCgoYnJlYWt1cFBvbHlnb25zID09ICJGQUxTRSIpIHx8ICFicmVha3VwUG9seWdvbnMpIHRoZW4gKGJyZWFrdXBQb2x5Z29ucyA9IG5pbCkgZWxzZSAoYnJlYWt1cFBvbHlnb25zID0gdCkpIChzMiA9IHNxcnQoMi4wKSkgKGJldmVsSW5zaWRlT2Zmc2V0ID0gKCgocmluZ1dpZHRoICogKHMyIC0gMS4wKSkgKyAoczIgKiBhZGRpdGlvbmFsV2lkdGhJbkJldmVsKSkgLyBncmlkKSkgKGZpeGVkQmV2ID0gZml4KCgxZS0wNiArIGJldmVsSW5zaWRlT2Zmc2V0KSkpIGNvbmQoKCgoYmV2ZWxJbnNpZGVPZmZzZXQgLSBmaXhlZEJldikgPCAxZS0wNikgKGJldmVsSW5zaWRlT2Zmc2V0ID0gKGdyaWQgKiBmaXhlZEJldikpKSAodCAoYmV2ZWxJbnNpZGVPZmZzZXQgPSAoZ3JpZCAqICgxLjAgKyBmaXhlZEJldikpKSkpIChjYW5ub3RCZXZlbExlbmd0aCA9IChyaW5nV2lkdGggLSBiZXZlbEluc2lkZU9mZnNldCkpIGNvbmQoKChsbEJldmVsID0gKGxsQmV2ZWxMZW5ndGggPiBjYW5ub3RCZXZlbExlbmd0aCkpIChhcnJheVNpemUgPSA0KSkgKHQgKGFycmF5U2l6ZSA9IDIpKSkgY29uZCgoKGxyQmV2ZWwgPSAobHJCZXZlbExlbmd0aCA+IGNhbm5vdEJldmVsTGVuZ3RoKSkgKGFycmF5U2l6ZSA9IChhcnJheVNpemUgKyA0KSkpICh0IChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgMikpKSkgY29uZCgoKHVyQmV2ZWwgPSAodXJCZXZlbExlbmd0aCA+IGNhbm5vdEJldmVsTGVuZ3RoKSkgKGFycmF5U2l6ZSA9IChhcnJheVNpemUgKyA0KSkpICh0IChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgMikpKSkgY29uZCgoKHVsQmV2ZWwgPSAodWxCZXZlbExlbmd0aCA+IGNhbm5vdEJldmVsTGVuZ3RoKSkgKGFycmF5U2l6ZSA9IChhcnJheVNpemUgKyA0KSkpICh0IChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgMikpKSkgKGluc2lkZUluZGV4ID0gKGFycmF5U2l6ZSAvIDIpKSAob3V0c2lkZUluZGV4ID0gKGluc2lkZUluZGV4ICsgMSkpIChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgMykpIGRlY2xhcmUodGhlUmluZ1BvaW50c1thcnJheVNpemVdKSAodGhlT3V0c2lkZVggPSB4T2Zmc2V0KSAodGhlT3V0c2lkZVkgPSB5T2Zmc2V0KSBjb25kKCghbGxCZXZlbCAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCArIHJpbmdXaWR0aCkpICh0aGVJbnNpZGVZID0gKHRoZU91dHNpZGVZICsgcmluZ1dpZHRoKSkgKGJlZ2lubmluZ0luc2lkZVBvaW50ID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpIChiZWdpbm5pbmdPdXRzaWRlUG9pbnQgPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludCkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9IGJlZ2lubmluZ091dHNpZGVQb2ludCkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAodGhlT3V0c2lkZVkgPSAodGhlT3V0c2lkZVkgKyBsbEJldmVsTGVuZ3RoKSkgKHRoZUluc2lkZVkgPSAodGhlT3V0c2lkZVkgKyBiZXZlbEluc2lkZU9mZnNldCkpICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYICsgcmluZ1dpZHRoKSkgKGJlZ2lubmluZ0luc2lkZVBvaW50ID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpIChiZWdpbm5pbmdPdXRzaWRlUG9pbnQgPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSBjb25kKChiZXZlbFRoZU91dHNpZGVOb0luc2lkZSAodGhlSW5zaWRlWTEgPSAoeU9mZnNldCArIHJpbmdXaWR0aCkpIChiZWdpbm5pbmdJbnNpZGVQb2ludDEgPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZMSkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50MSkpICh0ICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50KSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSB3aGVuKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gYmVnaW5uaW5nT3V0c2lkZVBvaW50KSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHRoZU91dHNpZGVYID0gKHRoZU91dHNpZGVYICsgbGxCZXZlbExlbmd0aCkpICh0aGVPdXRzaWRlWSA9IHlPZmZzZXQpICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYICsgYmV2ZWxJbnNpZGVPZmZzZXQpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSArIHJpbmdXaWR0aCkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50MSkpICh0ICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSBjb25kKChiZXZlbFRoZU91dHNpZGUgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpKSAodCAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHhPZmZzZXQ6dGhlT3V0c2lkZVkpKSAoYmVnaW5uaW5nT3V0c2lkZVBvaW50ID0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgoIWxyQmV2ZWwgKHRoZU91dHNpZGVYID0gKHhPZmZzZXQgKyBsKSkgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggLSByaW5nV2lkdGgpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHQgKHRoZU91dHNpZGVYID0gKHhPZmZzZXQgKyBsICsgKC0gbHJCZXZlbExlbmd0aCkpKSAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCAtIGJldmVsSW5zaWRlT2Zmc2V0KSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgKHRoZUluc2lkZVgxID0gKHhPZmZzZXQgKyBsICsgKC0gcmluZ1dpZHRoKSkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYMTp0aGVJbnNpZGVZKSkpICh0ICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSB3aGVuKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0aGVPdXRzaWRlWCA9ICh0aGVPdXRzaWRlWCArIGxyQmV2ZWxMZW5ndGgpKSAodGhlT3V0c2lkZVkgPSAodGhlT3V0c2lkZVkgKyBsckJldmVsTGVuZ3RoKSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVgxOnRoZUluc2lkZVkpKSkgKHQgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggLSByaW5nV2lkdGgpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSArIGJldmVsSW5zaWRlT2Zmc2V0KSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkpICh0ICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6eU9mZnNldCkpKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKCghdXJCZXZlbCAodGhlT3V0c2lkZVkgPSAoeU9mZnNldCArIHcpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSAtIHJpbmdXaWR0aCkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAodGhlT3V0c2lkZVkgPSAoeU9mZnNldCArIHcgKyAoLSB1ckJldmVsTGVuZ3RoKSkpICh0aGVJbnNpZGVZID0gKHRoZU91dHNpZGVZIC0gYmV2ZWxJbnNpZGVPZmZzZXQpKSBjb25kKChiZXZlbFRoZU91dHNpZGVOb0luc2lkZSAodGhlSW5zaWRlWTEgPSAoeU9mZnNldCArIHcgKyAoLSByaW5nV2lkdGgpKSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVgxOnRoZUluc2lkZVkxKSkpICh0ICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSB3aGVuKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0aGVPdXRzaWRlWSA9ICh5T2Zmc2V0ICsgdykpICh0aGVPdXRzaWRlWCA9ICh0aGVPdXRzaWRlWCAtIHVyQmV2ZWxMZW5ndGgpKSBjb25kKChiZXZlbFRoZU91dHNpZGVOb0luc2lkZSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDE6dGhlSW5zaWRlWTEpKSkgKHQgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggLSBiZXZlbEluc2lkZU9mZnNldCkpICh0aGVJbnNpZGVZID0gKHRoZU91dHNpZGVZIC0gcmluZ1dpZHRoKSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkpICh0ICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAoKHhPZmZzZXQgKyBsKTp0aGVPdXRzaWRlWSkpKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKCghdWxCZXZlbCAodGhlT3V0c2lkZVggPSB4T2Zmc2V0KSAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCArIHJpbmdXaWR0aCkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAodGhlT3V0c2lkZVggPSAoeE9mZnNldCArIHVsQmV2ZWxMZW5ndGgpKSAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCArIGJldmVsSW5zaWRlT2Zmc2V0KSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgKHRoZUluc2lkZVgxID0gKHhPZmZzZXQgKyByaW5nV2lkdGgpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDE6dGhlSW5zaWRlWTEpKSkgKHQgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIHdoZW4oYmV2ZWxUaGVPdXRzaWRlICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHRoZU91dHNpZGVYID0geE9mZnNldCkgKHRoZU91dHNpZGVZID0gKHRoZU91dHNpZGVZIC0gdWxCZXZlbExlbmd0aCkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYMTp0aGVJbnNpZGVZMSkpKSAodCAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCArIHJpbmdXaWR0aCkpICh0aGVJbnNpZGVZID0gKHRoZU91dHNpZGVZIC0gYmV2ZWxJbnNpZGVPZmZzZXQpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSkgKHQgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDooeU9mZnNldCArIHcpKSkpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50MSkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9IGJlZ2lubmluZ091dHNpZGVQb2ludCkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50MSkpICh0ICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50KSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gYmVnaW5uaW5nT3V0c2lkZVBvaW50KSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gYmVnaW5uaW5nSW5zaWRlUG9pbnQpKSkgY29uZCgoYnJlYWt1cFBvbHlnb25zIChpbnNpZGVJbmRleCA9ICgoYXJyYXlTaXplIC0gMykgLyAyKSkgKG91dHNpZGVJbmRleCA9IChpbnNpZGVJbmRleCArIDEpKSBjb25kKChiZXZlbFRoZU91dHNpZGUgY29uZCgobGxCZXZlbCAocmluZ0xpc3QxID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDIpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDIpKSkgKHQgKHJpbmdMaXN0MSA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpIGNvbmQoKGxyQmV2ZWwgKHJpbmdMaXN0MiA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAyKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAyKSkpICh0IChyaW5nTGlzdDIgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKCh1ckJldmVsIChyaW5nTGlzdDMgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMikpKSAodCAocmluZ0xpc3QzID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgodWxCZXZlbCAocmluZ0xpc3Q0ID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDIpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDIpKSkgKHQgKHJpbmdMaXN0NCA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpKSAodCBjb25kKChsbEJldmVsIChyaW5nTGlzdDEgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAyKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0IGlmKHNlbGVjdGl2ZURyYXdpbmcgdGhlbiAodXJYID0gKGNhcih0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSkgKyByaW5nV2lkdGgpKSAodXJZID0gY2Fkcih0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSkpICh1clBvaW50ID0gbGlzdCh1clggdXJZKSkgKGxsWCA9IGNhcih0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAobGxZID0gY2Fkcih0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAobGxQb2ludCA9IGxpc3QobGxYIGxsWSkpIChyaW5nTGlzdDEgPSBsaXN0KGxsUG9pbnQgdXJQb2ludCkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSBlbHNlIChyaW5nTGlzdDEgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSkgY29uZCgobHJCZXZlbCAocmluZ0xpc3QyID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCBpZihzZWxlY3RpdmVEcmF3aW5nIHRoZW4gKHVyWCA9IGNhcih0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0pKSAodXJZID0gY2Fkcih0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0pKSAodXJQb2ludCA9IGxpc3QodXJYIHVyWSkpIChsbFggPSBjYXIodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0pKSAobGxZID0gKGNhZHIodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0pIC0gcmluZ1dpZHRoKSkgKGxsUG9pbnQgPSBsaXN0KGxsWCBsbFkpKSAocmluZ0xpc3QyID0gbGlzdChsbFBvaW50IHVyUG9pbnQpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkgZWxzZSAocmluZ0xpc3QyID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkpIGNvbmQoKHVyQmV2ZWwgKHJpbmdMaXN0MyA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDIpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHQgaWYoc2VsZWN0aXZlRHJhd2luZyB0aGVuICh1clggPSBjYXIodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKHVyWSA9IGNhZHIodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKHVyUG9pbnQgPSBsaXN0KHVyWCB1clkpKSAobGxYID0gKGNhcih0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSkgLSByaW5nV2lkdGgpKSAobGxZID0gY2Fkcih0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSkpIChsbFBvaW50ID0gbGlzdChsbFggbGxZKSkgKHJpbmdMaXN0MyA9IGxpc3QobGxQb2ludCB1clBvaW50KSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpIGVsc2UgKHJpbmdMaXN0MyA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpKSBjb25kKCh1bEJldmVsIChyaW5nTGlzdDQgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAyKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0IGlmKHNlbGVjdGl2ZURyYXdpbmcgdGhlbiAodXJYID0gY2FyKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdKSkgKHVyWSA9IChjYWRyKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdKSArIHJpbmdXaWR0aCkpICh1clBvaW50ID0gbGlzdCh1clggdXJZKSkgKGxsWCA9IGNhcih0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0pKSAobGxZID0gY2Fkcih0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0pKSAobGxQb2ludCA9IGxpc3QobGxYIGxsWSkpIChyaW5nTGlzdDQgPSBsaXN0KGxsUG9pbnQgdXJQb2ludCkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSBlbHNlIChyaW5nTGlzdDQgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSkpKSB3aGVuKHJpbmdMYXllciAobmV0ID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJwcGQiKSkgKGRiQ3JlYXRlVGVybSBuZXQgIiIgImlucHV0T3V0cHV0IikgaWYoc2VsZWN0aXZlRHJhd2luZyB0aGVuIHdoZW4oZHJhd0JvdHRvbVNpZGUgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmluZ0xheWVyIHJpbmdMaXN0MSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSkgd2hlbihkcmF3UmlnaHRTaWRlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJpbmdMYXllciByaW5nTGlzdDIpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkpIHdoZW4oZHJhd1RvcFNpZGUgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmluZ0xheWVyIHJpbmdMaXN0MykpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSkgd2hlbihkcmF3TGVmdFNpZGUgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmluZ0xheWVyIHJpbmdMaXN0NCkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSkgZWxzZSB3aGVuKGRyYXdCb3R0b21TaWRlIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHJpbmdMYXllciByaW5nTGlzdDEpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkpIHdoZW4oZHJhd1JpZ2h0U2lkZSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyByaW5nTGF5ZXIgcmluZ0xpc3QyKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpKSB3aGVuKGRyYXdUb3BTaWRlIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHJpbmdMYXllciByaW5nTGlzdDMpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkpIHdoZW4oZHJhd0xlZnRTaWRlIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHJpbmdMYXllciByaW5nTGlzdDQpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkpKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJyaW5nUG9pbnRzMSIgImxpc3QiIHJpbmdMaXN0MSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJyaW5nUG9pbnRzMiIgImxpc3QiIHJpbmdMaXN0MikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJyaW5nUG9pbnRzMyIgImxpc3QiIHJpbmdMaXN0MykgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJyaW5nUG9pbnRzNCIgImxpc3QiIHJpbmdMaXN0NCkpICh0IChyaW5nTGlzdCA9IG5pbCkgZm9yKGkgMSBvdXRzaWRlSW5kZXggKHJpbmdMaXN0ID0gY29ucyh0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggLSBpKV0gcmluZ0xpc3QpKSkgd2hlbihyaW5nTGF5ZXIgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIChkYkNyZWF0ZVRlcm0gbmV0ICIiICJpbnB1dE91dHB1dCIpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHJpbmdMYXllciByaW5nTGlzdCkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJyaW5nUG9pbnRzIiAibGlzdCIgcmluZ0xpc3QpKSkpACh3IGwgeE9mZnNldCB5T2Zmc2V0IHJpbmdMYXllciByaW5nV2lkdGggYWRkaXRpb25hbFdpZHRoSW5CZXZlbCBsbEJldmVsTGVuZ3RoIHVsQmV2ZWxMZW5ndGggbHJCZXZlbExlbmd0aCB1ckJldmVsTGVuZ3RoIGJldmVsVGhlT3V0c2lkZSBiZXZlbFRoZU91dHNpZGVOb0luc2lkZSBza2lwTGVmdFNpZGUgc2tpcFJpZ2h0U2lkZSBza2lwVG9wU2lkZSBza2lwQm90dG9tU2lkZSBncmlkIGJyZWFrdXBQb2x5Z29ucyBkcmF3TGVmdFNpZGUgZHJhd1JpZ2h0U2lkZSBkcmF3VG9wU2lkZSBkcmF3Qm90dG9tU2lkZSBzZWxlY3RpdmVEcmF3aW5nIHMyIGJldmVsSW5zaWRlT2Zmc2V0IGZpeGVkQmV2IGNhbm5vdEJldmVsTGVuZ3RoIGxsQmV2ZWwgYXJyYXlTaXplIGxyQmV2ZWwgdXJCZXZlbCB1bEJldmVsIGluc2lkZUluZGV4IG91dHNpZGVJbmRleCB0aGVSaW5nUG9pbnRzIHRoZU91dHNpZGVYIHRoZU91dHNpZGVZIHRoZUluc2lkZVggdGhlSW5zaWRlWSBiZWdpbm5pbmdJbnNpZGVQb2ludCBiZWdpbm5pbmdPdXRzaWRlUG9pbnQgdGhlSW5zaWRlWTEgYmVnaW5uaW5nSW5zaWRlUG9pbnQxIHRoZUluc2lkZVgxIHJpbmdMaXN0MSByaW5nTGlzdDIgcmluZ0xpc3QzIHJpbmdMaXN0NCB1clggdXJZIHVyUG9pbnQgbGxYIGxsWSBsbFBvaW50IG5ldCBkYmlkIHJpbmdMaXN0IGkpACgodyA1LjApIChsIDUuMCkgKHhPZmZzZXQgMC4wKSAoeU9mZnNldCAwLjApIChyaW5nTGF5ZXIgbGlzdCgieTMiICJkcmF3aW5nIikpIChyaW5nV2lkdGggMS4wKSAoYWRkaXRpb25hbFdpZHRoSW5CZXZlbCAwLjApIChsbEJldmVsTGVuZ3RoIDAuMCkgKHVsQmV2ZWxMZW5ndGggMC4wKSAobHJCZXZlbExlbmd0aCAwLjApICh1ckJldmVsTGVuZ3RoIDAuMCkgKGJldmVsVGhlT3V0c2lkZSAiRkFMU0UiKSAoYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgIkZBTFNFIikgKHNraXBMZWZ0U2lkZSAiRkFMU0UiKSAoc2tpcFJpZ2h0U2lkZSAiRkFMU0UiKSAoc2tpcFRvcFNpZGUgIkZBTFNFIikgKHNraXBCb3R0b21TaWRlICJGQUxTRSIpIChncmlkIChURUNIZ2V0UHJvcCBzbmFwR3JpZCkpIChicmVha3VwUG9seWdvbnMgIkZBTFNFIikpACgoZXh0cmFDb3JuZXJDdXRfb3JpZyA9IGV4dHJhQ29ybmVyQ3V0KSAodGcyMl81ID0gMC40MTQyKSAoZGJ1cGVydXUgPSAodGNDZWxsVmlld34+REJVUGVyVVUpKSAoZ3JpZCA9IGZpeCgoZGJ1cGVydXUgKiBzZWFscmluZ0dyaWQpKSkgKHMyID0gc3FydCgyLjApKSBmb3JlYWNoKHBhcmFtICcoc2VhbHJpbmdJZFdpZHRoIHBhZEVuY05pa29uIHBhZEVuY05pa29uSW5zaWRlIHcgbCBleHRyYUNvcm5lckN1dCBwYWRHcmlkKSBzZXQocGFyYW0gZml4KChkYnVwZXJ1dSAqIGV2YWwocGFyYW0pKSkpIHVubGVzcyh6ZXJvcChtb2QoZXZhbChwYXJhbSkgZ3JpZCkpIHNldChwYXJhbSAoKChldmFsKHBhcmFtKSArIGdyaWQpIC8gZ3JpZCkgKiBncmlkKSkpKSAobmV0ID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJwcGQiKSkgKG1pblNlYWxSaW5nSWRXaWR0aCA9IDApIChyaW5nSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZ2VuZXJpY1JpbmdOYW1lICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MocmluZ0lkIGVycm9yKCJkaWVTZWFsUmluZ0NsYXNzQWR2OiAgQ2Fubm90IGZpbmQvb3BlbiBnZW5lcmljIHJpbmcgJXNcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgdW5sZXNzKChyaW5nSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigiZGllU2VhbFJpbmdDbGFzc0FkdjogIFJpbmcgJXMgaXMgbm90IGEgcGNlbGxcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgd2hlbigoZGlzY3JldGVDb250YWN0UmluZ05hbWUgIT0gIiIpIChjb250YWN0UmluZ0lkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGRpc2NyZXRlQ29udGFjdFJpbmdOYW1lICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoY29udGFjdFJpbmdJZCBlcnJvcigiZGllU2VhbFJpbmdDbGFzc0FkdjogIENhbm5vdCBmaW5kL29wZW4gZ2VuZXJpYyBjb250YWN0IHJpbmcgJXNcbiIgZGlzY3JldGVDb250YWN0UmluZ05hbWUpKSB1bmxlc3MoKGNvbnRhY3RSaW5nSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigiZGllU2VhbFJpbmdDbGFzc0FkdjogIFJpdmV0IHJpbmcgJXMgaXMgbm90IGEgcGNlbGxcbiIgZGlzY3JldGVDb250YWN0UmluZ05hbWUpKSkgd2hlbigoZGlzY3JldGVDb250YWN0UmluZyAmJiAhY29udGFjdFJpbmdJZCkgZXJyb3IoImRpZVNlYWxSaW5nQ2xhc3NBZHY6ICBSaXZldCByaW5nIGNsYXNzIG5vdCBkZWZpbmVkXG4iKSkgKG5pa29uSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgbmlrb25Dcm9zc05hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhuaWtvbklkIGVycm9yKCJkaWVTZWFsUmluZ0NsYXNzQWR2OiAgQ2Fubm90IGZpbmQvb3BlbiBuaWtvbiBjcm9zcyAlc1xuIiBuaWtvbkNyb3NzTmFtZSkpIHVubGVzcygobmlrb25JZH4+aXNQYXJhbUNlbGwpIGVycm9yKCJkaWVTZWFsUmluZ0NsYXNzQWR2OiAgTmlrb24gY3Jvc3MgJXMgaXMgbm90IGEgcGNlbGxcbiIgbmlrb25Dcm9zc05hbWUpKSBmb3JlYWNoKGxheWVyIHNvbGlkTGF5ZXJSaW5nICh0aGlzTHBwID0gY2FyKGxheWVyKSkgKHJpbmdXaWR0aCA9IGZpeCgoZGJ1cGVydXUgKiBjYWRkcihsYXllcikpKSkgKG1ha2VQaW4gPSBudGgoMyBsYXllcikpIChsYXlHcmlkID0gZml4KChkYnVwZXJ1dSAqIG50aCg0IGxheWVyKSkpKSAoc3BhY2luZ0xpc3QgPSBjYWRyKGxheWVyKSkgd2hlbighbGlzdHAoc3BhY2luZ0xpc3QpIChzcGFjaW5nTGlzdCA9IGxpc3Qoc3BhY2luZ0xpc3QpKSkgZm9yZWFjaChTUCBzcGFjaW5nTGlzdCAoc3BhY2luZyA9IGZpeCgoZGJ1cGVydXUgKiBTUCkpKSAoaW50UmluZ0xheWVycyA9IGNvbnMobGlzdCh0aGlzTHBwIHNwYWNpbmcgcmluZ1dpZHRoIG1ha2VQaW4gbGF5R3JpZCkgaW50UmluZ0xheWVycykpIHdoZW4oKG1pblNlYWxSaW5nSWRXaWR0aCA8IChzcGFjaW5nICsgcmluZ1dpZHRoKSkgKG1pblNlYWxSaW5nSWRXaWR0aCA9IChzcGFjaW5nICsgcmluZ1dpZHRoKSkpKSkgKHNlYWxyaW5nSWRXaWR0aCA9IG1heChzZWFscmluZ0lkV2lkdGggbWluU2VhbFJpbmdJZFdpZHRoKSkgKHcgPSAodyArICgyICogc2VhbHJpbmdJZFdpZHRoKSkpIChsID0gKGwgKyAoMiAqIHNlYWxyaW5nSWRXaWR0aCkpKSAobGVuID0gKGwgLyBkYnVwZXJ1dSkpICh3aWQgPSAodyAvIGRidXBlcnV1KSkgKHNtYWxsZGllID0gbmlsKSBpZigobCA+IHcpIHRoZW4gKGFyID0gKGxlbiAvIHdpZCkpIGlmKChsZW4gPCAoY3JpdGljYWxMIC8gc2NhbGVGKSkgdGhlbiAoc21hbGxkaWUgPSB0KSkgZWxzZSAoYXIgPSAod2lkIC8gbGVuKSkgaWYoKHdpZCA8IChjcml0aWNhbEwgLyBzY2FsZUYpKSB0aGVuIChzbWFsbGRpZSA9IHQpKSkgaWYoc21hbGxkaWUgdGhlbiAocmQgPSAoZGVmUmQgLyBzY2FsZUYpKSBpZigoZml4UmMgIT0gbmlsKSB0aGVuIChyYyA9IGZpeFJjKSBlbHNlIChyYyA9IChkZWZSYyAvIHNjYWxlRikpKSAoZCA9IChkZWZEIC8gc2NhbGVGKSkgZWxzZSAocmQgPSAoKCgoNi40MyAtICgxLjI4ICogYXIpKSArICgwLjY5ICogYXIgKiBhcikpICogMjUuNCkgLyBzY2FsZUYpKSBpZigoZml4UmMgIT0gbmlsKSB0aGVuIChyYyA9IGZpeFJjKSBlbHNlIChyYyA9ICgoKDExLjI1ICsgKDMuNDcgKiBhcikpICogMjUuNCkgLyBzY2FsZUYpKSkgKGQgPSAoKCgtMS4zMSArICgzLjg3ICogYXIpKSAqIDI1LjQpIC8gc2NhbGVGKSkpIGlmKChyZExheWVyICYmIChyZCA+IDApKSB0aGVuIChkYkNyZWF0ZUVsbGlwc2UgdGNDZWxsVmlldyByZExheWVyIGxpc3QoKCgtIHJkKTooLSByZCkpIChyZDpyZCkpKSAoZGJDcmVhdGVFbGxpcHNlIHRjQ2VsbFZpZXcgcmRMYXllciBsaXN0KCgoLSByZCk6KHdpZCAtIHJkKSkgKHJkOih3aWQgKyByZCkpKSkgKGRiQ3JlYXRlRWxsaXBzZSB0Y0NlbGxWaWV3IHJkTGF5ZXIgbGlzdCgoKGxlbiAtIHJkKTooLSByZCkpICgobGVuICsgcmQpOnJkKSkpIChkYkNyZWF0ZUVsbGlwc2UgdGNDZWxsVmlldyByZExheWVyIGxpc3QoKChsZW4gLSByZCk6KHdpZCAtIHJkKSkgKChsZW4gKyByZCk6KHdpZCArIHJkKSkpKSkgaWYocmNMYXllciB0aGVuIChkYkNyZWF0ZUVsbGlwc2UgdGNDZWxsVmlldyByY0xheWVyIGxpc3QoKCgtIHJjKTooLSByYykpIChyYzpyYykpKSAoZGJDcmVhdGVFbGxpcHNlIHRjQ2VsbFZpZXcgcmNMYXllciBsaXN0KCgoLSByYyk6KHdpZCAtIHJjKSkgKHJjOih3aWQgKyByYykpKSkgKGRiQ3JlYXRlRWxsaXBzZSB0Y0NlbGxWaWV3IHJjTGF5ZXIgbGlzdCgoKGxlbiAtIHJjKTooLSByYykpICgobGVuICsgcmMpOnJjKSkpIChkYkNyZWF0ZUVsbGlwc2UgdGNDZWxsVmlldyByY0xheWVyIGxpc3QoKChsZW4gLSByYyk6KHdpZCAtIHJjKSkgKChsZW4gKyByYyk6KHdpZCArIHJjKSkpKSkgaWYoZExheWVyIHRoZW4gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRMYXllciBsaXN0KCgwOjApIChkOndpZCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZExheWVyIGxpc3QoKDA6MCkgKGxlbjpkKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkTGF5ZXIgbGlzdCgoMDood2lkIC0gZCkpIChsZW46d2lkKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkTGF5ZXIgbGlzdCgoKGxlbiAtIGQpOjApIChsZW46d2lkKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IG5pa29uSWQgImxsTmlrb24iICgocGFkRW5jTmlrb24gLyBkYnVwZXJ1dSk6KHBhZEVuY05pa29uIC8gZGJ1cGVydXUpKSAiUjAiIDEgbmlsKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoY3V0UG9pbnRzID0gbmlsKSBmb3JlYWNoKHBvaW50ICh0aGVNYXN0ZXJ+Pm91dGxpbmVQb2ludHMpIChjdXRQb2ludHMgPSBjb25zKCgocGFkRW5jTmlrb24gKyBmaXgoKGRidXBlcnV1ICogY2FyKHBvaW50KSkpKToocGFkRW5jTmlrb24gKyBmaXgoKGRidXBlcnV1ICogY2Fkcihwb2ludCkpKSkpIGN1dFBvaW50cykpKSB3aGVuKHplcm9wKHBhZEVuY05pa29uSW5zaWRlKSAocGFkRW5jTmlrb25JbnNpZGUgPSBwYWRFbmNOaWtvbikpIChjb3JuZXJDdXQgPSBmaXgoKCgyLjAgKiBwYWRFbmNOaWtvbikgKyAoczIgKiBwYWRFbmNOaWtvbkluc2lkZSkgKyAoZGJ1cGVydXUgKiBjYXIobnRoKDMgKHRoZU1hc3Rlcn4+b3V0bGluZVBvaW50cykpKSkgKyAoZGJ1cGVydXUgKiBjYXIobnRoKDIgKHRoZU1hc3Rlcn4+b3V0bGluZVBvaW50cykpKSkpKSkgdW5sZXNzKHplcm9wKG1vZChjb3JuZXJDdXQgcGFkR3JpZCkpIChjb3JuZXJDdXQgPSAoKChjb3JuZXJDdXQgKyBwYWRHcmlkKSAvIHBhZEdyaWQpICogcGFkR3JpZCkpKSAoYmV2ZWxBZGQgPSAwKSBmb3JlYWNoKGxheWVyIGludFJpbmdMYXllcnMgKHNwYWNpbmcgPSBjYWRyKGxheWVyKSkgKGJldmVsTGVuZ3RoID0gKGNvcm5lckN1dCArICgtIHNwYWNpbmcpICsgZml4KChzcGFjaW5nICogKHMyIC0gMS4wKSkpKSkgKG1pbkJldmVsUmVxdWlyZWQgPSAoY2VpbGluZyAoY2FkZHIobGF5ZXIpICogMS4wKSkpIChiZXZlbEFqZHVzdCA9IChtaW5CZXZlbFJlcXVpcmVkIC0gYmV2ZWxMZW5ndGgpKSBpZigoKGJldmVsQWpkdXN0ID4gMCkgJiYgKGJldmVsQWRkIDw9IGJldmVsQWpkdXN0KSkgdGhlbiAoYmV2ZWxBZGQgPSBiZXZlbEFqZHVzdCkpKSAocGFkR3JpZEZsb2F0ID0gKHBhZEdyaWQgKiAxLjApKSAoYmV2ZWxBZGQgPSAoKGNlaWxpbmcgKGJldmVsQWRkIC8gcGFkR3JpZEZsb2F0KSkgKiBwYWRHcmlkKSkgKGV4dHJhQ29ybmVyQ3V0ID0gKGV4dHJhQ29ybmVyQ3V0ICsgYmV2ZWxBZGQpKSAocmVhbEN1dFBvaW50cyA9IG5pbCkgZm9yZWFjaChwb2ludCBjdXRQb2ludHMgKHJlYWxDdXRQb2ludHMgPSBjb25zKCgoY2FyKHBvaW50KSAvIGRidXBlcnV1KTooY2Fkcihwb2ludCkgLyBkYnVwZXJ1dSkpIHJlYWxDdXRQb2ludHMpKSkgKHJlYWxDdXRQb2ludHMgPSByZXZlcnNlKHJlYWxDdXRQb2ludHMpKSAocGFkTGF5ZXJJZF8xID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHBhZExheWVyIGNvbnMoKDAuMDowLjApIGFwcGVuZChyZWFsQ3V0UG9pbnRzIGxpc3QoY2FyKHJlYWxDdXRQb2ludHMpICgwLjA6MC4wKSAoKChjb3JuZXJDdXQgKyBleHRyYUNvcm5lckN1dCkgLyBkYnVwZXJ1dSk6MC4wKSAoMC4wOigoY29ybmVyQ3V0ICsgZXh0cmFDb3JuZXJDdXQpIC8gZGJ1cGVydXUpKSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbmlrb25JZCAibHJOaWtvbiIgKCgobCAtIHBhZEVuY05pa29uKSAvIGRidXBlcnV1KToocGFkRW5jTmlrb24gLyBkYnVwZXJ1dSkpICJNWSIgMSBuaWwpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChjdXRQb2ludHMgPSBuaWwpIGZvcmVhY2gocG9pbnQgKHRoZU1hc3Rlcn4+b3V0bGluZVBvaW50cykgKGN1dFBvaW50cyA9IGNvbnMoKChsIC0gcGFkRW5jTmlrb24gLSBmaXgoKGRidXBlcnV1ICogY2FyKHBvaW50KSkpKToocGFkRW5jTmlrb24gKyBmaXgoKGRidXBlcnV1ICogY2Fkcihwb2ludCkpKSkpIGN1dFBvaW50cykpKSAocmVhbEN1dFBvaW50cyA9IG5pbCkgZm9yZWFjaChwb2ludCBjdXRQb2ludHMgKHJlYWxDdXRQb2ludHMgPSBjb25zKCgoY2FyKHBvaW50KSAvIGRidXBlcnV1KTooY2Fkcihwb2ludCkgLyBkYnVwZXJ1dSkpIHJlYWxDdXRQb2ludHMpKSkgKHJlYWxDdXRQb2ludHMgPSByZXZlcnNlKHJlYWxDdXRQb2ludHMpKSAocGFkTGF5ZXJJZF8yID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHBhZExheWVyIGNvbnMoKChsIC8gZGJ1cGVydXUpOjAuMCkgYXBwZW5kKHJlYWxDdXRQb2ludHMgbGlzdChjYXIocmVhbEN1dFBvaW50cykgKChsIC8gZGJ1cGVydXUpOjAuMCkgKCgobCAtIGNvcm5lckN1dCAtIGV4dHJhQ29ybmVyQ3V0KSAvIGRidXBlcnV1KTowLjApICgobCAvIGRidXBlcnV1KTooKGNvcm5lckN1dCArIGV4dHJhQ29ybmVyQ3V0KSAvIGRidXBlcnV1KSkpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IG5pa29uSWQgInVyTmlrb24iICgoKGwgLSBwYWRFbmNOaWtvbikgLyBkYnVwZXJ1dSk6KCh3IC0gcGFkRW5jTmlrb24pIC8gZGJ1cGVydXUpKSAiUjE4MCIgMSBuaWwpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChjdXRQb2ludHMgPSBuaWwpIGZvcmVhY2gocG9pbnQgKHRoZU1hc3Rlcn4+b3V0bGluZVBvaW50cykgKGN1dFBvaW50cyA9IGNvbnMoKChsIC0gcGFkRW5jTmlrb24gLSBmaXgoKGRidXBlcnV1ICogY2FyKHBvaW50KSkpKToodyAtIHBhZEVuY05pa29uIC0gZml4KChkYnVwZXJ1dSAqIGNhZHIocG9pbnQpKSkpKSBjdXRQb2ludHMpKSkgKHJlYWxDdXRQb2ludHMgPSBuaWwpIGZvcmVhY2gocG9pbnQgY3V0UG9pbnRzIChyZWFsQ3V0UG9pbnRzID0gY29ucygoKGNhcihwb2ludCkgLyBkYnVwZXJ1dSk6KGNhZHIocG9pbnQpIC8gZGJ1cGVydXUpKSByZWFsQ3V0UG9pbnRzKSkpIChyZWFsQ3V0UG9pbnRzID0gcmV2ZXJzZShyZWFsQ3V0UG9pbnRzKSkgKHBhZExheWVySWRfMyA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBwYWRMYXllciBjb25zKCgobCAvIGRidXBlcnV1KToodyAvIGRidXBlcnV1KSkgYXBwZW5kKHJlYWxDdXRQb2ludHMgbGlzdChjYXIocmVhbEN1dFBvaW50cykgKChsIC8gZGJ1cGVydXUpOih3IC8gZGJ1cGVydXUpKSAoKChsIC0gY29ybmVyQ3V0IC0gZXh0cmFDb3JuZXJDdXQpIC8gZGJ1cGVydXUpOih3IC8gZGJ1cGVydXUpKSAoKGwgLyBkYnVwZXJ1dSk6KCh3IC0gY29ybmVyQ3V0IC0gZXh0cmFDb3JuZXJDdXQpIC8gZGJ1cGVydXUpKSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbmlrb25JZCAidWxOaWtvbiIgKChwYWRFbmNOaWtvbiAvIGRidXBlcnV1KTooKHcgLSBwYWRFbmNOaWtvbikgLyBkYnVwZXJ1dSkpICJNWCIgMSBuaWwpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChjdXRQb2ludHMgPSBuaWwpIGZvcmVhY2gocG9pbnQgKHRoZU1hc3Rlcn4+b3V0bGluZVBvaW50cykgKGN1dFBvaW50cyA9IGNvbnMoKChwYWRFbmNOaWtvbiArIGZpeCgoY2FyKHBvaW50KSAqIGRidXBlcnV1KSkpOih3IC0gcGFkRW5jTmlrb24gLSBmaXgoKGRidXBlcnV1ICogY2Fkcihwb2ludCkpKSkpIGN1dFBvaW50cykpKSAocmVhbEN1dFBvaW50cyA9IG5pbCkgZm9yZWFjaChwb2ludCBjdXRQb2ludHMgKHJlYWxDdXRQb2ludHMgPSBjb25zKCgoY2FyKHBvaW50KSAvIGRidXBlcnV1KTooY2Fkcihwb2ludCkgLyBkYnVwZXJ1dSkpIHJlYWxDdXRQb2ludHMpKSkgKHJlYWxDdXRQb2ludHMgPSByZXZlcnNlKHJlYWxDdXRQb2ludHMpKSAocGFkTGF5ZXJJZF80ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHBhZExheWVyIGNvbnMoKDAuMDoodyAvIGRidXBlcnV1KSkgYXBwZW5kKHJlYWxDdXRQb2ludHMgbGlzdChjYXIocmVhbEN1dFBvaW50cykgKDAuMDoodyAvIGRidXBlcnV1KSkgKCgoY29ybmVyQ3V0ICsgZXh0cmFDb3JuZXJDdXQpIC8gZGJ1cGVydXUpOih3IC8gZGJ1cGVydXUpKSAoMC4wOigodyAtIGNvcm5lckN1dCAtIGV4dHJhQ29ybmVyQ3V0KSAvIGRidXBlcnV1KSkpKSkpKSBpZigoKGxhc2VyVGFyZ2V0c0RlZiAhPSAiT04iKSAmJiAobGFzZXJUYXJnZXRzRGVmICE9ICJPRkYiKSkgdGhlbiBlcnJvcigiZGllU2VhbFJpbmdDbGFzc0FkdjogSW52YWxpZCB2YWx1ZSBmb3IgbGFzZXJUYXJnZXRzXG4iKSkgaWYoKGxhc2VyVGFyZ2V0c0VuICYmIChsYXNlclRhcmdldHNEZWYgPT0gIk9OIikpIHRoZW4gKGxhc2VyVGFyZ2V0SWRYID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGxhc2VyVGFyZ2V0WE5hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIChsYXNlclRhcmdldElkWSA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBsYXNlclRhcmdldFlOYW1lICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MobGFzZXJUYXJnZXRJZFggZXJyb3IoImRpZVNlYWxSaW5nQ2xhc3NBZHY6ICBDYW5ub3QgZmluZC9vcGVuIGxhc2VyIHRhcmdldCAlc1xuIiBsYXNlclRhcmdldFhOYW1lKSkgdW5sZXNzKChsYXNlclRhcmdldElkWH4+aXNQYXJhbUNlbGwpIGVycm9yKCJkaWVTZWFsUmluZ0NsYXNzQWR2OiAgTGFzZXIgdGFyZ2V0ICVzIGlzIG5vdCBhIHBjZWxsXG4iIGxhc2VyVGFyZ2V0WE5hbWUpKSB1bmxlc3MobGFzZXJUYXJnZXRJZFkgZXJyb3IoImRpZVNlYWxSaW5nQ2xhc3NBZHY6ICBDYW5ub3QgZmluZC9vcGVuIGxhc2VyIHRhcmdldCAlc1xuIiBsYXNlclRhcmdldFlOYW1lKSkgdW5sZXNzKChsYXNlclRhcmdldElkWX4+aXNQYXJhbUNlbGwpIGVycm9yKCJkaWVTZWFsUmluZ0NsYXNzQWR2OiAgTGFzZXIgdGFyZ2V0ICVzIGlzIG5vdCBhIHBjZWxsXG4iIGxhc2VyVGFyZ2V0WU5hbWUpKSAobWF4UmluZ1NwYWNlID0gMC4wKSBmb3JlYWNoKGxheWVyIHNvbGlkTGF5ZXJSaW5nIChyaW5nV2lkdGggPSBjYWRkcihsYXllcikpIChzcGFjZUZyb21FZGdlID0gY2FkcihsYXllcikpIChyaW5nU3BhY2UgPSAoKHJpbmdXaWR0aCArIHNwYWNlRnJvbUVkZ2UpICogZGJ1cGVydXUpKSBpZigocmluZ1NwYWNlID4gbWF4UmluZ1NwYWNlKSB0aGVuIChtYXhSaW5nU3BhY2UgPSByaW5nU3BhY2UpKSkgKHRvdGFsT2Zmc2V0ID0gKChjb3JuZXJDdXQgKyBleHRyYUNvcm5lckN1dCArIChzMiAqIG1heFJpbmdTcGFjZSkpIC8gMi4wKSkgKHRvdGFsT2Zmc2V0ID0gKCgoY2VpbGluZyAodG90YWxPZmZzZXQgLyBwYWRHcmlkRmxvYXQpKSAqIHBhZEdyaWQpIC8gZGJ1cGVydXUpKSAodG90YWxPZmZzZXQgPSAodG90YWxPZmZzZXQgKyAobGFzZXJPZmZzZXQgLyAyLjApKSkgKGx0QmJveFggPSAobGFzZXJUYXJnZXRJZFh+PmJCb3gpKSAobHRXaWR0aFggPSAobnRoKDEgbnRoKDEgbHRCYm94WCkpIC0gbnRoKDEgbnRoKDAgbHRCYm94WCkpKSkgKGx0SGVpZ2h0WCA9IChudGgoMCBudGgoMSBsdEJib3hYKSkgLSBudGgoMCBudGgoMCBsdEJib3hYKSkpKSAobHRCYm94WSA9IChsYXNlclRhcmdldElkWX4+YkJveCkpIChsdFdpZHRoWSA9IChudGgoMSBudGgoMSBsdEJib3hZKSkgLSBudGgoMSBudGgoMCBsdEJib3hZKSkpKSAobHRIZWlnaHRZID0gKG50aCgwIG50aCgxIGx0QmJveFkpKSAtIG50aCgwIG50aCgwIGx0QmJveFkpKSkpIGlmKChsYXNlclRhcmdldHNPcmllbnQgPT0gIlIwIikgdGhlbiAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9TVyIgKHRvdGFsT2Zmc2V0OnRvdGFsT2Zmc2V0KSAiUjAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWSAibGF6WV9TVyIgKCh0b3RhbE9mZnNldCArIGx0V2lkdGhYKTp0b3RhbE9mZnNldCkgIlIwIiAxIG5pbCkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFggImxhelhfTlciICh0b3RhbE9mZnNldDood2lkIC0gdG90YWxPZmZzZXQgLSBsdEhlaWdodFgpKSAiUjAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWSAibGF6WV9OVyIgKCh0b3RhbE9mZnNldCArIGx0V2lkdGhYKTood2lkIC0gdG90YWxPZmZzZXQgLSBsdEhlaWdodFkpKSAiUjAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9ORSIgKChsZW4gLSB0b3RhbE9mZnNldCk6KHdpZCAtIHRvdGFsT2Zmc2V0KSkgIlIxODAiIDEgbmlsKSkgaWYoKGxhc2VyVGFyZ2V0c09yaWVudCA9PSAiUjkwIikgdGhlbiAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9OVyIgKHRvdGFsT2Zmc2V0Oih3aWQgLSB0b3RhbE9mZnNldCAtIGx0SGVpZ2h0WCkpICJSMCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRZICJsYXpZX05XIiAoKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpOih3aWQgLSB0b3RhbE9mZnNldCAtIGx0SGVpZ2h0WSkpICJSMCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRYICJsYXpYX05FIiAoKGxlbiAtIHRvdGFsT2Zmc2V0KTood2lkIC0gdG90YWxPZmZzZXQpKSAiUjE4MCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRZICJsYXpZX05FIiAoKGxlbiAtICh0b3RhbE9mZnNldCArIGx0V2lkdGhYKSk6KHdpZCAtIHRvdGFsT2Zmc2V0KSkgIlIxODAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9TRSIgKChsZW4gLSB0b3RhbE9mZnNldCk6KHRvdGFsT2Zmc2V0ICsgbHRIZWlnaHRYKSkgIlIxODAiIDEgbmlsKSkgaWYoKGxhc2VyVGFyZ2V0c09yaWVudCA9PSAiUjE4MCIpIHRoZW4gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFggImxhelhfTkUiICgobGVuIC0gdG90YWxPZmZzZXQpOih3aWQgLSB0b3RhbE9mZnNldCkpICJSMTgwIiAxIG5pbCkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFkgImxhellfTkUiICgobGVuIC0gKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpKTood2lkIC0gdG90YWxPZmZzZXQpKSAiUjE4MCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRYICJsYXpYX1NFIiAoKGxlbiAtIHRvdGFsT2Zmc2V0KToodG90YWxPZmZzZXQgKyBsdEhlaWdodFgpKSAiUjE4MCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRZICJsYXpZX1NFIiAoKGxlbiAtICh0b3RhbE9mZnNldCArIGx0V2lkdGhYKSk6KHRvdGFsT2Zmc2V0ICsgbHRIZWlnaHRZKSkgIlIxODAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9TVyIgKHRvdGFsT2Zmc2V0OnRvdGFsT2Zmc2V0KSAiUjAiIDEgbmlsKSkgaWYoKGxhc2VyVGFyZ2V0c09yaWVudCA9PSAiUjI3MCIpIHRoZW4gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFggImxhelhfU0UiICgobGVuIC0gdG90YWxPZmZzZXQpOih0b3RhbE9mZnNldCArIGx0SGVpZ2h0WCkpICJSMTgwIiAxIG5pbCkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFkgImxhellfU0UiICgobGVuIC0gKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpKToodG90YWxPZmZzZXQgKyBsdEhlaWdodFkpKSAiUjE4MCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRYICJsYXpYX1NXIiAodG90YWxPZmZzZXQ6dG90YWxPZmZzZXQpICJSMCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRZICJsYXpZX1NXIiAoKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpOnRvdGFsT2Zmc2V0KSAiUjAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9OVyIgKHRvdGFsT2Zmc2V0Oih3aWQgLSB0b3RhbE9mZnNldCAtIGx0SGVpZ2h0WCkpICJSMCIgMSBuaWwpKSBpZigobGFzZXJUYXJnZXRzT3JpZW50ID09ICJNWCIpIHRoZW4gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFggImxhelhfTkUiICgobGVuIC0gdG90YWxPZmZzZXQpOih3aWQgLSB0b3RhbE9mZnNldCkpICJSMTgwIiAxIG5pbCkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFkgImxhellfTkUiICgobGVuIC0gKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpKTood2lkIC0gdG90YWxPZmZzZXQpKSAiUjE4MCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRYICJsYXpYX1NFIiAoKGxlbiAtIHRvdGFsT2Zmc2V0KToodG90YWxPZmZzZXQgKyBsdEhlaWdodFgpKSAiUjE4MCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRZICJsYXpZX1NFIiAoKGxlbiAtICh0b3RhbE9mZnNldCArIGx0V2lkdGhYKSk6KHRvdGFsT2Zmc2V0ICsgbHRIZWlnaHRZKSkgIlIxODAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9OVyIgKHRvdGFsT2Zmc2V0Oih3aWQgLSB0b3RhbE9mZnNldCAtIGx0SGVpZ2h0WCkpICJSMCIgMSBuaWwpKSBpZigobGFzZXJUYXJnZXRzT3JpZW50ID09ICJNWFI5MCIpIHRoZW4gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFggImxhelhfU0UiICgobGVuIC0gdG90YWxPZmZzZXQpOih0b3RhbE9mZnNldCArIGx0SGVpZ2h0WCkpICJSMTgwIiAxIG5pbCkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFkgImxhellfU0UiICgobGVuIC0gKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpKToodG90YWxPZmZzZXQgKyBsdEhlaWdodFkpKSAiUjE4MCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRYICJsYXpYX1NXIiAodG90YWxPZmZzZXQ6dG90YWxPZmZzZXQpICJSMCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRZICJsYXpZX1NXIiAoKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpOnRvdGFsT2Zmc2V0KSAiUjAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9ORSIgKChsZW4gLSB0b3RhbE9mZnNldCk6KHdpZCAtIHRvdGFsT2Zmc2V0KSkgIlIxODAiIDEgbmlsKSkgaWYoKGxhc2VyVGFyZ2V0c09yaWVudCA9PSAiTVkiKSB0aGVuIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRYICJsYXpYX1NXIiAodG90YWxPZmZzZXQ6dG90YWxPZmZzZXQpICJSMCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRZICJsYXpZX1NXIiAoKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpOnRvdGFsT2Zmc2V0KSAiUjAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9OVyIgKHRvdGFsT2Zmc2V0Oih3aWQgLSB0b3RhbE9mZnNldCAtIGx0SGVpZ2h0WCkpICJSMCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRZICJsYXpZX05XIiAoKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpOih3aWQgLSB0b3RhbE9mZnNldCAtIGx0SGVpZ2h0WSkpICJSMCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRYICJsYXpYX1NFIiAoKGxlbiAtIHRvdGFsT2Zmc2V0KToodG90YWxPZmZzZXQgKyBsdEhlaWdodFgpKSAiUjE4MCIgMSBuaWwpKSBpZigobGFzZXJUYXJnZXRzT3JpZW50ID09ICJNWVI5MCIpIHRoZW4gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFggImxhelhfTlciICh0b3RhbE9mZnNldDood2lkIC0gdG90YWxPZmZzZXQgLSBsdEhlaWdodFgpKSAiUjAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWSAibGF6WV9OVyIgKCh0b3RhbE9mZnNldCArIGx0V2lkdGhYKTood2lkIC0gdG90YWxPZmZzZXQgLSBsdEhlaWdodFkpKSAiUjAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9ORSIgKChsZW4gLSB0b3RhbE9mZnNldCk6KHdpZCAtIHRvdGFsT2Zmc2V0KSkgIlIxODAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWSAibGF6WV9ORSIgKChsZW4gLSAodG90YWxPZmZzZXQgKyBsdFdpZHRoWCkpOih3aWQgLSB0b3RhbE9mZnNldCkpICJSMTgwIiAxIG5pbCkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFggImxhelhfU1ciICh0b3RhbE9mZnNldDp0b3RhbE9mZnNldCkgIlIwIiAxIG5pbCkpIChkYkNsb3NlIGxhc2VyVGFyZ2V0SWRYKSAoZGJDbG9zZSBsYXNlclRhcmdldElkWSkpIChyaW5nQ291bnQgPSAwKSBmb3JlYWNoKGxheWVyIGludFJpbmdMYXllcnMgKHNwYWNpbmcgPSBjYWRyKGxheWVyKSkgKHJpbmdXaWR0aCA9IGNhZGRyKGxheWVyKSkgKGdyaWQgPSBudGgoNCBsYXllcikpIChleHRyYU9mZnNldCA9IGZpeCgoc3BhY2luZyAqIChzMiAtIDEuMCkpKSkgKGJldmVsTGVuZ3RoID0gKGNvcm5lckN1dCArICgtIHNwYWNpbmcpICsgZXh0cmFPZmZzZXQpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCBzcHJpbnRmKG5pbCAicmluZyVkIiByaW5nQ291bnQpICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiaW50IiBmaXgoKHcgLSAoMiAqIHNwYWNpbmcpKSkpIGxpc3QoImwiICJpbnQiIGZpeCgobCAtICgyICogc3BhY2luZykpKSkgbGlzdCgieE9mZnNldCIgImludCIgc3BhY2luZykgbGlzdCgieU9mZnNldCIgImludCIgc3BhY2luZykgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJpbnQiIHJpbmdXaWR0aCkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImludCIgMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImludCIgKGV4dHJhQ29ybmVyQ3V0ICsgYmV2ZWxMZW5ndGgpKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiaW50IiAoZXh0cmFDb3JuZXJDdXQgKyBiZXZlbExlbmd0aCkpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJpbnQiIChleHRyYUNvcm5lckN1dCArIGJldmVsTGVuZ3RoKSkgbGlzdCgidXJCZXZlbExlbmd0aCIgImludCIgKGV4dHJhQ29ybmVyQ3V0ICsgYmV2ZWxMZW5ndGgpKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiaW50IiBncmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQxID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiaWQyID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiaWQ0ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZDEgbmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBuZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQzIG5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDQgbmV0KSB3aGVuKG50aCgzIGxheWVyKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiaWQxKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbmlkID0gKGRiQ3JlYXRlUGluIG5ldCBkYmlkMikpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJpZDMpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiaWQ0KSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikpIChyaW5nQ291bnQgPSAocmluZ0NvdW50ICsgMSkpKSB3aGVuKGxpc3RwKGRpc2NyZXRlQ29udGFjdFJpbmcpIChyaW5nQ291bnQgPSAwKSBmb3JlYWNoKGxheWVyIGRpc2NyZXRlQ29udGFjdFJpbmcgKGNvbnRhY3QxTGF5ZXIgPSBudGgoMCBsYXllcikpIChjb250YWN0MkxheWVyID0gbnRoKDEgbGF5ZXIpKSAoY29uMmNvbjFFbmNYID0gbnRoKDIgbGF5ZXIpKSAoY29uMmNvbjFFbmNZID0gbnRoKDMgbGF5ZXIpKSAoc3BhY2luZ0xpc3QgPSBudGgoNCBsYXllcikpIChjb250YWN0MVdpZHRoID0gbnRoKDUgbGF5ZXIpKSAoY29udGFjdDFMZW5ndGggPSBudGgoNiBsYXllcikpIChjb250YWN0MVJvd3MgPSBudGgoNyBsYXllcikpIChjb250YWN0MU9mZnNldFggPSBudGgoOCBsYXllcikpIChjb250YWN0MU9mZnNldFkgPSBudGgoOSBsYXllcikpIChjb250YWN0MVNwYWNlWCA9IG50aCgxMCBsYXllcikpIChjb250YWN0MVNwYWNlWSA9IG50aCgxMSBsYXllcikpIChjb250YWN0MlJvd3MgPSBudGgoMTIgbGF5ZXIpKSAoY29udGFjdDJPZmZzZXRYID0gbnRoKDEzIGxheWVyKSkgKGNvbnRhY3QyT2Zmc2V0WSA9IG50aCgxNCBsYXllcikpIChjb250YWN0MlNwYWNlWCA9IG50aCgxNSBsYXllcikpIChjb250YWN0MlNwYWNlWSA9IG50aCgxNiBsYXllcikpIChncmlkID0gbnRoKDE3IGxheWVyKSkgaWYobnRoKDE5IGxheWVyKSAobnVtUm93c0luQmV2ZWwgPSBudGgoMTkgbGF5ZXIpKSAobnVtUm93c0luQmV2ZWwgPSBudGgoMTggbGF5ZXIpKSkgd2hlbighbGlzdHAoc3BhY2luZ0xpc3QpIChzcGFjaW5nTGlzdCA9IGxpc3Qoc3BhY2luZ0xpc3QpKSkgZm9yZWFjaChzcGFjaW5nIHNwYWNpbmdMaXN0IChleHRyYU9mZnNldCA9IGZpeCgoKHNwYWNpbmcgKiBkYnVwZXJ1dSkgKiAodGcyMl81IC0gMSkpKSkgKGJldmVsTGVuZ3RoID0gKGNvcm5lckN1dCArIGJldmVsQWRkICsgZXh0cmFPZmZzZXQpKSAoYmV2ZWxMZW5ndGggPSAoYmV2ZWxMZW5ndGggLyBkYnVwZXJ1dSkpIChiZXZlbExlbmd0aCA9IChmaXgoKChiZXZlbExlbmd0aCAvIGdyaWQpICsgMWUtMDYpKSAqIGdyaWQpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGNvbnRhY3RSaW5nSWQgc3ByaW50ZihuaWwgImNvbnRhY3QlZCIgcmluZ0NvdW50KSAoc3BhY2luZzpzcGFjaW5nKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiICh3aWQgLSAoMiAqIHNwYWNpbmcpKSkgbGlzdCgibCIgImZsb2F0IiAobGVuIC0gKDIgKiBzcGFjaW5nKSkpIGxpc3QoImJldmVsTGVuZ3RoIiAiZmxvYXQiIChleHRyYUNvcm5lckN1dF9vcmlnICsgYmV2ZWxMZW5ndGgpKSBsaXN0KCJjb250YWN0MUxheWVyIiAibGlzdCIgY29udGFjdDFMYXllcikgbGlzdCgiY29udGFjdDJMYXllciIgImxpc3QiIGNvbnRhY3QyTGF5ZXIpIGxpc3QoImNvbjJjb24xRW5jWCIgImZsb2F0IiBjb24yY29uMUVuY1gpIGxpc3QoImNvbjJjb24xRW5jWSIgImZsb2F0IiBjb24yY29uMUVuY1kpIGxpc3QoImNvbnRhY3QxV2lkdGgiICJmbG9hdCIgY29udGFjdDFXaWR0aCkgbGlzdCgiY29udGFjdDFMZW5ndGgiICJmbG9hdCIgY29udGFjdDFMZW5ndGgpIGxpc3QoImNvbnRhY3QxUm93cyIgImludCIgY29udGFjdDFSb3dzKSBsaXN0KCJjb250YWN0MU9mZnNldFgiICJmbG9hdCIgY29udGFjdDFPZmZzZXRYKSBsaXN0KCJjb250YWN0MU9mZnNldFkiICJmbG9hdCIgY29udGFjdDFPZmZzZXRZKSBsaXN0KCJjb250YWN0MVNwYWNlWSIgImZsb2F0IiBjb250YWN0MVNwYWNlWSkgbGlzdCgiY29udGFjdDFTcGFjZVgiICJmbG9hdCIgY29udGFjdDFTcGFjZVgpIGxpc3QoImNvbnRhY3QyUm93cyIgImludCIgY29udGFjdDJSb3dzKSBsaXN0KCJjb250YWN0Mk9mZnNldFgiICJmbG9hdCIgY29udGFjdDJPZmZzZXRYKSBsaXN0KCJjb250YWN0Mk9mZnNldFkiICJmbG9hdCIgY29udGFjdDJPZmZzZXRZKSBsaXN0KCJjb250YWN0MlNwYWNlWSIgImZsb2F0IiBjb250YWN0MlNwYWNlWSkgbGlzdCgiY29udGFjdDJTcGFjZVgiICJmbG9hdCIgY29udGFjdDJTcGFjZVgpIGxpc3QoImdyaWQiICJmbG9hdCIgZ3JpZCkgbGlzdCgibnVtUm93c0luQmV2ZWwiICJpbnQiIG51bVJvd3NJbkJldmVsKSkpKSAocmluZ0NvdW50ID0gKHJpbmdDb3VudCArIDEpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAic2VhbGlkIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImludCIgdykgbGlzdCgibCIgImludCIgbCkgbGlzdCgieE9mZnNldCIgImludCIgMCkgbGlzdCgieU9mZnNldCIgImludCIgMCkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJpbnQiIHNlYWxyaW5nSWRXaWR0aCkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImludCIgMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImludCIgKGNvcm5lckN1dCArIGV4dHJhQ29ybmVyQ3V0KSkgbGlzdCgidWxCZXZlbExlbmd0aCIgImludCIgKGNvcm5lckN1dCArIGV4dHJhQ29ybmVyQ3V0KSkgbGlzdCgibHJCZXZlbExlbmd0aCIgImludCIgKGNvcm5lckN1dCArIGV4dHJhQ29ybmVyQ3V0KSkgbGlzdCgidXJCZXZlbExlbmd0aCIgImludCIgKGNvcm5lckN1dCArIGV4dHJhQ29ybmVyQ3V0KSkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImludCIgZml4KChkYnVwZXJ1dSAqIHNlYWxyaW5nR3JpZCkpKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpIHdoZW4oc2VhbHJpbmdJZExheWVyICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHNlYWxyaW5nSWRMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpIChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBzZWFscmluZ0lkTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgc2VhbHJpbmdJZExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHNlYWxyaW5nSWRMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJDbG9zZSByaW5nSWQpIChkYkNsb3NlIG5pa29uSWQpKQAoc29saWRMYXllclJpbmcgZGlzY3JldGVDb250YWN0UmluZyBzZWFscmluZ0lkTGF5ZXIgc2VhbHJpbmdJZFdpZHRoIHNlYWxyaW5nR3JpZCBnZW5lcmljUmluZ05hbWUgbmlrb25Dcm9zc05hbWUgZGlzY3JldGVDb250YWN0UmluZ05hbWUgbGFzZXJUYXJnZXRYTmFtZSBsYXNlclRhcmdldFlOYW1lIGxhc2VyT2Zmc2V0IHBhZExheWVyIHBhZEdyaWQgcGFkRW5jTmlrb24gcGFkRW5jTmlrb25JbnNpZGUgcmRMYXllciByY0xheWVyIGRMYXllciBzY2FsZUYgY3JpdGljYWxMIGRlZlJkIGRlZlJjIGRlZkQgZml4UmMgdyBsIGV4dHJhQ29ybmVyQ3V0IGxhc2VyVGFyZ2V0c0RlZiBsYXNlclRhcmdldHNFbiBsYXNlclRhcmdldHNPcmllbnQgZXh0cmFDb3JuZXJDdXRfb3JpZyB0ZzIyXzUgZGJ1cGVydXUgZ3JpZCBzMiBwYXJhbSBuZXQgbWluU2VhbFJpbmdJZFdpZHRoIHJpbmdJZCBjb250YWN0UmluZ0lkIG5pa29uSWQgbGF5ZXIgdGhpc0xwcCByaW5nV2lkdGggbWFrZVBpbiBsYXlHcmlkIHNwYWNpbmdMaXN0IFNQIHNwYWNpbmcgaW50UmluZ0xheWVycyBsZW4gd2lkIHNtYWxsZGllIGFyIHJkIHJjIGQgZGJpZCB0aGVNYXN0ZXIgY3V0UG9pbnRzIHBvaW50IGNvcm5lckN1dCBiZXZlbEFkZCBiZXZlbExlbmd0aCBtaW5CZXZlbFJlcXVpcmVkIGJldmVsQWpkdXN0IHBhZEdyaWRGbG9hdCByZWFsQ3V0UG9pbnRzIHBhZExheWVySWRfMSBwYWRMYXllcklkXzIgcGFkTGF5ZXJJZF8zIHBhZExheWVySWRfNCBsYXNlclRhcmdldElkWCBsYXNlclRhcmdldElkWSBtYXhSaW5nU3BhY2Ugc3BhY2VGcm9tRWRnZSByaW5nU3BhY2UgdG90YWxPZmZzZXQgbHRCYm94WCBsdFdpZHRoWCBsdEhlaWdodFggbHRCYm94WSBsdFdpZHRoWSBsdEhlaWdodFkgcmluZ0NvdW50IGV4dHJhT2Zmc2V0IGRiaWQxIGRiaWQyIGRiaWQzIGRiaWQ0IHBpbmlkIGNvbnRhY3QxTGF5ZXIgY29udGFjdDJMYXllciBjb24yY29uMUVuY1ggY29uMmNvbjFFbmNZIGNvbnRhY3QxV2lkdGggY29udGFjdDFMZW5ndGggY29udGFjdDFSb3dzIGNvbnRhY3QxT2Zmc2V0WCBjb250YWN0MU9mZnNldFkgY29udGFjdDFTcGFjZVggY29udGFjdDFTcGFjZVkgY29udGFjdDJSb3dzIGNvbnRhY3QyT2Zmc2V0WCBjb250YWN0Mk9mZnNldFkgY29udGFjdDJTcGFjZVggY29udGFjdDJTcGFjZVkgbnVtUm93c0luQmV2ZWwpACgodyAwLjApIChsIDAuMCkgKGV4dHJhQ29ybmVyQ3V0IDAuMCkgKGxhc2VyVGFyZ2V0c0RlZiAiT0ZGIikgKGxhc2VyVGFyZ2V0c0VuIG5pbCkgKGxhc2VyVGFyZ2V0c09yaWVudCBuaWwpKQAoKHNvbGlkTGF5ZXJSaW5nICcoJygoInRhcCIgImRyYXdpbmciKSA1LjAgMy4wIG5pbCAwLjA1KSAnKCgibWV0MSIgImRyYXdpbmciKSAoMS4zIDMuNCA2LjApIDIuNSBuaWwgMC4wNSkgJygoIm1ldDIiICJkcmF3aW5nIikgNS41IDQuMCB0IDAuMDUpKSkgKGRpc2NyZXRlQ29udGFjdFJpbmcgbmlsKSAoc2VhbHJpbmdJZExheWVyIGxpc3QoInkxIiAiZHJhd2luZyIpKSAoc2VhbHJpbmdJZFdpZHRoIDAuMCkgKHNlYWxyaW5nR3JpZCAwLjApIChnZW5lcmljUmluZ05hbWUgIiIpIChuaWtvbkNyb3NzTmFtZSAiIikgKGRpc2NyZXRlQ29udGFjdFJpbmdOYW1lICIiKSAobGFzZXJUYXJnZXRYTmFtZSAiIikgKGxhc2VyVGFyZ2V0WU5hbWUgIiIpIChsYXNlck9mZnNldCAwLjApIChwYWRMYXllciBsaXN0KCJ5MCIgImRyYXdpbmciKSkgKHBhZEdyaWQgMC4wKSAocGFkRW5jTmlrb24gMC4wKSAocGFkRW5jTmlrb25JbnNpZGUgMC4wKSAocmRMYXllciBuaWwpIChyY0xheWVyIG5pbCkgKGRMYXllciBuaWwpIChzY2FsZUYgMSkgKGNyaXRpY2FsTCA1MDgwLjApIChkZWZSZCAwLjApIChkZWZSYyAxNTIuNCkgKGRlZkQgMTAxLjYpIChmaXhSYyBuaWwpKQAoKHMyID0gc3FydCgyLjApKSAoY29udGFjdDFSb3dzID0gbWF4KDEgY29udGFjdDFSb3dzKSkgKGNvbnRhY3QxUGl0Y2hZID0gKGNvbnRhY3QxV2lkdGggKyBjb250YWN0MVNwYWNlWSkpIChjb250YWN0MVBpdGNoWCA9IChjb250YWN0MUxlbmd0aCArIGNvbnRhY3QxU3BhY2VYKSkgKGNvbnRhY3QyUGl0Y2hZID0gKGNvbnRhY3QxV2lkdGggKyBjb250YWN0MlNwYWNlWSkpIChjb250YWN0MlBpdGNoWCA9IChjb250YWN0MUxlbmd0aCArIGNvbnRhY3QyU3BhY2VYKSkgKHJpbmdXaWR0aCA9IG1heCgwLjAgKChjb250YWN0MVJvd3MgKiBjb250YWN0MVBpdGNoWSkgLSBjb250YWN0MVNwYWNlWSkgKChjb250YWN0MlJvd3MgKiBjb250YWN0MlBpdGNoWSkgLSBjb250YWN0MlNwYWNlWSkpKSAoYmV2ZWxMZW5ndGggPSBtYXgoYmV2ZWxMZW5ndGggKHJpbmdXaWR0aCArIGNvbnRhY3QxU3BhY2VYKSAocmluZ1dpZHRoICsgY29udGFjdDJTcGFjZVgpKSkgd2hlbigobnVtUm93c0luQmV2ZWwgPD0gMCkgKG51bVJvd3NJbkJldmVsID0gbWF4KDEgKChjb250YWN0MVJvd3MgKyBjb250YWN0MlJvd3MpIC0gMSkpKSkgKG5vUml2ZXRzID0gaWYoKGNvbnRhY3QyUm93cyA+IDApIDIgMSkpIChzcE9mZnNldCA9IChjb250YWN0MVNwYWNlWCAqICgxIC0gKDEgLyBzMikpKSkgKHNwT2Zmc2V0ID0gKChjZWlsaW5nICgoc3BPZmZzZXQgLyBncmlkKSArIDFlLTA2KSkgKiBncmlkKSkgZm9yKGNvbnRhY3ROIDEgbm9SaXZldHMgKGNvbnRhY3RQaXRjaFkgPSBpZigoY29udGFjdE4gPT0gMSkgY29udGFjdDFQaXRjaFkgY29udGFjdDJQaXRjaFkpKSAoY29udGFjdFBpdGNoWCA9IGlmKChjb250YWN0TiA9PSAxKSBjb250YWN0MVBpdGNoWCBjb250YWN0MlBpdGNoWCkpIChjb250YWN0U3BhY2VYID0gaWYoKGNvbnRhY3ROID09IDEpIGNvbnRhY3QxU3BhY2VYIGNvbnRhY3QyU3BhY2VYKSkgKGNvbnRhY3RTcGFjZVkgPSBpZigoY29udGFjdE4gPT0gMSkgY29udGFjdDFTcGFjZVkgY29udGFjdDJTcGFjZVkpKSAoeE9mZnNldCA9IGlmKChjb250YWN0TiA9PSAxKSBjb250YWN0MU9mZnNldFggY29udGFjdDJPZmZzZXRYKSkgKHlPZmZzZXQgPSBpZigoY29udGFjdE4gPT0gMSkgY29udGFjdDFPZmZzZXRZIGNvbnRhY3QyT2Zmc2V0WSkpIChudW1Sb3dzID0gaWYoKGNvbnRhY3ROID09IDEpIGNvbnRhY3QxUm93cyBjb250YWN0MlJvd3MpKSB3aGVuKChjb250YWN0TiA9PSAxKSAodXNlZEwgPSAobCAtICgyICogKHNwT2Zmc2V0ICsgYmV2ZWxMZW5ndGgpKSkpIChudW1Db2xCID0gbWF4KDEgZml4KCgoKHVzZWRMICsgY29udGFjdFNwYWNlWCkgLyBjb250YWN0UGl0Y2hYKSArIDFlLTA2KSkpKSAoY29udGFjdFNpZGVMQiA9ICgobnVtQ29sQiAqIGNvbnRhY3RQaXRjaFgpIC0gY29udGFjdFNwYWNlWCkpIChudW1Db2xPZmZzZXRCID0gKCh1c2VkTCAtIGNvbnRhY3RTaWRlTEIpIC8gMikpIChudW1Db2xPZmZzZXRCID0gKGZpeCgoKG51bUNvbE9mZnNldEIgLyBncmlkKSArIDFlLTA2KSkgKiBncmlkKSkpICh4T3JpZ2luQiA9IChudW1Db2xPZmZzZXRCICsgYmV2ZWxMZW5ndGggKyB4T2Zmc2V0ICsgc3BPZmZzZXQpKSAoeU9yaWdpbkIgPSB5T2Zmc2V0KSAoeU9yaWdpblQgPSAodyAtIHlPZmZzZXQpKSAoWTBfYm90dG9tID0geU9yaWdpbkIpIChZMF90b3AgPSB5T3JpZ2luVCkgZm9yKHJvdyAxIG51bVJvd3MgKFgwID0geE9yaWdpbkIpIChZMV9ib3R0b20gPSAoWTBfYm90dG9tICsgY29udGFjdDFXaWR0aCkpIChZMV90b3AgPSAoWTBfdG9wIC0gY29udGFjdDFXaWR0aCkpIGZvcihjb2wgMSBudW1Db2xCIChYMSA9IChYMCArIGNvbnRhY3QxTGVuZ3RoKSkgd2hlbigoWDEgPCAobCAtIChiZXZlbExlbmd0aCArIHNwT2Zmc2V0KSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjb250YWN0MUxheWVyIGxpc3QoKFgwOlkwX2JvdHRvbSkgKFgxOlkxX2JvdHRvbSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgY29udGFjdDFMYXllciBsaXN0KChYMDpZMF90b3ApIChYMTpZMV90b3ApKSkgd2hlbihjb250YWN0MkxheWVyIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjb250YWN0MkxheWVyIGxpc3QoKChYMCAtIGNvbjJjb24xRW5jWCk6KFkwX2JvdHRvbSAtIGNvbjJjb24xRW5jWSkpICgoWDEgKyBjb24yY29uMUVuY1gpOihZMV9ib3R0b20gKyBjb24yY29uMUVuY1kpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjb250YWN0MkxheWVyIGxpc3QoKChYMCAtIGNvbjJjb24xRW5jWCk6KFkwX3RvcCArIGNvbjJjb24xRW5jWSkpICgoWDEgKyBjb24yY29uMUVuY1gpOihZMV90b3AgLSBjb24yY29uMUVuY1kpKSkpKSkgKFgwID0gKFgwICsgY29udGFjdFBpdGNoWCkpKSAoWTBfYm90dG9tID0gKFkwX2JvdHRvbSArIGNvbnRhY3RQaXRjaFkpKSAoWTBfdG9wID0gKFkwX3RvcCAtIGNvbnRhY3RQaXRjaFkpKSkgd2hlbigoY29udGFjdE4gPT0gMSkgKHVzZWRXID0gKHcgLSAoMiAqIChzcE9mZnNldCArIGJldmVsTGVuZ3RoKSkpKSAobnVtQ29sUyA9IG1heCgxIGZpeCgoKCh1c2VkVyArIGNvbnRhY3RTcGFjZVgpIC8gY29udGFjdFBpdGNoWCkgKyAxZS0wNikpKSkgKGNvbnRhY3RTaWRlTFMgPSAoKG51bUNvbFMgKiBjb250YWN0UGl0Y2hYKSAtIGNvbnRhY3RTcGFjZVgpKSAobnVtQ29sT2Zmc2V0UyA9ICgodXNlZFcgLSBjb250YWN0U2lkZUxTKSAvIDIpKSAobnVtQ29sT2Zmc2V0UyA9IChmaXgoKChudW1Db2xPZmZzZXRTIC8gZ3JpZCkgKyAxZS0wNikpICogZ3JpZCkpKSAoeE9yaWdpbkwgPSAobnVtQ29sT2Zmc2V0UyArIGJldmVsTGVuZ3RoICsgeE9mZnNldCArIHNwT2Zmc2V0KSkgKHlPcmlnaW5MID0geU9mZnNldCkgKHlPcmlnaW5SID0gKGwgLSB5T2Zmc2V0KSkgKFkwX2xlZnQgPSB5T3JpZ2luTCkgKFkwX3JpZ2h0ID0geU9yaWdpblIpIGZvcihyb3cgMSBudW1Sb3dzIChYMCA9IHhPcmlnaW5MKSAoWTFfbGVmdCA9IChZMF9sZWZ0ICsgY29udGFjdDFXaWR0aCkpIChZMV9yaWdodCA9IChZMF9yaWdodCAtIGNvbnRhY3QxV2lkdGgpKSBmb3IoY29sIDEgbnVtQ29sUyAoWDEgPSAoWDAgKyBjb250YWN0MUxlbmd0aCkpIHdoZW4oKFgxIDwgKHcgLSAoc3BPZmZzZXQgKyBiZXZlbExlbmd0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgY29udGFjdDFMYXllciBsaXN0KChZMF9sZWZ0OlgwKSAoWTFfbGVmdDpYMSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgY29udGFjdDFMYXllciBsaXN0KChZMF9yaWdodDpYMCkgKFkxX3JpZ2h0OlgxKSkpIHdoZW4oY29udGFjdDJMYXllciAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgY29udGFjdDJMYXllciBsaXN0KCgoWTBfbGVmdCAtIGNvbjJjb24xRW5jWSk6KFgwIC0gY29uMmNvbjFFbmNYKSkgKChZMV9sZWZ0ICsgY29uMmNvbjFFbmNZKTooWDEgKyBjb24yY29uMUVuY1gpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjb250YWN0MkxheWVyIGxpc3QoKChZMF9yaWdodCArIGNvbjJjb24xRW5jWSk6KFgwIC0gY29uMmNvbjFFbmNYKSkgKChZMV9yaWdodCAtIGNvbjJjb24xRW5jWSk6KFgxICsgY29uMmNvbjFFbmNYKSkpKSkpIChYMCA9IChYMCArIGNvbnRhY3RQaXRjaFgpKSkgKFkwX2xlZnQgPSAoWTBfbGVmdCArIGNvbnRhY3RQaXRjaFkpKSAoWTBfcmlnaHQgPSAoWTBfcmlnaHQgLSBjb250YWN0UGl0Y2hZKSkpIHdoZW4oKGNvbnRhY3ROID09IDEpIChiZXZlbFNwYWNlID0gbWluKGNvbnRhY3RTcGFjZVkgY29udGFjdFNwYWNlWCkpIChiZXZlbFBpdGNoID0gbWluKGNvbnRhY3RQaXRjaFkgY29udGFjdFBpdGNoWCkpICh1c2VkQyA9IChiZXZlbExlbmd0aCAtIChiZXZlbFNwYWNlICsgY29udGFjdDFMZW5ndGggKyBjb24yY29uMUVuY1gpKSkgKG51bUNvbEMgPSBtYXgoMSBmaXgoKCgodXNlZEMgKyBiZXZlbFNwYWNlKSAvIGJldmVsUGl0Y2gpICsgMWUtMDYpKSkpIChjb250YWN0U2lkZUMgPSAoKG51bUNvbEMgKiBiZXZlbFBpdGNoKSAtIGJldmVsU3BhY2UpKSAobnVtQ29sT2Zmc2V0QyA9ICh1c2VkQyAtIGNvbnRhY3RTaWRlQykpIChudW1Db2xPZmZzZXRDID0gKGZpeCgoKG51bUNvbE9mZnNldEMgLyBncmlkKSArIDFlLTA2KSkgKiBncmlkKSkgKGJldmVsV2lkdGggPSBtYXgoMC4wICgobnVtUm93c0luQmV2ZWwgKiBiZXZlbFBpdGNoKSAtIGJldmVsU3BhY2UpKSkgKGNlbnRlck9mZnNldCA9ICgocmluZ1dpZHRoIC0gYmV2ZWxXaWR0aCkgLyAyKSkgKGNlbnRlck9mZnNldCA9IChmaXgoKCgoY2VudGVyT2Zmc2V0ICogczIpIC8gZ3JpZCkgKyAxZS0wNikpICogZ3JpZCkpICh5T3JpZ2luQiA9ICh5T2Zmc2V0ICsgY2VudGVyT2Zmc2V0ICsgbnVtQ29sT2Zmc2V0QyArIGJldmVsU3BhY2UgKyBjb250YWN0MUxlbmd0aCArIGNvbjJjb24xRW5jWCkpICh5T3JpZ2luVCA9ICh3IC0gKHlPZmZzZXQgKyBjZW50ZXJPZmZzZXQgKyBudW1Db2xPZmZzZXRDICsgYmV2ZWxTcGFjZSArIGNvbnRhY3QxV2lkdGggKyBjb24yY29uMUVuY1gpKSkgKHhPcmlnaW5SID0gKChsIC0gYmV2ZWxMZW5ndGgpICsgbnVtQ29sT2Zmc2V0QyArIGJldmVsU3BhY2UgKyBjb24yY29uMUVuY1gpKSAoeE9yaWdpbkwgPSAoYmV2ZWxMZW5ndGggLSAobnVtQ29sT2Zmc2V0QyArIGJldmVsU3BhY2UgKyBjb24yY29uMUVuY1gpKSkgKFkwX2JvdHRvbSA9IHlPcmlnaW5CKSAoWTBfdG9wID0geU9yaWdpblQpIGZvcihyb3cgMSBudW1Sb3dzSW5CZXZlbCAoWDBfUiA9ICh4T3JpZ2luUiAtIGNvbjJjb24xRW5jWCkpIChYMF9MID0gKHhPcmlnaW5MICsgY29uMmNvbjFFbmNYKSkgZm9yKGNvbCAxIG51bUNvbFMgKFgxX1IgPSAoWDBfUiArIGNvbnRhY3QxTGVuZ3RoKSkgKFgxX0wgPSAoWDBfTCAtIGNvbnRhY3QxTGVuZ3RoKSkgKFkxX2JvdHRvbSA9IChZMF9ib3R0b20gKyBjb250YWN0MVdpZHRoKSkgKFkxX3RvcCA9IChZMF90b3AgLSBjb250YWN0MVdpZHRoKSkgd2hlbigoWTFfYm90dG9tIDwgKGJldmVsTGVuZ3RoIC0gYmV2ZWxTcGFjZSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjb250YWN0MUxheWVyIGxpc3QoKFgwX1I6WTBfYm90dG9tKSAoWDFfUjpZMV9ib3R0b20pKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGNvbnRhY3QxTGF5ZXIgbGlzdCgoWDBfTDpZMF9ib3R0b20pIChYMV9MOlkxX2JvdHRvbSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgY29udGFjdDFMYXllciBsaXN0KChYMF9SOlkwX3RvcCkgKFgxX1I6WTFfdG9wKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjb250YWN0MUxheWVyIGxpc3QoKFgwX0w6WTBfdG9wKSAoWDFfTDpZMV90b3ApKSkgd2hlbihjb250YWN0MkxheWVyIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjb250YWN0MkxheWVyIGxpc3QoKChYMF9SIC0gY29uMmNvbjFFbmNYKTooWTBfYm90dG9tIC0gY29uMmNvbjFFbmNZKSkgKChYMV9SICsgY29uMmNvbjFFbmNYKTooWTFfYm90dG9tICsgY29uMmNvbjFFbmNZKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgY29udGFjdDJMYXllciBsaXN0KCgoWDBfTCArIGNvbjJjb24xRW5jWCk6KFkwX2JvdHRvbSAtIGNvbjJjb24xRW5jWSkpICgoWDFfTCAtIGNvbjJjb24xRW5jWCk6KFkxX2JvdHRvbSArIGNvbjJjb24xRW5jWSkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGNvbnRhY3QyTGF5ZXIgbGlzdCgoKFgwX1IgLSBjb24yY29uMUVuY1gpOihZMF90b3AgKyBjb24yY29uMUVuY1kpKSAoKFgxX1IgKyBjb24yY29uMUVuY1gpOihZMV90b3AgLSBjb24yY29uMUVuY1kpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjb250YWN0MkxheWVyIGxpc3QoKChYMF9MICsgY29uMmNvbjFFbmNYKTooWTBfdG9wICsgY29uMmNvbjFFbmNZKSkgKChYMV9MIC0gY29uMmNvbjFFbmNYKTooWTFfdG9wIC0gY29uMmNvbjFFbmNZKSkpKSkpIChYMF9SID0gKFgwX1IgKyBiZXZlbFBpdGNoKSkgKFgwX0wgPSAoWDBfTCAtIGJldmVsUGl0Y2gpKSAoWTBfYm90dG9tID0gKFkwX2JvdHRvbSArIGJldmVsUGl0Y2gpKSAoWTBfdG9wID0gKFkwX3RvcCAtIGJldmVsUGl0Y2gpKSkgKFkwX2JvdHRvbSA9ICh5T3JpZ2luQiArIChyb3cgKiBiZXZlbFBpdGNoKSkpIChZMF90b3AgPSAoeU9yaWdpblQgLSAocm93ICogYmV2ZWxQaXRjaCkpKSkpKSkAKGdyaWQgbnVtUm93c0luQmV2ZWwgY29udGFjdDFMYXllciBjb250YWN0MkxheWVyIGNvbjJjb24xRW5jWCBjb24yY29uMUVuY1kgY29udGFjdDFXaWR0aCBjb250YWN0MUxlbmd0aCBiZXZlbExlbmd0aCBjb250YWN0MlNwYWNlWSBjb250YWN0MlNwYWNlWCBjb250YWN0Mk9mZnNldFggY29udGFjdDJPZmZzZXRZIGNvbnRhY3QyUm93cyBjb250YWN0MVNwYWNlWSBjb250YWN0MVNwYWNlWCBjb250YWN0MU9mZnNldFggY29udGFjdDFPZmZzZXRZIGNvbnRhY3QxUm93cyBsIHcgczIgY29udGFjdDFQaXRjaFkgY29udGFjdDFQaXRjaFggY29udGFjdDJQaXRjaFkgY29udGFjdDJQaXRjaFggcmluZ1dpZHRoIG5vUml2ZXRzIHNwT2Zmc2V0IGNvbnRhY3ROIGNvbnRhY3RQaXRjaFkgY29udGFjdFBpdGNoWCBjb250YWN0U3BhY2VYIGNvbnRhY3RTcGFjZVkgeE9mZnNldCB5T2Zmc2V0IG51bVJvd3MgdXNlZEwgbnVtQ29sQiBjb250YWN0U2lkZUxCIG51bUNvbE9mZnNldEIgeE9yaWdpbkIgeU9yaWdpbkIgeU9yaWdpblQgWTBfYm90dG9tIFkwX3RvcCByb3cgWDAgWTFfYm90dG9tIFkxX3RvcCBjb2wgWDEgdXNlZFcgbnVtQ29sUyBjb250YWN0U2lkZUxTIG51bUNvbE9mZnNldFMgeE9yaWdpbkwgeU9yaWdpbkwgeU9yaWdpblIgWTBfbGVmdCBZMF9yaWdodCBZMV9sZWZ0IFkxX3JpZ2h0IGJldmVsU3BhY2UgYmV2ZWxQaXRjaCB1c2VkQyBudW1Db2xDIGNvbnRhY3RTaWRlQyBudW1Db2xPZmZzZXRDIGJldmVsV2lkdGggY2VudGVyT2Zmc2V0IHhPcmlnaW5SIFgwX1IgWDBfTCBYMV9SIFgxX0wpACgoZ3JpZCAoVEVDSGdldFByb3Agc25hcEdyaWQpKSAobnVtUm93c0luQmV2ZWwgMCkgKGNvbnRhY3QxTGF5ZXIgbGlzdCgiaGlsaXRlIiAiZHJhd2luZyIpKSAoY29udGFjdDJMYXllciBuaWwpIChjb24yY29uMUVuY1ggMC4wKSAoY29uMmNvbjFFbmNZIDAuMCkgKGNvbnRhY3QxV2lkdGggMC4xKSAoY29udGFjdDFMZW5ndGggMC4xKSAoYmV2ZWxMZW5ndGggMS4wKSAoY29udGFjdDJTcGFjZVkgMC4xKSAoY29udGFjdDJTcGFjZVggMC4xKSAoY29udGFjdDJPZmZzZXRYIDAuMCkgKGNvbnRhY3QyT2Zmc2V0WSAwLjApIChjb250YWN0MlJvd3MgMCkgKGNvbnRhY3QxU3BhY2VZIDAuMSkgKGNvbnRhY3QxU3BhY2VYIDAuMSkgKGNvbnRhY3QxT2Zmc2V0WCAwLjApIChjb250YWN0MU9mZnNldFkgMC4wKSAoY29udGFjdDFSb3dzIDEpIChsIDEwLjApICh3IDEwLjApKQAoKG53ZWxsV2lkdGggPSAobndlbGxXaWR0aCArIGRud1dlbGxFbmMpKSAocmVzID0gKHJvZENyZWF0ZVJlY3QgP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgcmVzSWRMYXllciA/d2lkdGggbWF4KG1pbihyZXNMZW5ndGggbWF4UmVzTCkgbWluUmVzTCkgP2xlbmd0aCByZXNXaWR0aCkpIChjdXQgPSAocm9kQ3JlYXRlUmVjdCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciByZXNDdXRMYXllciA/d2lkdGggcmVzQ3V0V2lkdGggP2xlbmd0aCByZXNXaWR0aCkpICh0YXBfVyA9ICgodGFwQ29uRW5jWCAqIDIpICsgY29uU3BhY2luZyArIChjb25XaWR0aCAqIDIpKSkgKHRhcF9MID0gKCh0YXBDb25FbmNZICogMikgKyAoY29uU3BhY2luZyAqIDUpICsgKGNvbkxlbmd0aCAqIDYpKSkgKHRhcExIUyA9IChyb2RDcmVhdGVSZWN0ID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHRhcExheWVyID93aWR0aCB0YXBfVyA/bGVuZ3RoIHRhcF9MID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciBjb25MYXllciA/d2lkdGggY29uV2lkdGggP2xlbmd0aCBjb25MZW5ndGggP2xvd2VyTGVmdE9mZnNldFggdGFwQ29uRW5jWCA/bG93ZXJMZWZ0T2Zmc2V0WSB0YXBDb25FbmNZID91cHBlclJpZ2h0T2Zmc2V0WCAoLSB0YXBDb25FbmNYKSA/dXBwZXJSaWdodE9mZnNldFkgKC0gdGFwQ29uRW5jWSkgP3NwYWNlWCBjb25TcGFjaW5nID9zcGFjZVkgY29uU3BhY2luZykpKSkgKGltcExIUyA9IChyb2RDcmVhdGVSZWN0ID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHJlc0NvbnRhY3RJbXBsYW50ID93aWR0aCAodGFwX1cgKyAodGFwSW1wRW5jICogMikpID9sZW5ndGggKHRhcF9MICsgKHRhcEltcEVuYyAqIDIpKSkpICh0YXBSSFMgPSAocm9kQ3JlYXRlUmVjdCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBMYXllciA/d2lkdGggdGFwX1cgP2xlbmd0aCB0YXBfTCA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgY29uTGF5ZXIgP3dpZHRoIGNvbldpZHRoID9sZW5ndGggY29uTGVuZ3RoID9sb3dlckxlZnRPZmZzZXRYIHRhcENvbkVuY1ggP2xvd2VyTGVmdE9mZnNldFkgdGFwQ29uRW5jWSA/dXBwZXJSaWdodE9mZnNldFggKC0gdGFwQ29uRW5jWCkgP3VwcGVyUmlnaHRPZmZzZXRZICgtIHRhcENvbkVuY1kpID9zcGFjZVggY29uU3BhY2luZyA/c3BhY2VZIGNvblNwYWNpbmcpKSkpIChpbXBSSFMgPSAocm9kQ3JlYXRlUmVjdCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciByZXNDb250YWN0SW1wbGFudCA/d2lkdGggKHRhcF9XICsgKHRhcEltcEVuYyAqIDIpKSA/bGVuZ3RoICh0YXBfTCArICh0YXBJbXBFbmMgKiAyKSkpKSBpZigoY29udGFjdFRvTWV0YWwgPT0gbmlsKSB0aGVuIChNMExIUyA9IChyb2RDcmVhdGVSZWN0ID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIE0wTGF5ZXIgP3dpZHRoIHRhcF9XID9sZW5ndGggdGFwX0wgP3Rlcm1OYW1lICJyMCIgP3BpbiB0KSkgKE0wUkhTID0gKHJvZENyZWF0ZVJlY3QgP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgTTBMYXllciA/d2lkdGggdGFwX1cgP2xlbmd0aCB0YXBfTCA/dGVybU5hbWUgInIxIiA/cGluIHQpKSBlbHNlIChNMExheWVyV2l0aE0xX1cgPSAoKCgyICogdmlhV2lkdGgpICsgdmlhU3BhY2luZykgKyAoMiAqIE0wdmlhRW5jWCkpKSAoTTBMSFMgPSAocm9kQ3JlYXRlUmVjdCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciBNMExheWVyID93aWR0aCBNMExheWVyV2l0aE0xX1cgP2xlbmd0aCB0YXBfTCkpIChNMFJIUyA9IChyb2RDcmVhdGVSZWN0ID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIE0wTGF5ZXIgP3dpZHRoIE0wTGF5ZXJXaXRoTTFfVyA/bGVuZ3RoIHRhcF9MKSkpIChETlcgPSAocm9kQ3JlYXRlUmVjdCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciBkbndlbGxMYXllciA/d2lkdGggKG1heChtaW4ocmVzTGVuZ3RoIG1heFJlc0wpIG1pblJlc0wpICsgKHRhcFdlbGxTcGMgKiAyKSArICh0YXBfVyAqIDIpICsgKChud2VsbFdpZHRoIC0gZG53V2VsbEVuYykgKiAyKSkgP2xlbmd0aCAocmVzV2lkdGggKyAoKG53ZWxsV2lkdGggLSBkbndXZWxsRW5jKSAqIDIpKSkpIChOV1JpbmdMID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgd2VsbExheWVyID93aWR0aCBud2VsbFdpZHRoID9wdHMgbGlzdCgoKC0gKHRhcF9XICsgdGFwV2VsbFNwYyArIChud2VsbFdpZHRoIC8gMikpKTowKSAoKC0gKHRhcF9XICsgdGFwV2VsbFNwYyArIChud2VsbFdpZHRoIC8gMikpKTpyZXNXaWR0aCkpID9lbmNTdWJQYXRoIGxpc3QobGlzdCg/bGF5ZXIgdGFwTGF5ZXIgP2VuY2xvc3VyZSAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSA/YmVnaW5PZmZzZXQgKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkgP2VuZE9mZnNldCAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSkgbGlzdCg/bGF5ZXIgaW5uZXJSaW5nSW1wbGFudCA/ZW5jbG9zdXJlICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcEltcEVuYykpID9iZWdpbk9mZnNldCAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1ggKyB0YXBJbXBFbmMpKSA/ZW5kT2Zmc2V0ICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcEltcEVuYykpKSkpKSAoTldSaW5nVCA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHdlbGxMYXllciA/d2lkdGggbndlbGxXaWR0aCA/cHRzIGxpc3QoKCgtICh0YXBfVyArIHRhcFdlbGxTcGMgKyBud2VsbFdpZHRoKSk6KHJlc1dpZHRoICsgKG53ZWxsV2lkdGggLyAyKSkpICgobWF4KG1pbihyZXNMZW5ndGggbWF4UmVzTCkgbWluUmVzTCkgKyB0YXBXZWxsU3BjICsgdGFwX1cgKyBud2VsbFdpZHRoKToocmVzV2lkdGggKyAobndlbGxXaWR0aCAvIDIpKSkpID9lbmNTdWJQYXRoIGxpc3QobGlzdCg/bGF5ZXIgdGFwTGF5ZXIgP2VuY2xvc3VyZSAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSA/YmVnaW5PZmZzZXQgKC0gKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkpID9lbmRPZmZzZXQgKC0gKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkpKSBsaXN0KD9sYXllciBpbm5lclJpbmdJbXBsYW50ID9lbmNsb3N1cmUgKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYICsgdGFwSW1wRW5jKSkgP2JlZ2luT2Zmc2V0ICgtICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcEltcEVuYykpKSA/ZW5kT2Zmc2V0ICgtICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcEltcEVuYykpKSkgbGlzdCg/bGF5ZXIgTTBMYXllciA/ZW5jbG9zdXJlICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpID9iZWdpbk9mZnNldCAoLSAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSkgP2VuZE9mZnNldCAoLSAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSkpIGxpc3QoP2xheWVyIE0xTGF5ZXIgP3Rlcm1OYW1lICJiIiA/cGluIHQgP3Rlcm1JT1R5cGUgImlucHV0IiA/ZW5jbG9zdXJlICgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgTTF2aWFFbmNYKSkgP2JlZ2luT2Zmc2V0ICgtICgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpKSA/ZW5kT2Zmc2V0ICgtICgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpKSkpID9zdWJSZWN0IGxpc3QobGlzdCg/bGF5ZXIgY29uTGF5ZXIgP3dpZHRoIGNvbldpZHRoID9sZW5ndGggY29uTGVuZ3RoID9iZWdpbk9mZnNldCAoLSAoKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkgKyB0YXBDb25FbmNZKSkgP2VuZE9mZnNldCAoLSAoKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkgKyB0YXBDb25FbmNZKSkgP3NwYWNlIGNvblNwYWNpbmcpIGxpc3QoP2xheWVyIHZpYUxheWVyID93aWR0aCB2aWFXaWR0aCA/bGVuZ3RoIHZpYUxlbmd0aCA/YmVnaW5PZmZzZXQgKC0gKCgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpICsgdGFwQ29uRW5jWSkpID9lbmRPZmZzZXQgKC0gKCgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpICsgdGFwQ29uRW5jWSkpID9zcGFjZSB2aWFTcGFjaW5nKSkpKSAoTldSaW5nUiA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHdlbGxMYXllciA/d2lkdGggbndlbGxXaWR0aCA/cHRzIGxpc3QoKChtYXgobWluKHJlc0xlbmd0aCBtYXhSZXNMKSBtaW5SZXNMKSArIHRhcFdlbGxTcGMgKyB0YXBfVyArIChud2VsbFdpZHRoIC8gMikpOnJlc1dpZHRoKSAoKG1heChtaW4ocmVzTGVuZ3RoIG1heFJlc0wpIG1pblJlc0wpICsgdGFwV2VsbFNwYyArIHRhcF9XICsgKG53ZWxsV2lkdGggLyAyKSk6MCkpID9lbmNTdWJQYXRoIGxpc3QobGlzdCg/bGF5ZXIgdGFwTGF5ZXIgP2VuY2xvc3VyZSAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSA/YmVnaW5PZmZzZXQgKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkgP2VuZE9mZnNldCAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSkgbGlzdCg/bGF5ZXIgaW5uZXJSaW5nSW1wbGFudCA/ZW5jbG9zdXJlICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcEltcEVuYykpID9iZWdpbk9mZnNldCAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1ggKyB0YXBJbXBFbmMpKSA/ZW5kT2Zmc2V0ICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcEltcEVuYykpKSkpKSAoTldSaW5nQiA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHdlbGxMYXllciA/d2lkdGggbndlbGxXaWR0aCA/cHRzIGxpc3QoKChtYXgobWluKHJlc0xlbmd0aCBtYXhSZXNMKSBtaW5SZXNMKSArIHRhcFdlbGxTcGMgKyB0YXBfVyArIG53ZWxsV2lkdGgpOigoLSBud2VsbFdpZHRoKSAvIDIpKSAoKC0gKHRhcF9XICsgdGFwV2VsbFNwYyArIG53ZWxsV2lkdGgpKTooKC0gbndlbGxXaWR0aCkgLyAyKSkpID9lbmNTdWJQYXRoIGxpc3QobGlzdCg/bGF5ZXIgdGFwTGF5ZXIgP2VuY2xvc3VyZSAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSA/YmVnaW5PZmZzZXQgKC0gKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkpID9lbmRPZmZzZXQgKC0gKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkpKSBsaXN0KD9sYXllciBpbm5lclJpbmdJbXBsYW50ID9lbmNsb3N1cmUgKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYICsgdGFwSW1wRW5jKSkgP2JlZ2luT2Zmc2V0ICgtICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcEltcEVuYykpKSA/ZW5kT2Zmc2V0ICgtICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcEltcEVuYykpKSkgbGlzdCg/bGF5ZXIgTTBMYXllciA/ZW5jbG9zdXJlICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpID9iZWdpbk9mZnNldCAoLSAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSkgP2VuZE9mZnNldCAoLSAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSkpIGxpc3QoP2xheWVyIE0xTGF5ZXIgP3Rlcm1OYW1lICJiIiA/cGluIHQgP3Rlcm1JT1R5cGUgImlucHV0IiA/ZW5jbG9zdXJlICgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgTTF2aWFFbmNYKSkgP2JlZ2luT2Zmc2V0ICgtICgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpKSA/ZW5kT2Zmc2V0ICgtICgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpKSkpID9zdWJSZWN0IGxpc3QobGlzdCg/bGF5ZXIgY29uTGF5ZXIgP3dpZHRoIGNvbldpZHRoID9sZW5ndGggY29uTGVuZ3RoID9iZWdpbk9mZnNldCAoLSAoKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkgKyB0YXBDb25FbmNZKSkgP2VuZE9mZnNldCAoLSAoKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkgKyB0YXBDb25FbmNZKSkgP3NwYWNlIGNvblNwYWNpbmcpIGxpc3QoP2xheWVyIHZpYUxheWVyID93aWR0aCB2aWFXaWR0aCA/bGVuZ3RoIHZpYUxlbmd0aCA/YmVnaW5PZmZzZXQgKC0gKCgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpICsgdGFwQ29uRW5jWSkpID9lbmRPZmZzZXQgKC0gKCgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpICsgdGFwQ29uRW5jWSkpID9zcGFjZSB2aWFTcGFjaW5nKSkpKSAoSW1wV2J5MiA9ICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1ggKyB0YXBJbXBFbmMpKSAoVEFQUmluZ0wgPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBSaW5nSW1wbGFudCA/d2lkdGggKEltcFdieTIgKiAyKSA/cHRzIGxpc3QoKCgtICh0YXBfVyArICh0YXBXZWxsU3BjICogMikgKyAoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1ggKyBud2VsbFdpZHRoKSk6KC0gKG53ZWxsV2lkdGggKyAoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1ggKyB0YXBXZWxsU3BjKSkpICgoLSAodGFwX1cgKyAodGFwV2VsbFNwYyAqIDIpICsgKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYICsgbndlbGxXaWR0aCkpOihyZXNXaWR0aCArIG53ZWxsV2lkdGggKyAoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1ggKyB0YXBXZWxsU3BjKSkpID9lbmNTdWJQYXRoIGxpc3QobGlzdCg/bGF5ZXIgdGFwTGF5ZXIgP2VuY2xvc3VyZSB0YXBJbXBFbmMgP2JlZ2luT2Zmc2V0IDAuMCA/ZW5kT2Zmc2V0IDAuMCkpKSkgKFRBUFJpbmdUID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgdGFwUmluZ0ltcGxhbnQgP3dpZHRoIChJbXBXYnkyICogMikgP3B0cyBsaXN0KCgoLSAodGFwX1cgKyAodGFwV2VsbFNwYyAqIDIpICsgSW1wV2J5MiArIChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIG53ZWxsV2lkdGgpKToocmVzV2lkdGggKyBud2VsbFdpZHRoICsgKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYICsgdGFwV2VsbFNwYykpICgobWF4KG1pbihyZXNMZW5ndGggbWF4UmVzTCkgbWluUmVzTCkgKyB0YXBfVyArIG53ZWxsV2lkdGggKyAodGFwV2VsbFNwYyAqIDIpICsgKEltcFdieTIgKiAyKSk6KHJlc1dpZHRoICsgbndlbGxXaWR0aCArIChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcFdlbGxTcGMpKSkgP2VuY1N1YlBhdGggbGlzdChsaXN0KD9sYXllciB0YXBMYXllciA/ZW5jbG9zdXJlIHRhcEltcEVuYyA/YmVnaW5PZmZzZXQgKC0gdGFwSW1wRW5jKSA/ZW5kT2Zmc2V0ICgtIHRhcEltcEVuYykpIGxpc3QoP2xheWVyIE0wTGF5ZXIgP2VuY2xvc3VyZSB0YXBJbXBFbmMgP2JlZ2luT2Zmc2V0ICgtIHRhcEltcEVuYykgP2VuZE9mZnNldCAoLSB0YXBJbXBFbmMpKSkgP3N1YlJlY3QgbGlzdChsaXN0KD9sYXllciBjb25MYXllciA/d2lkdGggY29uV2lkdGggP2xlbmd0aCBjb25MZW5ndGggP2JlZ2luT2Zmc2V0ICgtICh0YXBDb25FbmNZICsgdGFwSW1wRW5jKSkgP2VuZE9mZnNldCAoLSAodGFwQ29uRW5jWSArIHRhcEltcEVuYykpID9zcGFjZSBjb25TcGFjaW5nKSkpKSAoVEFQUmluZ1IgPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBSaW5nSW1wbGFudCA/d2lkdGggKEltcFdieTIgKiAyKSA/cHRzIGxpc3QoKChtYXgobWluKHJlc0xlbmd0aCBtYXhSZXNMKSBtaW5SZXNMKSArIHRhcF9XICsgbndlbGxXaWR0aCArICh0YXBXZWxsU3BjICogMikgKyBJbXBXYnkyKToocmVzV2lkdGggKyBud2VsbFdpZHRoICsgKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYICsgdGFwV2VsbFNwYykpICgobWF4KG1pbihyZXNMZW5ndGggbWF4UmVzTCkgbWluUmVzTCkgKyB0YXBfVyArIG53ZWxsV2lkdGggKyAodGFwV2VsbFNwYyAqIDIpICsgSW1wV2J5Mik6KC0gKG53ZWxsV2lkdGggKyAoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1ggKyB0YXBXZWxsU3BjKSkpKSA/ZW5jU3ViUGF0aCBsaXN0KGxpc3QoP2xheWVyIHRhcExheWVyID9lbmNsb3N1cmUgdGFwSW1wRW5jID9iZWdpbk9mZnNldCAwLjAgP2VuZE9mZnNldCAwLjApKSkpIChUQVBSaW5nQiA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHRhcFJpbmdJbXBsYW50ID93aWR0aCAoSW1wV2J5MiAqIDIpID9wdHMgbGlzdCgoKG1heChtaW4ocmVzTGVuZ3RoIG1heFJlc0wpIG1pblJlc0wpICsgdGFwX1cgKyBud2VsbFdpZHRoICsgKHRhcFdlbGxTcGMgKiAyKSArIChJbXBXYnkyICogMikpOigtIChud2VsbFdpZHRoICsgKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYICsgdGFwV2VsbFNwYykpKSAoKC0gKHRhcF9XICsgKHRhcFdlbGxTcGMgKiAyKSArIChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIG53ZWxsV2lkdGggKyBJbXBXYnkyKSk6KC0gKG53ZWxsV2lkdGggKyAoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1ggKyB0YXBXZWxsU3BjKSkpKSA/ZW5jU3ViUGF0aCBsaXN0KGxpc3QoP2xheWVyIHRhcExheWVyID9lbmNsb3N1cmUgdGFwSW1wRW5jID9iZWdpbk9mZnNldCAoLSB0YXBJbXBFbmMpID9lbmRPZmZzZXQgKC0gdGFwSW1wRW5jKSkgbGlzdCg/bGF5ZXIgTTBMYXllciA/ZW5jbG9zdXJlIHRhcEltcEVuYyA/YmVnaW5PZmZzZXQgKC0gdGFwSW1wRW5jKSA/ZW5kT2Zmc2V0ICgtIHRhcEltcEVuYykpKSA/c3ViUmVjdCBsaXN0KGxpc3QoP2xheWVyIGNvbkxheWVyID93aWR0aCBjb25XaWR0aCA/bGVuZ3RoIGNvbkxlbmd0aCA/YmVnaW5PZmZzZXQgKC0gKHRhcENvbkVuY1kgKyB0YXBJbXBFbmMpKSA/ZW5kT2Zmc2V0ICgtICh0YXBDb25FbmNZICsgdGFwSW1wRW5jKSkgP3NwYWNlIGNvblNwYWNpbmcpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogY3V0ID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogcmVzID9yZWZIYW5kbGUgImNDIikgKHJvZEFsaWduID9hbGlnbk9iaiBpbXBMSFMgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiB0YXBMSFMgP3JlZkhhbmRsZSAiY0MiKSAocm9kQWxpZ24gP2FsaWduT2JqIGltcFJIUyA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIHRhcFJIUyA/cmVmSGFuZGxlICJjQyIpIChyb2RBbGlnbiA/YWxpZ25PYmogdGFwTEhTID9hbGlnbkhhbmRsZSAiY1IiID9yZWZPYmogcmVzID9yZWZIYW5kbGUgImNMIikgKHJvZEFsaWduID9hbGlnbk9iaiB0YXBSSFMgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiByZXMgP3JlZkhhbmRsZSAiY1IiKSAocm9kQWxpZ24gP2FsaWduT2JqIE0wTEhTID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogdGFwTEhTID9yZWZIYW5kbGUgImNDIikgKHJvZEFsaWduID9hbGlnbk9iaiBNMFJIUyA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIHRhcFJIUyA/cmVmSGFuZGxlICJjQyIpIChyb2RBbGlnbiA/YWxpZ25PYmogRE5XID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogcmVzID9yZWZIYW5kbGUgImNDIikgKE0xX1cgPSAoKDIgKiAoTTF2aWFFbmNYICsgdmlhV2lkdGgpKSArIHZpYVNwYWNpbmcpKSBpZigoY29udGFjdFRvTWV0YWwgIT0gbmlsKSB0aGVuIChNMUxIUyA9IChyb2RDcmVhdGVSZWN0ID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIE0xTGF5ZXIgP3dpZHRoIE0xX1cgP2xlbmd0aCAoKDUgKiB2aWFTcGFjaW5nKSArICg2ICogdmlhV2lkdGgpICsgKDIgKiBNMXZpYUVuY1kpKSA/dGVybU5hbWUgInIwIiA/cGluIHQgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHZpYUxheWVyID93aWR0aCB2aWFXaWR0aCA/bGVuZ3RoIHZpYUxlbmd0aCA/bG93ZXJMZWZ0T2Zmc2V0WCBNMXZpYUVuY1ggP2xvd2VyTGVmdE9mZnNldFkgTTF2aWFFbmNZID91cHBlclJpZ2h0T2Zmc2V0WCAoLSBNMXZpYUVuY1gpID91cHBlclJpZ2h0T2Zmc2V0WSAoLSBNMXZpYUVuY1kpID9zcGFjZVggdmlhU3BhY2luZyA/c3BhY2VZIHZpYVNwYWNpbmcpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogTTFMSFMgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBNMExIUyA/cmVmSGFuZGxlICJjQyIpIChNMVJIUyA9IChyb2RDcmVhdGVSZWN0ID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIE0xTGF5ZXIgP3dpZHRoIE0xX1cgP2xlbmd0aCAoKDUgKiB2aWFTcGFjaW5nKSArICg2ICogdmlhV2lkdGgpICsgKDIgKiBNMXZpYUVuY1kpKSA/dGVybU5hbWUgInIxIiA/cGluIHQgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHZpYUxheWVyID93aWR0aCB2aWFXaWR0aCA/bGVuZ3RoIHZpYUxlbmd0aCA/bG93ZXJMZWZ0T2Zmc2V0WCBNMXZpYUVuY1ggP2xvd2VyTGVmdE9mZnNldFkgTTF2aWFFbmNZID91cHBlclJpZ2h0T2Zmc2V0WCAoLSBNMXZpYUVuY1gpID91cHBlclJpZ2h0T2Zmc2V0WSAoLSBNMXZpYUVuY1kpID9zcGFjZVggdmlhU3BhY2luZyA/c3BhY2VZIHZpYVNwYWNpbmcpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogTTFSSFMgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBNMFJIUyA/cmVmSGFuZGxlICJjQyIpKSkAKHRhcExheWVyIHRhcFdpZHRoIHRhcEltcEVuYyB0YXBSaW5nSW1wbGFudCByZXNDb250YWN0SW1wbGFudCBpbm5lclJpbmdJbXBsYW50IGltcGxhbnRTcGMgcmVzSWRMYXllciByZXNDdXRMYXllciByZXNDdXRXaWR0aCByZXNXaWR0aCBtaW5SZXNMIG1heFJlc0wgd2VsbExheWVyIG53ZWxsV2lkdGggdGFwV2VsbFNwYyBkbndlbGxMYXllciBkbndlbGxXaWR0aCBkbndXZWxsRW5jIGNvbkxheWVyIGNvbldpZHRoIGNvbkxlbmd0aCBjb25TcGFjaW5nIHRhcENvbkVuY1ggdGFwQ29uRW5jWSBNMExheWVyIE0wY29uRW5jWSB2aWFMYXllciB2aWFXaWR0aCB2aWFMZW5ndGggdmlhU3BhY2luZyBNMHZpYUVuY1ggTTFMYXllciBNMXZpYUVuY1ggTTF2aWFFbmNZIHJlc0xlbmd0aCBjb250YWN0VG9NZXRhbCByZXMgY3V0IHRhcF9XIHRhcF9MIHRhcExIUyBpbXBMSFMgdGFwUkhTIGltcFJIUyBNMExIUyBNMFJIUyBNMExheWVyV2l0aE0xX1cgRE5XIE5XUmluZ0wgTldSaW5nVCBOV1JpbmdSIE5XUmluZ0IgSW1wV2J5MiBUQVBSaW5nTCBUQVBSaW5nVCBUQVBSaW5nUiBUQVBSaW5nQiBNMV9XIE0xTEhTIE0xUkhTKQAoKHJlc0xlbmd0aCAwLjApIChjb250YWN0VG9NZXRhbCAiRkFMU0UiKSkAKCh0YXBMYXllciBuaWwpICh0YXBXaWR0aCAwLjApICh0YXBJbXBFbmMgMC4wKSAodGFwUmluZ0ltcGxhbnQgbmlsKSAocmVzQ29udGFjdEltcGxhbnQgbmlsKSAoaW5uZXJSaW5nSW1wbGFudCBuaWwpIChpbXBsYW50U3BjIDAuMCkgKHJlc0lkTGF5ZXIgImhpbGl0ZSIpIChyZXNDdXRMYXllciAibWFya2VyIikgKHJlc0N1dFdpZHRoIDAuMCkgKHJlc1dpZHRoIDAuMCkgKG1pblJlc0wgMC4wKSAobWF4UmVzTCAwLjApICh3ZWxsTGF5ZXIgbmlsKSAobndlbGxXaWR0aCAwLjApICh0YXBXZWxsU3BjIG5pbCkgKGRud2VsbExheWVyIG5pbCkgKGRud2VsbFdpZHRoIDAuMCkgKGRud1dlbGxFbmMgMC4wKSAoY29uTGF5ZXIgbmlsKSAoY29uV2lkdGggMC4wKSAoY29uTGVuZ3RoIDAuMCkgKGNvblNwYWNpbmcgMC4wKSAodGFwQ29uRW5jWCAwLjApICh0YXBDb25FbmNZIDAuMCkgKE0wTGF5ZXIgbmlsKSAoTTBjb25FbmNZIDAuMCkgKHZpYUxheWVyIG5pbCkgKHZpYVdpZHRoIDAuMCkgKHZpYUxlbmd0aCAwLjApICh2aWFTcGFjaW5nIDAuMCkgKE0wdmlhRW5jWCAwLjApIChNMUxheWVyIG5pbCkgKE0xdmlhRW5jWCAwLjApIChNMXZpYUVuY1kgMC4wKSkAKChtZXQxV2lkdGhEID0gbnRoKDIgZHJuR2F0ZUNvbnRhY3RTcGFjZVZhbHVlKSkgKGRybkdhdGVDb250YWN0U3BhY2UgPSBudGgoMCBkcm5HYXRlQ29udGFjdFNwYWNlVmFsdWUpKSAobWluaW11bVRvdGFsV2lkdGggPSBmbG9hdChudGgoMSBkcm5HYXRlQ29udGFjdFNwYWNlVmFsdWUpKSkgKG9yaWdtID0gbSkgKG0gPSAoMiAqIG0pKSB3aGVuKChpbm5lclJpbmdGZXRFeHRyYVJpZ2h0U3BhY2UgPCBtaW5Jbm5lclJpbmdGZXRFeHRyYVJpZ2h0U3BhY2UpIGVycm9yKCIlLjNmIGlzIGxlc3MgdGhhbiBhbGxvd2FibGUgbWluaW11bSByaWdodCBzaWRlIGRpZmYgdG8gdGFwIHJpbmcgc3BhY2luZyAlLjNmXG4iIGlubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSBtaW5Jbm5lclJpbmdGZXRFeHRyYVJpZ2h0U3BhY2UpKSB3aGVuKChpbm5lclJpbmdGZXRFeHRyYUxlZnRTcGFjZSA8IG1pbklubmVyUmluZ0ZldEV4dHJhTGVmdFNwYWNlKSBlcnJvcigiJS4zZiBpcyBsZXNzIHRoYW4gYWxsb3dhYmxlIG1pbmltdW0gbGVmdCBzaWRlIGRpZmYgdG8gdGFwIHJpbmcgc3BhY2luZyAlLjNmXG4iIGlubmVyUmluZ0ZldEV4dHJhTGVmdFNwYWNlIG1pbklubmVyUmluZ0ZldEV4dHJhTGVmdFNwYWNlKSkgd2hlbigoaW5uZXJSaW5nRmV0RXh0cmFUb3BTcGFjZSA8IG1pbklubmVyUmluZ0ZldEV4dHJhVG9wU3BhY2UpIGVycm9yKCIlLjNmIGlzIGxlc3MgdGhhbiBhbGxvd2FibGUgbWluaW11bSB0b3Agc2lkZSBkaWZmIHRvIHRhcCByaW5nIHNwYWNpbmcgJS4zZlxuIiBpbm5lclJpbmdGZXRFeHRyYVRvcFNwYWNlIG1pbklubmVyUmluZ0ZldEV4dHJhVG9wU3BhY2UpKSB3aGVuKChpbm5lclJpbmdGZXRFeHRyYUJvdFNwYWNlIDwgbWluSW5uZXJSaW5nRmV0RXh0cmFCb3RTcGFjZSkgZXJyb3IoIiUuM2YgaXMgbGVzcyB0aGFuIGFsbG93YWJsZSBtaW5pbXVtIGJvdHRvbSBzaWRlIGRpZmYgdG8gdGFwIHJpbmcgc3BhY2luZyAlLjNmXG4iIGlubmVyUmluZ0ZldEV4dHJhQm90U3BhY2UgbWluSW5uZXJSaW5nRmV0RXh0cmFCb3RTcGFjZSkpIHdoZW4oKCh3ICogb3JpZ20pIDwgbWluaW11bVRvdGFsV2lkdGgpIGVycm9yKCIlLjNmIGlzIGxlc3MgdGhhbiBhbGxvd2FibGUgbWluaW11bSB0b3RhbCB3aWR0aCAlLjNmIGZvciAlLjNmIGRyYWluIHRvIGdhdGUgY29udGFjdCBzcGFjaW5nXG4iICh3ICogb3JpZ20pIG1pbmltdW1Ub3RhbFdpZHRoIGRybkdhdGVDb250YWN0U3BhY2UpKSB3aGVuKChvcmlnbSA8IG1pbmltdW1NKSBlcnJvcigiJWQgaXMgbGVzcyB0aGFuIGFsbG93YWJsZSBtaW5pbXVtIG0gZmFjdG9yICVkXG4iIG9yaWdtIG1pbmltdW1NKSkgKGVzZENlbGxPcmlnaW4gPSBsaXN0KDAgMCkpIGNvbmQoKChtb3NUeXBlID09ICJubW9zIikgKGlkTGF5ZXJFbmRFbmMgPSBodldlbGxEaWZmVGFwRW5jKSAoaHZMYXllckVuZEVuYyA9IGh2TGF5ZXJEaWZmVGFwRW5jKSkgKChtb3NUeXBlID09ICJwbW9zIikgKGlkTGF5ZXJFbmRFbmMgPSBodkxheWVyRGlmZlRhcEVuYykgKGh2TGF5ZXJFbmRFbmMgPSBodldlbGxEaWZmVGFwRW5jKSkgKHQpKSAoaW5uZXJSaW5nRmV0UmlnaHRTcGFjZSA9IChpbm5lclJpbmdGZXRFeHRyYVJpZ2h0U3BhY2UgKyBmZXREaWZmSW5uZXJSaW5nU3BhY2UpKSAoaW5uZXJSaW5nRmV0TGVmdFNwYWNlID0gKGlubmVyUmluZ0ZldEV4dHJhTGVmdFNwYWNlICsgZmV0RGlmZklubmVyUmluZ1NwYWNlKSkgKGlubmVyUmluZ0ZldFRvcFNwYWNlID0gKGlubmVyUmluZ0ZldEV4dHJhVG9wU3BhY2UgKyBmZXREaWZmSW5uZXJSaW5nU3BhY2UpKSAoaW5uZXJSaW5nRmV0Qm90U3BhY2UgPSAoaW5uZXJSaW5nRmV0RXh0cmFCb3RTcGFjZSArIGZldERpZmZJbm5lclJpbmdTcGFjZSkpIGlmKCgoaHZNb2RlID09IHQpIHx8IChodk1vZGUgPT0gIlRSVUUiKSkgdGhlbiAoaHZNb2RlID0gdCkgZWxzZSAoaHZNb2RlID0gbmlsKSkgaWYoKChyaW5nc01ldDFPZmYgPT0gdCkgfHwgKHJpbmdzTWV0MU9mZiA9PSAiVFJVRSIpKSB0aGVuIChyaW5nc01ldDFPZmYgPSB0KSBlbHNlIChyaW5nc01ldDFPZmYgPSBuaWwpKSBpZigoKHNpbmdsZUZsYXJlID09IHQpIHx8IChzaW5nbGVGbGFyZSA9PSAiVFJVRSIpKSB0aGVuIChzaW5nbGVGbGFyZSA9IHQpIGVsc2UgKHNpbmdsZUZsYXJlID0gbmlsKSkgaWYoKChidXR0aW5nVGFwID09IHQpIHx8IChidXR0aW5nVGFwID09ICJUUlVFIikpIHRoZW4gKGJ1dHRpbmdUYXAgPSB0KSBlbHNlIChidXR0aW5nVGFwID0gbmlsKSkgd2hlbihvZGRwKG9yaWdtKSBlcnJvcigiSWxsZWdhbCBtLWZhY3RvcjogbS1mYWN0b3IgbXVzdCBiZSBldmVuIG51bWJlclxuIikpIChjb250YWN0MEluZm9TID0gbnRoKDAgc3JjSW50ZXJjb25uZWN0KSkgKGNvbnRhY3QwTGF5ZXJTID0gbnRoKDAgY29udGFjdDBJbmZvUykpIChjb250YWN0MFdpZHRoUyA9IG50aCgxIGNvbnRhY3QwSW5mb1MpKSAoY29udGFjdDBTcGFjZVMgPSBudGgoMiBjb250YWN0MEluZm9TKSkgKGNvbnRhY3QwQ29sc1MgPSBudGgoMyBjb250YWN0MEluZm9TKSkgKG1ldDBMYXllclMgPSBudGgoNCBjb250YWN0MEluZm9TKSkgKG1ldDBXaWR0aFMgPSBudGgoNSBjb250YWN0MEluZm9TKSkgKG1ldDBTcGFjZVMgPSBudGgoNiBjb250YWN0MEluZm9TKSkgKG1ldDBCZXZlbFMgPSBudGgoNyBjb250YWN0MEluZm9TKSkgKGNvbnRhY3QxSW5mb1MgPSBudGgoMSBzcmNJbnRlcmNvbm5lY3QpKSAoY29udGFjdDFMYXllclMgPSBudGgoMCBjb250YWN0MUluZm9TKSkgKGNvbnRhY3QxV2lkdGhTID0gbnRoKDEgY29udGFjdDFJbmZvUykpIChjb250YWN0MVNwYWNlUyA9IG50aCgyIGNvbnRhY3QxSW5mb1MpKSAoY29udGFjdDFDb2xzUyA9IG50aCgzIGNvbnRhY3QxSW5mb1MpKSAobWV0MUxheWVyUyA9IG50aCg0IGNvbnRhY3QxSW5mb1MpKSAobWV0MVdpZHRoUyA9IG50aCg1IGNvbnRhY3QxSW5mb1MpKSAobWV0MVNwYWNlUyA9IG50aCg2IGNvbnRhY3QxSW5mb1MpKSAobWV0MUJldmVsUyA9IG50aCg3IGNvbnRhY3QxSW5mb1MpKSAoY29udGFjdDBJbmZvRCA9IG50aCgwIGRybkludGVyY29ubmVjdCkpIChjb250YWN0MExheWVyRCA9IG50aCgwIGNvbnRhY3QwSW5mb0QpKSAoY29udGFjdDBXaWR0aEQgPSBudGgoMSBjb250YWN0MEluZm9EKSkgKGNvbnRhY3QwU3BhY2VEID0gbnRoKDIgY29udGFjdDBJbmZvRCkpIChjb250YWN0MENvbHNEID0gbnRoKDMgY29udGFjdDBJbmZvRCkpIChtZXQwTGF5ZXJEID0gbnRoKDQgY29udGFjdDBJbmZvRCkpIChtZXQwV2lkdGhEID0gbnRoKDUgY29udGFjdDBJbmZvRCkpIChtZXQwU3BhY2VEID0gbnRoKDYgY29udGFjdDBJbmZvRCkpIChtZXQwQmV2ZWxEID0gbnRoKDcgY29udGFjdDBJbmZvRCkpIChjb250YWN0MUluZm9EID0gbnRoKDEgZHJuSW50ZXJjb25uZWN0KSkgKGNvbnRhY3QxTGF5ZXJEID0gbnRoKDAgY29udGFjdDFJbmZvRCkpIChjb250YWN0MVdpZHRoRCA9IG50aCgxIGNvbnRhY3QxSW5mb0QpKSAoY29udGFjdDFTcGFjZUQgPSBudGgoMiBjb250YWN0MUluZm9EKSkgKGNvbnRhY3QxQ29sc0QgPSBudGgoMyBjb250YWN0MUluZm9EKSkgKG1ldDFMYXllckQgPSBudGgoNCBjb250YWN0MUluZm9EKSkgKG1ldDFTcGFjZUQgPSBudGgoNiBjb250YWN0MUluZm9EKSkgKG1ldDFCZXZlbEQgPSBudGgoNyBjb250YWN0MUluZm9EKSkgKHNyY1BpbldpZHRoID0gKChjb250YWN0MFdpZHRoUyAqIGNvbnRhY3QwQ29sc1MpICsgKChjb250YWN0MENvbHNTICsgLTEpICogY29udGFjdDBTcGFjZVMpKSkgKG1Tb3VyY2VQaW5PZmZzZXQgPSBzcmNHYXRlQ29udGFjdFNwYWNlKSAoc2hhcmVkU291cmNlV2lkdGggPSAoKG1Tb3VyY2VQaW5PZmZzZXQgKiAyLjApICsgc3JjUGluV2lkdGgpKSAoZHJuUGluV2lkdGggPSAoKGNvbnRhY3QwV2lkdGhEICogY29udGFjdDBDb2xzRCkgKyAoKGNvbnRhY3QwQ29sc0QgKyAtMSkgKiBjb250YWN0MFNwYWNlRCkpKSAobURyYWluUGluT2Zmc2V0ID0gZHJuR2F0ZUNvbnRhY3RTcGFjZSkgKHNoYXJlZERyYWluV2lkdGggPSAoKG1EcmFpblBpbk9mZnNldCAqIDIuMCkgKyBkcm5QaW5XaWR0aCkpIChmaXJzdFNvdXJjZVBpbiA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmTGF5ZXIgP3dpZHRoIHNyY1BpbldpZHRoID9sZW5ndGggdyA/cGluIHQgP3Rlcm1OYW1lICJTIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikgP3BpbkxhYmVsIHQgP3BpbkxhYmVsSGVpZ2h0IGxhYmVsV2lkdGggP3BpbkxhYmVsTGF5ZXIgbGFiZWxMYXllciA/cGluTGFiZWxGb250ICJyb21hbiIgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIGNvbnRhY3QwTGF5ZXJTID93aWR0aCBjb250YWN0MFdpZHRoUyA/bGVuZ3RoIGNvbnRhY3QwV2lkdGhTID9zcGFjZVkgY29udGFjdDBTcGFjZVMgP3NwYWNlWCBjb250YWN0MFNwYWNlUyA/bG93ZXJMZWZ0T2Zmc2V0WSBkaWZmQ29udGFjdDBZZW5jID91cHBlclJpZ2h0T2Zmc2V0WSAoLSBkaWZmQ29udGFjdDBZZW5jKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBmaXJzdFNvdXJjZVBpbiA/YWxpZ25IYW5kbGUgImxSIiA/cmVmUG9pbnQgZXNkQ2VsbE9yaWdpbiA/eFNlcCAoLSBtU291cmNlUGluT2Zmc2V0KSkgKGNvbnRhY3QxUGl0Y2hTID0gKGNvbnRhY3QxV2lkdGhTICsgY29udGFjdDFTcGFjZVMpKSAoY29udGFjdDFQaXRjaEQgPSAoY29udGFjdDFXaWR0aEQgKyBjb250YWN0MVNwYWNlRCkpIChtZXQwUGluV2lkdGhTID0gKChjb250YWN0MVdpZHRoUyAqIGNvbnRhY3QxQ29sc1MpICsgKChjb250YWN0MUNvbHNTICsgLTEpICogY29udGFjdDFTcGFjZVMpKSkgKG1ldDBQaW5XaWR0aEQgPSAoKGNvbnRhY3QxV2lkdGhEICogY29udGFjdDFDb2xzRCkgKyAoKGNvbnRhY3QxQ29sc0QgKyAtMSkgKiBjb250YWN0MVNwYWNlRCkpKSAoZmlyc3RNZXQwUGluID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllclMgP3dpZHRoIG1ldDBQaW5XaWR0aFMgP2xlbmd0aCB3ID9waW4gdCA/dGVybU5hbWUgIlMiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgY29udGFjdDFMYXllclMgP3dpZHRoIGNvbnRhY3QxV2lkdGhTID9sZW5ndGggY29udGFjdDFXaWR0aFMgP3NwYWNlWSBjb250YWN0MVNwYWNlUyA/c3BhY2VYIGNvbnRhY3QxU3BhY2VTID9sb3dlckxlZnRPZmZzZXRZIGRpZmZDb250YWN0MFllbmMgP3VwcGVyUmlnaHRPZmZzZXRZICgtIGRpZmZDb250YWN0MFllbmMpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGZpcnN0TWV0MFBpbiA/YWxpZ25IYW5kbGUgImxDIiA/cmVmT2JqIGZpcnN0U291cmNlUGluID9yZWZIYW5kbGUgImxDIikgKGZpcnN0TWV0MERyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MExheWVyUyA/d2lkdGggbWV0MFdpZHRoUyA/bGVuZ3RoIHcpKSAocm9kQWxpZ24gP2FsaWduT2JqIGZpcnN0TWV0MERyYXdpbmcgP2FsaWduSGFuZGxlICJsQyIgP3JlZk9iaiBmaXJzdE1ldDBQaW4gP3JlZkhhbmRsZSAibEMiKSBkZWNsYXJlKG1ldDFEcmF3aW5nUHRzU1s4XSkgZGVjbGFyZShtZXQxRHJhd2luZ1B0c0RbOF0pICh4ME1ldDEgPSAwLjApICh5ME1ldDEgPSAwLjApIChtZXQxRHJhd2luZ1B0c1NbMF0gPSAoeDBNZXQxOih5ME1ldDEgKyBtZXQxQmV2ZWxTKSkpIChtZXQxRHJhd2luZ1B0c1NbMV0gPSAoeDBNZXQxOih3IC0gbWV0MUJldmVsUykpKSAobWV0MURyYXdpbmdQdHNTWzJdID0gKG1ldDFCZXZlbFM6dykpIChtZXQxRHJhd2luZ1B0c1NbM10gPSAoKG1ldDFXaWR0aFMgKyAoLSBtZXQxQmV2ZWxTKSk6dykpIChtZXQxRHJhd2luZ1B0c1NbNF0gPSAobWV0MVdpZHRoUzoodyAtIG1ldDFCZXZlbFMpKSkgKG1ldDFEcmF3aW5nUHRzU1s1XSA9IChtZXQxV2lkdGhTOih5ME1ldDEgKyBtZXQxQmV2ZWxTKSkpIChtZXQxRHJhd2luZ1B0c1NbNl0gPSAoKG1ldDFXaWR0aFMgKyAoLSBtZXQxQmV2ZWxTKSk6MCkpIChtZXQxRHJhd2luZ1B0c1NbN10gPSAobWV0MUJldmVsUzowKSkgKGZpcnN0TWV0MXBvaW50c1MgPSBuaWwpIChtZXQxRHJhd2luZ1B0c0RbMF0gPSAoeDBNZXQxOih5ME1ldDEgKyBtZXQxQmV2ZWxEKSkpIChtZXQxRHJhd2luZ1B0c0RbMV0gPSAoeDBNZXQxOih3IC0gbWV0MUJldmVsRCkpKSAobWV0MURyYXdpbmdQdHNEWzJdID0gKG1ldDFCZXZlbEQ6dykpIChtZXQxRHJhd2luZ1B0c0RbM10gPSAoKG1ldDFXaWR0aEQgKyAoLSBtZXQxQmV2ZWxEKSk6dykpIChtZXQxRHJhd2luZ1B0c0RbNF0gPSAobWV0MVdpZHRoRDoodyAtIG1ldDFCZXZlbEQpKSkgKG1ldDFEcmF3aW5nUHRzRFs1XSA9IChtZXQxV2lkdGhEOih5ME1ldDEgKyBtZXQxQmV2ZWxEKSkpIChtZXQxRHJhd2luZ1B0c0RbNl0gPSAoKG1ldDFXaWR0aEQgKyAoLSBtZXQxQmV2ZWxEKSk6MCkpIChtZXQxRHJhd2luZ1B0c0RbN10gPSAobWV0MUJldmVsRDowKSkgKGZpcnN0TWV0MXBvaW50c0QgPSBuaWwpIGZvcihpIDEgOCAoZmlyc3RNZXQxcG9pbnRzUyA9IGNvbnMoKGNhcihtZXQxRHJhd2luZ1B0c1NbKDggLSBpKV0pOmNhZHIobWV0MURyYXdpbmdQdHNTWyg4IC0gaSldKSkgZmlyc3RNZXQxcG9pbnRzUykpIChmaXJzdE1ldDFwb2ludHNEID0gY29ucygoY2FyKG1ldDFEcmF3aW5nUHRzRFsoOCAtIGkpXSk6Y2FkcihtZXQxRHJhd2luZ1B0c0RbKDggLSBpKV0pKSBmaXJzdE1ldDFwb2ludHNEKSkpIChmaXJzdE1ldDFEcmF3aW5nID0gKHJvZENyZWF0ZVBvbHlnb24gP2xheWVyIG1ldDFMYXllclMgP3B0cyBmaXJzdE1ldDFwb2ludHNTID9waW4gdCA/dGVybU5hbWUgIlMiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogZmlyc3RNZXQxRHJhd2luZyA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIGZpcnN0TWV0MERyYXdpbmcgP3JlZkhhbmRsZSAiY0MiKSAoc291cmNlUGluc051bWJlciA9IDEpIChkcmFpblBpbnNOdW1iZXIgPSAxKSAoc291cmNlUGluc051bWJlciA9IChtIC8gNCkpIChkcmFpblBpbnNOdW1iZXIgPSBzb3VyY2VQaW5zTnVtYmVyKSAoc291cmNlUGluc1NwYWNlID0gKHNoYXJlZERyYWluV2lkdGggKyAobCAqIDQpICsgKDIgKiBzaGFyZWRDYXNjb2RlRGlmZldpZHRoKSArIChtU291cmNlUGluT2Zmc2V0ICogMi4wKSkpIChkcmFpblBpbnNTcGFjZSA9IChzaGFyZWRTb3VyY2VXaWR0aCArIChsICogNCkgKyAoMiAqIHNoYXJlZENhc2NvZGVEaWZmV2lkdGgpICsgKG1EcmFpblBpbk9mZnNldCAqIDIuMCkpKSAoc291cmNlUGluc09yaWdpbk9mZnNldCA9IChzb3VyY2VQaW5zU3BhY2UgKyBzcmNQaW5XaWR0aCkpIChzb3VyY2VQaW5zT3JpZ2luWCA9IChjYXIoZXNkQ2VsbE9yaWdpbikgKyAobCAqIDQpICsgKDIgKiBzaGFyZWRDYXNjb2RlRGlmZldpZHRoKSArIHNoYXJlZERyYWluV2lkdGggKyBtU291cmNlUGluT2Zmc2V0KSkgZm9yKG4gMSBzb3VyY2VQaW5zTnVtYmVyIChzb3VyY2VQaW5zT3JpZ2luID0gbGlzdCgoc291cmNlUGluc09yaWdpblggKyAoKG4gLSAxKSAqIHNvdXJjZVBpbnNPcmlnaW5PZmZzZXQpKSAwLjApKSAoc291cmNlUGlucyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmTGF5ZXIgP3dpZHRoIHNyY1BpbldpZHRoID9sZW5ndGggdyA/b3JpZ2luIHNvdXJjZVBpbnNPcmlnaW4gP3BpbiB0ID90ZXJtTmFtZSAiUyIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpID9waW5MYWJlbCB0ID9waW5MYWJlbEhlaWdodCBsYWJlbFdpZHRoID9waW5MYWJlbExheWVyIGxhYmVsTGF5ZXIgP3BpbkxhYmVsRm9udCAicm9tYW4iID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciBjb250YWN0MExheWVyUyA/d2lkdGggY29udGFjdDBXaWR0aFMgP2xlbmd0aCBjb250YWN0MFdpZHRoUyA/c3BhY2VZIGNvbnRhY3QwU3BhY2VTID9zcGFjZVggY29udGFjdDBTcGFjZVMgP2xvd2VyTGVmdE9mZnNldFkgZGlmZkNvbnRhY3QwWWVuYyA/dXBwZXJSaWdodE9mZnNldFkgKC0gZGlmZkNvbnRhY3QwWWVuYykpKSkpIChzb3VyY2VNZXQwUGlucyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXJTID93aWR0aCBtZXQwUGluV2lkdGhTID9sZW5ndGggdyA/cGluIHQgP3Rlcm1OYW1lICJTIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIGNvbnRhY3QxTGF5ZXJTID93aWR0aCBjb250YWN0MVdpZHRoUyA/bGVuZ3RoIGNvbnRhY3QxV2lkdGhTID9zcGFjZVkgY29udGFjdDFTcGFjZVMgP3NwYWNlWCBjb250YWN0MVNwYWNlUyA/bG93ZXJMZWZ0T2Zmc2V0WSBkaWZmQ29udGFjdDBZZW5jID91cHBlclJpZ2h0T2Zmc2V0WSAoLSBkaWZmQ29udGFjdDBZZW5jKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBzb3VyY2VNZXQwUGlucyA/YWxpZ25IYW5kbGUgImxDIiA/cmVmT2JqIHNvdXJjZVBpbnMgP3JlZkhhbmRsZSAibEMiKSAoc291cmNlTWV0MERyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MExheWVyUyA/d2lkdGggbWV0MFdpZHRoUyA/bGVuZ3RoIHcpKSAocm9kQWxpZ24gP2FsaWduT2JqIHNvdXJjZU1ldDBEcmF3aW5nID9hbGlnbkhhbmRsZSAibEMiID9yZWZPYmogc291cmNlTWV0MFBpbnMgP3JlZkhhbmRsZSAibEMiKSAoc291cmNlTWV0MURyYXdpbmcgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgbWV0MUxheWVyUyA/cHRzIGZpcnN0TWV0MXBvaW50c1MgP3BpbiB0ID90ZXJtTmFtZSAiUyIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBzb3VyY2VNZXQxRHJhd2luZyA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIHNvdXJjZU1ldDBEcmF3aW5nID9yZWZIYW5kbGUgImNDIikpIChkcmFpblBpbnNPcmlnaW5PZmZzZXQgPSAoZHJhaW5QaW5zU3BhY2UgKyBkcm5QaW5XaWR0aCkpIChkcmFpblBpbnNPcmlnaW5YID0gKGNhcihlc2RDZWxsT3JpZ2luKSArIChsICogMikgKyBzaGFyZWRDYXNjb2RlRGlmZldpZHRoICsgbURyYWluUGluT2Zmc2V0KSkgZm9yKG4gMSBkcmFpblBpbnNOdW1iZXIgKGRyYWluUGluc09yaWdpbiA9IGxpc3QoKGRyYWluUGluc09yaWdpblggKyAoKG4gLSAxKSAqIGRyYWluUGluc09yaWdpbk9mZnNldCkpIDAuMCkpIChkcmFpblBpbnMgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkxheWVyID93aWR0aCBkcm5QaW5XaWR0aCA/bGVuZ3RoIHcgP29yaWdpbiBkcmFpblBpbnNPcmlnaW4gP3BpbiB0ID90ZXJtTmFtZSAiRCIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpID9waW5MYWJlbCB0ID9waW5MYWJlbEhlaWdodCBsYWJlbFdpZHRoID9waW5MYWJlbExheWVyIGxhYmVsTGF5ZXIgP3BpbkxhYmVsRm9udCAicm9tYW4iID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciBjb250YWN0MExheWVyRCA/d2lkdGggY29udGFjdDBXaWR0aEQgP2xlbmd0aCBjb250YWN0MFdpZHRoRCA/c3BhY2VZIGNvbnRhY3QwU3BhY2VEID9zcGFjZVggY29udGFjdDBTcGFjZUQgP2xvd2VyTGVmdE9mZnNldFkgZGlmZkNvbnRhY3QwWWVuYyA/dXBwZXJSaWdodE9mZnNldFkgKC0gZGlmZkNvbnRhY3QwWWVuYykpKSkpIChkcmFpbk1ldDBQaW5zID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllckQgP3dpZHRoIG1ldDBQaW5XaWR0aEQgP2xlbmd0aCB3ID9waW4gdCA/dGVybU5hbWUgIkQiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgY29udGFjdDFMYXllckQgP3dpZHRoIGNvbnRhY3QxV2lkdGhEID9sZW5ndGggY29udGFjdDFXaWR0aEQgP3NwYWNlWSBjb250YWN0MVNwYWNlRCA/c3BhY2VYIGNvbnRhY3QxU3BhY2VEID9sb3dlckxlZnRPZmZzZXRZIGRpZmZDb250YWN0MFllbmMgP3VwcGVyUmlnaHRPZmZzZXRZICgtIGRpZmZDb250YWN0MFllbmMpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGRyYWluTWV0MFBpbnMgP2FsaWduSGFuZGxlICJsQyIgP3JlZk9iaiBkcmFpblBpbnMgP3JlZkhhbmRsZSAibEMiKSAoZHJhaW5NZXQwRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXJEID93aWR0aCBtZXQwV2lkdGhEID9sZW5ndGggdykpIChyb2RBbGlnbiA/YWxpZ25PYmogZHJhaW5NZXQwRHJhd2luZyA/YWxpZ25IYW5kbGUgImxDIiA/cmVmT2JqIGRyYWluTWV0MFBpbnMgP3JlZkhhbmRsZSAibEMiKSAoZHJhaW5NZXQxRHJhd2luZyA9IChyb2RDcmVhdGVQb2x5Z29uID9sYXllciBtZXQxTGF5ZXJEID9wdHMgZmlyc3RNZXQxcG9pbnRzRCA/cGluIHQgP3Rlcm1OYW1lICJEIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikpKSAocm9kQWxpZ24gP2FsaWduT2JqIGRyYWluTWV0MURyYXdpbmcgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBkcmFpbk1ldDBEcmF3aW5nID9yZWZIYW5kbGUgImNDIikpIChzaGFyZWRDYXNjb2RlRGlmZk51bWJlciA9IChjZWlsaW5nIChtIC8gNC4wKSkpIChzaGFyZWRDYXNjb2RlRGlmZlNwYWNlID0gKChsICogNCkgKyBzaGFyZWRTb3VyY2VXaWR0aCArICgyICogc2hhcmVkQ2FzY29kZURpZmZXaWR0aCkgKyBzaGFyZWREcmFpbldpZHRoKSkgKHNoYXJlZENhc2NvZGVEaWZmT3JpZ2luWF8xID0gKGNhcihlc2RDZWxsT3JpZ2luKSArIGwpKSAoc2hhcmVkQ2FzY29kZURpZmZPcmlnaW5YXzIgPSAoY2FyKGVzZENlbGxPcmlnaW4pICsgKDMgKiBsKSArIHNoYXJlZENhc2NvZGVEaWZmV2lkdGggKyBzaGFyZWREcmFpbldpZHRoKSkgKHNoYXJlZENhc2NvZGVEaWZmT3JpZ2luT2Zmc2V0ID0gc2hhcmVkQ2FzY29kZURpZmZTcGFjZSkgZm9yKG4gMSBzaGFyZWRDYXNjb2RlRGlmZk51bWJlciAoc2hhcmVkQ2FzY29kZURpZmZPcmlnaW5fMSA9IGxpc3QoKHNoYXJlZENhc2NvZGVEaWZmT3JpZ2luWF8xICsgKChuIC0gMSkgKiBzaGFyZWRDYXNjb2RlRGlmZk9yaWdpbk9mZnNldCkpIDAuMCkpIChzaGFyZWRDYXNjb2RlRGlmZl8xID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZMYXllciA/d2lkdGggc2hhcmVkQ2FzY29kZURpZmZXaWR0aCA/bGVuZ3RoIHcgP29yaWdpbiBzaGFyZWRDYXNjb2RlRGlmZk9yaWdpbl8xKSkgKHNoYXJlZENhc2NvZGVEaWZmT3JpZ2luXzIgPSBsaXN0KChzaGFyZWRDYXNjb2RlRGlmZk9yaWdpblhfMiArICgobiAtIDEpICogc2hhcmVkQ2FzY29kZURpZmZPcmlnaW5PZmZzZXQpKSAwLjApKSAoc2hhcmVkQ2FzY29kZURpZmZfMiA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmTGF5ZXIgP3dpZHRoIHNoYXJlZENhc2NvZGVEaWZmV2lkdGggP2xlbmd0aCB3ID9vcmlnaW4gc2hhcmVkQ2FzY29kZURpZmZPcmlnaW5fMikpKSAoZmxhcmVZID0gKGZsYXJlT3V0RGlmZiArIGZsYXJlRXh0KSkgY29uZCgoc2luZ2xlRmxhcmUgZGVjbGFyZShvZGRmbGFyZUdhdGVQdHNbOF0pICh4bzAgPSAoKC0gZmxhcmVPdXREaWZmKSArICgtIGZsYXJlSW5EaWZmKSkpICh4bzIgPSAoeG8wICsgZmxhcmVJbkRpZmYgKyBmbGFyZU91dERpZmYpKSAoeG82ID0gKHhvMiArIGwpKSAob2RkZmxhcmVHYXRlUHRzWzBdID0gKHhvMDooLSBmbGFyZVkpKSkgKG9kZGZsYXJlR2F0ZVB0c1sxXSA9ICh4bzA6KC0gZmxhcmVPdXREaWZmKSkpIChvZGRmbGFyZUdhdGVQdHNbMl0gPSAoeG8yOmZsYXJlSW5EaWZmKSkgKG9kZGZsYXJlR2F0ZVB0c1szXSA9ICh4bzI6KHcgKyAoLSBmbGFyZUluRGlmZikpKSkgKG9kZGZsYXJlR2F0ZVB0c1s0XSA9ICh4bzA6KHcgKyBmbGFyZU91dERpZmYpKSkgKG9kZGZsYXJlR2F0ZVB0c1s1XSA9ICh4bzA6KHcgKyBmbGFyZVkpKSkgKG9kZGZsYXJlR2F0ZVB0c1s2XSA9ICh4bzY6KHcgKyBmbGFyZVkpKSkgKG9kZGZsYXJlR2F0ZVB0c1s3XSA9ICh4bzY6KC0gZmxhcmVZKSkpIGRlY2xhcmUoZXZlbmZsYXJlR2F0ZVB0c1s4XSkgKHhlMCA9IDAuMCkgKHhlMiA9ICh4ZTAgKyBsICsgZmxhcmVJbkRpZmYgKyBmbGFyZU91dERpZmYpKSAoeGU0ID0gKHhlMCArIGwpKSAoZXZlbmZsYXJlR2F0ZVB0c1swXSA9ICh4ZTA6KC0gZmxhcmVZKSkpIChldmVuZmxhcmVHYXRlUHRzWzFdID0gKHhlMDoodyArIGZsYXJlWSkpKSAoZXZlbmZsYXJlR2F0ZVB0c1syXSA9ICh4ZTI6KHcgKyBmbGFyZVkpKSkgKGV2ZW5mbGFyZUdhdGVQdHNbM10gPSAoeGUyOih3ICsgZmxhcmVPdXREaWZmKSkpIChldmVuZmxhcmVHYXRlUHRzWzRdID0gKHhlNDoodyArICgtIGZsYXJlSW5EaWZmKSkpKSAoZXZlbmZsYXJlR2F0ZVB0c1s1XSA9ICh4ZTQ6ZmxhcmVJbkRpZmYpKSAoZXZlbmZsYXJlR2F0ZVB0c1s2XSA9ICh4ZTI6KC0gZmxhcmVPdXREaWZmKSkpIChldmVuZmxhcmVHYXRlUHRzWzddID0gKHhlMjooLSBmbGFyZVkpKSkgZm9yKGkgMSA4IChwb2ludExpc3QxID0gY29ucygoY2FyKG9kZGZsYXJlR2F0ZVB0c1soOCAtIGkpXSk6Y2FkcihvZGRmbGFyZUdhdGVQdHNbKDggLSBpKV0pKSBwb2ludExpc3QxKSkpIChmaXJzdEdhdGVEcmF3aW5nID0gKHJvZENyZWF0ZVBvbHlnb24gP2xheWVyIGdhdGVMYXllciA/cHRzIHBvaW50TGlzdDEgP3BpbiB0ID90ZXJtTmFtZSAiRyIgP3Rlcm1JT1R5cGUgImlucHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpKSkpICh0IGRlY2xhcmUoZmxhcmVHYXRlUHRzWzEyXSkgKHgwID0gKCgtIGZsYXJlT3V0RGlmZikgKyAoLSBmbGFyZUluRGlmZikpKSAoeDIgPSAoeDAgKyBmbGFyZUluRGlmZiArIGZsYXJlT3V0RGlmZikpICh4NiA9ICh4MiArIGwgKyAoLSB4MCkpKSAoeDggPSAoeDIgKyBsKSkgKGZsYXJlR2F0ZVB0c1swXSA9ICh4MDooLSBmbGFyZVkpKSkgKGZsYXJlR2F0ZVB0c1sxXSA9ICh4MDooLSBmbGFyZU91dERpZmYpKSkgKGZsYXJlR2F0ZVB0c1syXSA9ICh4MjpmbGFyZUluRGlmZikpIChmbGFyZUdhdGVQdHNbM10gPSAoeDI6KHcgKyAoLSBmbGFyZUluRGlmZikpKSkgKGZsYXJlR2F0ZVB0c1s0XSA9ICh4MDoodyArIGZsYXJlT3V0RGlmZikpKSAoZmxhcmVHYXRlUHRzWzVdID0gKHgwOih3ICsgZmxhcmVZKSkpIChmbGFyZUdhdGVQdHNbNl0gPSAoeDY6KHcgKyBmbGFyZVkpKSkgKGZsYXJlR2F0ZVB0c1s3XSA9ICh4NjoodyArIGZsYXJlT3V0RGlmZikpKSAoZmxhcmVHYXRlUHRzWzhdID0gKHg4Oih3ICsgKC0gZmxhcmVJbkRpZmYpKSkpIChmbGFyZUdhdGVQdHNbOV0gPSAoeDg6ZmxhcmVJbkRpZmYpKSAoZmxhcmVHYXRlUHRzWzEwXSA9ICh4NjooLSBmbGFyZU91dERpZmYpKSkgKGZsYXJlR2F0ZVB0c1sxMV0gPSAoeDY6KC0gZmxhcmVZKSkpIChwb2ludExpc3QxID0gbmlsKSBmb3IoaSAxIDEyIChwb2ludExpc3QxID0gY29ucygoY2FyKGZsYXJlR2F0ZVB0c1soMTIgLSBpKV0pOmNhZHIoZmxhcmVHYXRlUHRzWygxMiAtIGkpXSkpIHBvaW50TGlzdDEpKSkgKGZpcnN0R2F0ZURyYXdpbmcgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgZ2F0ZUxheWVyID9wdHMgcG9pbnRMaXN0MSA/cGluIHQgP3Rlcm1OYW1lICJHIiA/dGVybUlPVHlwZSAiaW5wdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikpKSkpIChvZGRHYXRlT2Zmc2V0ID0gMC4wKSBmb3IobiAyIG0gd2hlbihvZGRwKG4pIChwb2ludExpc3QxID0gbmlsKSAob2RkR2F0ZU9mZnNldCA9IChzaGFyZWRDYXNjb2RlRGlmZldpZHRoICsgbCArIGlmKG9kZHAoKGZsb29yIChuIC8gMikpKSBzaGFyZWREcmFpbldpZHRoIHNoYXJlZFNvdXJjZVdpZHRoKSArIGwgKyBvZGRHYXRlT2Zmc2V0KSkgY29uZCgoc2luZ2xlRmxhcmUgZm9yKGkgMSA4IChwb2ludExpc3QxID0gY29ucygoKGNhcihvZGRmbGFyZUdhdGVQdHNbKDggLSBpKV0pICsgb2RkR2F0ZU9mZnNldCk6Y2FkcihvZGRmbGFyZUdhdGVQdHNbKDggLSBpKV0pKSBwb2ludExpc3QxKSkpKSAodCBmb3IoaSAxIDEyIChwb2ludExpc3QxID0gY29ucygoKGNhcihmbGFyZUdhdGVQdHNbKDEyIC0gaSldKSArIG9kZEdhdGVPZmZzZXQpOmNhZHIoZmxhcmVHYXRlUHRzWygxMiAtIGkpXSkpIHBvaW50TGlzdDEpKSkpKSAob2RkR2F0ZURyYXdpbmcgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgZ2F0ZUxheWVyID9wdHMgcG9pbnRMaXN0MSA/cGluIHQgP3Rlcm1OYW1lICJHIiA/dGVybUlPVHlwZSAiaW5wdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikpKSkgd2hlbihldmVucChuKSAocG9pbnRMaXN0MiA9IG5pbCkgaWYoKG4gPT0gMikgdGhlbiAoZXZlbkdhdGVPZmZzZXQgPSAoc2hhcmVkQ2FzY29kZURpZmZXaWR0aCArIGwpKSBlbHNlIChldmVuR2F0ZU9mZnNldCA9IChzaGFyZWRDYXNjb2RlRGlmZldpZHRoICsgbCArIGlmKGV2ZW5wKChmbG9vciAobiAvIDIpKSkgc2hhcmVkRHJhaW5XaWR0aCBzaGFyZWRTb3VyY2VXaWR0aCkgKyBsICsgZXZlbkdhdGVPZmZzZXQpKSkgY29uZCgoc2luZ2xlRmxhcmUgZm9yKGkgMSA4IChwb2ludExpc3QyID0gY29ucygoKGNhcihldmVuZmxhcmVHYXRlUHRzWyg4IC0gaSldKSArIGV2ZW5HYXRlT2Zmc2V0KTpjYWRyKGV2ZW5mbGFyZUdhdGVQdHNbKDggLSBpKV0pKSBwb2ludExpc3QyKSkpKSAodCBmb3IoaSAxIDEyIChwb2ludExpc3QyID0gY29ucygoKGNhcihmbGFyZUdhdGVQdHNbKDEyIC0gaSldKSArIGV2ZW5HYXRlT2Zmc2V0KTpjYWRyKGZsYXJlR2F0ZVB0c1soMTIgLSBpKV0pKSBwb2ludExpc3QyKSkpKSkgKGV2ZW5HYXRlRHJhd2luZyA9IChyb2RDcmVhdGVQb2x5Z29uID9sYXllciBnYXRlTGF5ZXIgP3B0cyBwb2ludExpc3QyID9waW4gdCA/dGVybU5hbWUgIkciID90ZXJtSU9UeXBlICJpbnB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSkpKSkgd2hlbihwZ2F0ZUxheWVyIChvZGQxUEdhdGVEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHBnYXRlTGF5ZXIgP3dpZHRoIGwgP2xlbmd0aCB3ID9vcmlnaW4gZXNkQ2VsbE9yaWdpbiA/ZWxlbWVudHNYIChjZWlsaW5nIChtIC8gNC4wKSkgP3NwYWNlWCAoKDIgKiBzaGFyZWRDYXNjb2RlRGlmZldpZHRoKSArICgzICogbCkgKyBzaGFyZWREcmFpbldpZHRoICsgc2hhcmVkU291cmNlV2lkdGgpKSkgKG9kZDJQR2F0ZURyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcGdhdGVMYXllciA/d2lkdGggbCA/bGVuZ3RoIHcgP29yaWdpbiBsaXN0KChjYXIoZXNkQ2VsbE9yaWdpbikgKyAoMiAqIGwpICsgc2hhcmVkQ2FzY29kZURpZmZXaWR0aCArIHNoYXJlZERyYWluV2lkdGgpIDApID9lbGVtZW50c1ggKGNlaWxpbmcgKG0gLyA0LjApKSA/c3BhY2VYICgoMiAqIHNoYXJlZENhc2NvZGVEaWZmV2lkdGgpICsgKDMgKiBsKSArIHNoYXJlZERyYWluV2lkdGggKyBzaGFyZWRTb3VyY2VXaWR0aCkpKSAoZXZlbjFQR2F0ZURyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcGdhdGVMYXllciA/d2lkdGggbCA/bGVuZ3RoIHcgP29yaWdpbiBsaXN0KChzaGFyZWRDYXNjb2RlRGlmZldpZHRoICsgbCkgMCkgP2VsZW1lbnRzWCAobSAvIDQpID9zcGFjZVggKCgyICogc2hhcmVkQ2FzY29kZURpZmZXaWR0aCkgKyAoMyAqIGwpICsgc2hhcmVkRHJhaW5XaWR0aCArIHNoYXJlZFNvdXJjZVdpZHRoKSkpIChldmVuMVBHYXRlRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBwZ2F0ZUxheWVyID93aWR0aCBsID9sZW5ndGggdyA/b3JpZ2luIGxpc3QoKGNhcihlc2RDZWxsT3JpZ2luKSArICgzICogbCkgKyAoMiAqIHNoYXJlZENhc2NvZGVEaWZmV2lkdGgpICsgc2hhcmVkRHJhaW5XaWR0aCkgMCkgP2VsZW1lbnRzWCAobSAvIDQpID9zcGFjZVggKCgyICogc2hhcmVkQ2FzY29kZURpZmZXaWR0aCkgKyAoMyAqIGwpICsgc2hhcmVkRHJhaW5XaWR0aCArIHNoYXJlZFNvdXJjZVdpZHRoKSkpKSAoZmV0RGlmZnVzaW9uWGRpbSA9ICgobCAqIG0pICsgKHNoYXJlZFNvdXJjZVdpZHRoICogKHNvdXJjZVBpbnNOdW1iZXIgKyAtMSkpICsgKHNoYXJlZERyYWluV2lkdGggKiBkcmFpblBpbnNOdW1iZXIpICsgKHNoYXJlZENhc2NvZGVEaWZmV2lkdGggKiAoMiAqIHNoYXJlZENhc2NvZGVEaWZmTnVtYmVyKSkgKyAoKHNyY1BpbldpZHRoICsgZGlmZkNvbnRhY3QwWGVuYyArIG1Tb3VyY2VQaW5PZmZzZXQpICogMi4wKSkpIChmZXREaWZmdXNpb24gPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkxheWVyID93aWR0aCBmZXREaWZmdXNpb25YZGltID9sZW5ndGggdykpIChyb2RBbGlnbiA/YWxpZ25PYmogZmV0RGlmZnVzaW9uID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogZmlyc3RTb3VyY2VQaW4gP3JlZkhhbmRsZSAibEwiID94U2VwICgtIGRpZmZDb250YWN0MFhlbmMpKSBjb25kKChidXR0aW5nVGFwIChmaXJzdFNvdXJjZVRhcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBMYXllciA/d2lkdGggYnV0dGluZ1RhcFdpZHRoID9sZW5ndGggdyA/cGluIHQpKSAocm9kQWxpZ24gP2FsaWduT2JqIGZpcnN0U291cmNlVGFwID9hbGlnbkhhbmRsZSAibFIiID9yZWZPYmogZmV0RGlmZnVzaW9uID9yZWZIYW5kbGUgImxMIikgKGZpcnN0U291cmNlVGFwTWV0MCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXJTID93aWR0aCAoYnV0dGluZ1RhcFdpZHRoICsgZGlmZkNvbnRhY3QwWGVuYykgP2xlbmd0aCB3KSkgKHJvZEFsaWduID9hbGlnbk9iaiBmaXJzdFNvdXJjZVRhcE1ldDAgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBmaXJzdFNvdXJjZVRhcCA/cmVmSGFuZGxlICJjTCIpIChmaXJzdFNvdXJjZVRhcE1ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MUxheWVyUyA/d2lkdGggKGJ1dHRpbmdUYXBXaWR0aCArICgyICogZGlmZkNvbnRhY3QwWGVuYykpID9sZW5ndGggdykpIChyb2RBbGlnbiA/YWxpZ25PYmogZmlyc3RTb3VyY2VUYXBNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogZmlyc3RTb3VyY2VUYXAgP3JlZkhhbmRsZSAiY0MiKSAoZmlyc3RTb3VyY2VUYXBJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwSW1wbGFudCA/d2lkdGggKHRhcEltcEVuYyArIGJ1dHRpbmdUYXBXaWR0aCkgP2xlbmd0aCAodyArICgyLjAgKiB0YXBJbXBFbmMpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogZmlyc3RTb3VyY2VUYXBJbXAgP2FsaWduSGFuZGxlICJsUiIgP3JlZk9iaiBmaXJzdFNvdXJjZVRhcCA/cmVmSGFuZGxlICJsUiIgP3lTZXAgKC0gdGFwSW1wRW5jKSkgKGxhc3RTb3VyY2VUYXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIGJ1dHRpbmdUYXBXaWR0aCA/bGVuZ3RoIHcgP3BpbiB0KSkgKHJvZEFsaWduID9hbGlnbk9iaiBsYXN0U291cmNlVGFwID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogZmV0RGlmZnVzaW9uID9yZWZIYW5kbGUgImxSIikgKGxhc3RTb3VyY2VUYXBNZXQwID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllclMgP3dpZHRoIChidXR0aW5nVGFwV2lkdGggKyBkaWZmQ29udGFjdDBYZW5jKSA/bGVuZ3RoIHcpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxhc3RTb3VyY2VUYXBNZXQwID9hbGlnbkhhbmRsZSAiY1IiID9yZWZPYmogbGFzdFNvdXJjZVRhcCA/cmVmSGFuZGxlICJjUiIpIChsYXN0U291cmNlVGFwTWV0MSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQxTGF5ZXJTID93aWR0aCAoYnV0dGluZ1RhcFdpZHRoICsgKDIgKiBkaWZmQ29udGFjdDBYZW5jKSkgP2xlbmd0aCB3KSkgKHJvZEFsaWduID9hbGlnbk9iaiBsYXN0U291cmNlVGFwTWV0MSA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIGxhc3RTb3VyY2VUYXAgP3JlZkhhbmRsZSAiY0MiKSAoZmV0RGlmZkltcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmSW1wbGFudCA/d2lkdGggZmV0RGlmZnVzaW9uWGRpbSA/bGVuZ3RoICh3ICsgKDIuMCAqIGRpZmZJbXBFbmMpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogZmV0RGlmZkltcCA/YWxpZ25IYW5kbGUgImxMIiA/cmVmT2JqIGZldERpZmZ1c2lvbiA/cmVmSGFuZGxlICJsTCIgP3lTZXAgKC0gZGlmZkltcEVuYykpIChsYXN0U291cmNlVGFwSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcEltcGxhbnQgP3dpZHRoICh0YXBJbXBFbmMgKyBidXR0aW5nVGFwV2lkdGgpID9sZW5ndGggKHcgKyAoMi4wICogdGFwSW1wRW5jKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxhc3RTb3VyY2VUYXBJbXAgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBsYXN0U291cmNlVGFwID9yZWZIYW5kbGUgImxMIiA/eVNlcCAoLSB0YXBJbXBFbmMpKSB3aGVuKCgobW9zVHlwZSA9PSAicG1vcyIpICYmIChyaW5ncyA9PSAiTm9uZSIpKSAod2VsbExheWVyRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB3ZWxsTGF5ZXIgP3dpZHRoIChmZXREaWZmdXNpb25YZGltICsgKDIuMCAqIGJ1dHRpbmdUYXBXaWR0aCkgKyAoMi4wICogaHZXZWxsRGlmZlRhcEVuYykpID9sZW5ndGggKHcgKyAoMi4wICogaHZXZWxsRGlmZlRhcEVuYykpKSkgKHJvZEFsaWduID9hbGlnbk9iaiB3ZWxsTGF5ZXJEcmF3aW5nID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogZmlyc3RTb3VyY2VUYXAgP3JlZkhhbmRsZSAibEwiID94U2VwICgtIGh2V2VsbERpZmZUYXBFbmMpID95U2VwICgtIGh2V2VsbERpZmZUYXBFbmMpKSkpICh0IChmZXREaWZmSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBsYW50ID9mcm9tT2JqIGZldERpZmZ1c2lvbiA/c2l6ZSBkaWZmSW1wRW5jKSkgd2hlbigoKG1vc1R5cGUgPT0gInBtb3MiKSAmJiAocmluZ3MgPT0gIk5vbmUiKSkgKHdlbGxMYXllckRyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgd2VsbExheWVyID9mcm9tT2JqIGZldERpZmZ1c2lvbiA/c2l6ZSBodldlbGxEaWZmVGFwRW5jKSkpKSkgd2hlbigoKHJpbmdzID09ICJJbm5lciIpIHx8IChyaW5ncyA9PSAiQm90aCIpKSAocmluZ0NvbnRhY3QwSW5mb0ggPSBudGgoMCBJbm5lclJpbmdJbnRlcmNvbm5lY3RIb3JpeikpIChyaW5nQ29udGFjdDBMYXllckggPSBudGgoMCByaW5nQ29udGFjdDBJbmZvSCkpIChyaW5nQ29udGFjdDBXaWR0aEggPSBudGgoMSByaW5nQ29udGFjdDBJbmZvSCkpIChyaW5nQ29udGFjdDBTcGFjZUggPSBudGgoMiByaW5nQ29udGFjdDBJbmZvSCkpIChyaW5nQ29udGFjdDBDb2xzSCA9IG50aCgzIHJpbmdDb250YWN0MEluZm9IKSkgKHJpbmdNZXQwTGF5ZXJIID0gbnRoKDQgcmluZ0NvbnRhY3QwSW5mb0gpKSAocmluZ01ldDBDb250MEVuY0ggPSBudGgoNSByaW5nQ29udGFjdDBJbmZvSCkpIChyaW5nTWV0MEluQmV2ZWxIID0gbnRoKDYgcmluZ0NvbnRhY3QwSW5mb0gpKSAocmluZ01ldDBPdXRCZXZlbEggPSBudGgoNyByaW5nQ29udGFjdDBJbmZvSCkpIChyaW5nQ29udGFjdDFJbmZvSCA9IG50aCgxIElubmVyUmluZ0ludGVyY29ubmVjdEhvcml6KSkgKHJpbmdDb250YWN0MUxheWVySCA9IG50aCgwIHJpbmdDb250YWN0MUluZm9IKSkgKHJpbmdDb250YWN0MVdpZHRoSCA9IG50aCgxIHJpbmdDb250YWN0MUluZm9IKSkgKHJpbmdDb250YWN0MVNwYWNlSCA9IG50aCgyIHJpbmdDb250YWN0MUluZm9IKSkgKHJpbmdDb250YWN0MUNvbHNIID0gbnRoKDMgcmluZ0NvbnRhY3QxSW5mb0gpKSAocmluZ01ldDFMYXllckggPSBudGgoNCByaW5nQ29udGFjdDFJbmZvSCkpIChyaW5nTWV0MUNvbnQxRW5jSCA9IG50aCg1IHJpbmdDb250YWN0MUluZm9IKSkgKHJpbmdNZXQxSW5CZXZlbEggPSBudGgoNiByaW5nQ29udGFjdDFJbmZvSCkpIChyaW5nTWV0MU91dEJldmVsSCA9IG50aCg3IHJpbmdDb250YWN0MUluZm9IKSkgKHJpbmdDb250YWN0MEluZm9WID0gbnRoKDAgSW5uZXJSaW5nSW50ZXJjb25uZWN0VmVydCkpIChyaW5nQ29udGFjdDBMYXllclYgPSBudGgoMCByaW5nQ29udGFjdDBJbmZvVikpIChyaW5nQ29udGFjdDBXaWR0aFYgPSBudGgoMSByaW5nQ29udGFjdDBJbmZvVikpIChyaW5nQ29udGFjdDBTcGFjZVYgPSBudGgoMiByaW5nQ29udGFjdDBJbmZvVikpIChyaW5nQ29udGFjdDBDb2xzViA9IG50aCgzIHJpbmdDb250YWN0MEluZm9WKSkgKHJpbmdNZXQwTGF5ZXJWID0gbnRoKDQgcmluZ0NvbnRhY3QwSW5mb1YpKSAocmluZ01ldDBDb250MEVuY1YgPSBudGgoNSByaW5nQ29udGFjdDBJbmZvVikpIChyaW5nTWV0MEluQmV2ZWxWID0gbnRoKDYgcmluZ0NvbnRhY3QwSW5mb1YpKSAocmluZ01ldDBPdXRCZXZlbFYgPSBudGgoNyByaW5nQ29udGFjdDBJbmZvVikpIChyaW5nQ29udGFjdDFJbmZvViA9IG50aCgxIElubmVyUmluZ0ludGVyY29ubmVjdFZlcnQpKSAocmluZ0NvbnRhY3QxTGF5ZXJWID0gbnRoKDAgcmluZ0NvbnRhY3QxSW5mb1YpKSAocmluZ0NvbnRhY3QxV2lkdGhWID0gbnRoKDEgcmluZ0NvbnRhY3QxSW5mb1YpKSAocmluZ0NvbnRhY3QxU3BhY2VWID0gbnRoKDIgcmluZ0NvbnRhY3QxSW5mb1YpKSAocmluZ0NvbnRhY3QxQ29sc1YgPSBudGgoMyByaW5nQ29udGFjdDFJbmZvVikpIChyaW5nTWV0MUxheWVyViA9IG50aCg0IHJpbmdDb250YWN0MUluZm9WKSkgKHJpbmdNZXQxQ29udDFFbmNWID0gbnRoKDUgcmluZ0NvbnRhY3QxSW5mb1YpKSAocmluZ01ldDFJbkJldmVsViA9IG50aCg2IHJpbmdDb250YWN0MUluZm9WKSkgKHJpbmdNZXQxT3V0QmV2ZWxWID0gbnRoKDcgcmluZ0NvbnRhY3QxSW5mb1YpKSAocmluZ0NvbnRhY3QwUGl0Y2hIID0gKHJpbmdDb250YWN0MFdpZHRoSCArIHJpbmdDb250YWN0MFNwYWNlSCkpIChyaW5nQ29udGFjdDBQaXRjaFYgPSAocmluZ0NvbnRhY3QwV2lkdGhWICsgcmluZ0NvbnRhY3QwU3BhY2VWKSkgKGlubmVyUmluZ1dpZHRoSCA9ICgocmluZ0NvbnRhY3QwV2lkdGhIICogcmluZ0NvbnRhY3QwQ29sc0gpICsgKChyaW5nQ29udGFjdDBDb2xzSCArIC0xKSAqIHJpbmdDb250YWN0MFNwYWNlSCkgKyAoMi4wICogcmluZ01ldDBDb250MEVuY0gpKSkgKGlubmVyUmluZ1dpZHRoViA9ICgocmluZ0NvbnRhY3QwV2lkdGhWICogcmluZ0NvbnRhY3QwQ29sc1YpICsgKChyaW5nQ29udGFjdDBDb2xzViArIC0xKSAqIHJpbmdDb250YWN0MFNwYWNlVikgKyAoMi4wICogcmluZ01ldDBDb250MEVuY1YpKSkgKGlubmVyUmluZ0xlbmd0aExSID0gKHcgKyBpbm5lclJpbmdGZXRUb3BTcGFjZSArIGlubmVyUmluZ0ZldEJvdFNwYWNlICsgKDIuMCAqIGlubmVyUmluZ1dpZHRoSCkpKSAoaW5uZXJSaW5nTGVuZ3RoVEIgPSAoZmV0RGlmZnVzaW9uWGRpbSArIGlubmVyUmluZ0ZldFJpZ2h0U3BhY2UgKyBpbm5lclJpbmdGZXRMZWZ0U3BhY2UgKyAoMi4wICogaW5uZXJSaW5nV2lkdGhWKSkpIChyaW5nQ29udGFjdDFQaXRjaEggPSAocmluZ0NvbnRhY3QxV2lkdGhIICsgcmluZ0NvbnRhY3QxU3BhY2VIKSkgKHJpbmdDb250YWN0MVBpdGNoViA9IChyaW5nQ29udGFjdDFXaWR0aFYgKyByaW5nQ29udGFjdDFTcGFjZVYpKSAoaW5uZXJNZXQxUmluZ1dpZHRoSCA9ICgocmluZ0NvbnRhY3QxV2lkdGhIICogcmluZ0NvbnRhY3QxQ29sc0gpICsgKChyaW5nQ29udGFjdDFDb2xzSCArIC0xKSAqIHJpbmdDb250YWN0MVNwYWNlSCkgKyAoMi4wICogcmluZ01ldDFDb250MUVuY0gpKSkgKGlubmVyTWV0MVJpbmdXaWR0aFYgPSAoKHJpbmdDb250YWN0MVdpZHRoViAqIHJpbmdDb250YWN0MUNvbHNWKSArICgocmluZ0NvbnRhY3QxQ29sc1YgKyAtMSkgKiByaW5nQ29udGFjdDFTcGFjZVYpICsgKDIuMCAqIHJpbmdNZXQxQ29udDFFbmNWKSkpIHdoZW4oKGlubmVyTWV0MVJpbmdXaWR0aEggPCByaW5nTWV0MU91dEJldmVsSCkgKHJpbmdNZXQxT3V0QmV2ZWxIID0gaW5uZXJNZXQxUmluZ1dpZHRoSCkpIHdoZW4oKGlubmVyTWV0MVJpbmdXaWR0aFYgPCByaW5nTWV0MU91dEJldmVsVikgKHJpbmdNZXQxT3V0QmV2ZWxWID0gaW5uZXJNZXQxUmluZ1dpZHRoVikpIChsZWZ0SW5uZXJSaW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcExheWVyID93aWR0aCBpbm5lclJpbmdXaWR0aFYgP2xlbmd0aCBpbm5lclJpbmdMZW5ndGhMUiA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QwTGF5ZXJWID93aWR0aCByaW5nQ29udGFjdDBXaWR0aFYgP2xlbmd0aCByaW5nQ29udGFjdDBXaWR0aFYgP3NwYWNlWSByaW5nQ29udGFjdDBTcGFjZVYgP3NwYWNlWCByaW5nQ29udGFjdDBTcGFjZVYgP2xvd2VyTGVmdE9mZnNldFkgKGlubmVyUmluZ1dpZHRoSCArIHJpbmdDb250YWN0MFBpdGNoSCkgP3VwcGVyUmlnaHRPZmZzZXRZICgoLSBpbm5lclJpbmdXaWR0aEgpICsgKC0gcmluZ0NvbnRhY3QwUGl0Y2hIKSkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbGVmdElubmVyUmluZyA/YWxpZ25IYW5kbGUgImxSIiA/cmVmT2JqIGZldERpZmZ1c2lvbiA/cmVmSGFuZGxlICJsTCIgP3hTZXAgKC0gaW5uZXJSaW5nRmV0TGVmdFNwYWNlKSA/eVNlcCAoKC0gaW5uZXJSaW5nRmV0Qm90U3BhY2UpICsgKC0gaW5uZXJSaW5nV2lkdGhIKSkpIChsZWZ0SW5uZXJSaW5nSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcEltcGxhbnQgP2Zyb21PYmogbGVmdElubmVyUmluZyA/c2l6ZSB0YXBJbXBFbmMpKSAobGVmdElubmVyUmluZ01ldDAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDBMYXllclYgP2Zyb21PYmogbGVmdElubmVyUmluZykpIChyaWdodElubmVyUmluZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBMYXllciA/d2lkdGggaW5uZXJSaW5nV2lkdGhWID9sZW5ndGggaW5uZXJSaW5nTGVuZ3RoTFIgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MExheWVyViA/d2lkdGggcmluZ0NvbnRhY3QwV2lkdGhWID9sZW5ndGggcmluZ0NvbnRhY3QwV2lkdGhWID9zcGFjZVkgcmluZ0NvbnRhY3QwU3BhY2VWID9zcGFjZVggcmluZ0NvbnRhY3QwU3BhY2VWID9sb3dlckxlZnRPZmZzZXRZIChpbm5lclJpbmdXaWR0aEggKyByaW5nQ29udGFjdDBQaXRjaEgpID91cHBlclJpZ2h0T2Zmc2V0WSAoKC0gaW5uZXJSaW5nV2lkdGhIKSArICgtIHJpbmdDb250YWN0MFBpdGNoSCkpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIHJpZ2h0SW5uZXJSaW5nID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogZmV0RGlmZnVzaW9uID9yZWZIYW5kbGUgImxSIiA/eFNlcCBpbm5lclJpbmdGZXRSaWdodFNwYWNlID95U2VwICgoLSBpbm5lclJpbmdGZXRCb3RTcGFjZSkgKyAoLSBpbm5lclJpbmdXaWR0aEgpKSkgKHJpZ2h0SW5uZXJSaW5nSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcEltcGxhbnQgP2Zyb21PYmogcmlnaHRJbm5lclJpbmcgP3NpemUgdGFwSW1wRW5jKSkgKHJpZ2h0SW5uZXJSaW5nTWV0MCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MExheWVyViA/ZnJvbU9iaiByaWdodElubmVyUmluZykpIChsb3dlcklubmVyUmluZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBMYXllciA/d2lkdGggaW5uZXJSaW5nTGVuZ3RoVEIgP2xlbmd0aCBpbm5lclJpbmdXaWR0aEggP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MExheWVySCA/d2lkdGggcmluZ0NvbnRhY3QwV2lkdGhIID9sZW5ndGggcmluZ0NvbnRhY3QwV2lkdGhIID9zcGFjZVkgcmluZ0NvbnRhY3QwU3BhY2VIID9zcGFjZVggcmluZ0NvbnRhY3QwU3BhY2VIID9sb3dlckxlZnRPZmZzZXRYIHJpbmdDb250YWN0MFBpdGNoSCA/dXBwZXJSaWdodE9mZnNldFggKC0gcmluZ0NvbnRhY3QwUGl0Y2hIKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsb3dlcklubmVyUmluZyA/YWxpZ25IYW5kbGUgInVMIiA/cmVmT2JqIGZldERpZmZ1c2lvbiA/cmVmSGFuZGxlICJsTCIgP3hTZXAgKCgtIGlubmVyUmluZ0ZldExlZnRTcGFjZSkgKyAoLSBpbm5lclJpbmdXaWR0aFYpKSA/eVNlcCAoLSBpbm5lclJpbmdGZXRCb3RTcGFjZSkpIChsb3dlcklubmVyUmluZ0ltcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBJbXBsYW50ID9mcm9tT2JqIGxvd2VySW5uZXJSaW5nID9zaXplIHRhcEltcEVuYykpIChsb3dlcklubmVyUmluZ01ldDAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDBMYXllckggP2Zyb21PYmogbG93ZXJJbm5lclJpbmcpKSAodXBwZXJJbm5lclJpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIGlubmVyUmluZ0xlbmd0aFRCID9sZW5ndGggaW5uZXJSaW5nV2lkdGhIID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDBMYXllckggP3dpZHRoIHJpbmdDb250YWN0MFdpZHRoSCA/bGVuZ3RoIHJpbmdDb250YWN0MFdpZHRoSCA/c3BhY2VZIHJpbmdDb250YWN0MFNwYWNlSCA/c3BhY2VYIHJpbmdDb250YWN0MFNwYWNlSCA/bG93ZXJMZWZ0T2Zmc2V0WCByaW5nQ29udGFjdDBQaXRjaEggP3VwcGVyUmlnaHRPZmZzZXRYICgtIHJpbmdDb250YWN0MFBpdGNoSCkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogdXBwZXJJbm5lclJpbmcgP2FsaWduSGFuZGxlICJ1TCIgP3JlZk9iaiBmZXREaWZmdXNpb24gP3JlZkhhbmRsZSAidUwiID94U2VwICgoLSBpbm5lclJpbmdGZXRMZWZ0U3BhY2UpICsgKC0gaW5uZXJSaW5nV2lkdGhWKSkgP3lTZXAgKGlubmVyUmluZ0ZldFRvcFNwYWNlICsgaW5uZXJSaW5nV2lkdGhIKSkgKHVwcGVySW5uZXJSaW5nSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcEltcGxhbnQgP2Zyb21PYmogdXBwZXJJbm5lclJpbmcgP3NpemUgdGFwSW1wRW5jKSkgKHVwcGVySW5uZXJSaW5nTWV0MCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MExheWVySCA/ZnJvbU9iaiB1cHBlcklubmVyUmluZykpIHVubGVzcyhyaW5nc01ldDFPZmYgKGxlZnRJbm5lclJpbmdNZXQxID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQxTGF5ZXJWID93aWR0aCBpbm5lck1ldDFSaW5nV2lkdGhWID9sZW5ndGggKGlubmVyUmluZ0xlbmd0aExSICsgKDIuMCAqICgtIGlubmVyTWV0MVJpbmdXaWR0aEgpKSArICgtIHJpbmdNZXQxT3V0QmV2ZWxIKSkgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MUxheWVyViA/d2lkdGggcmluZ0NvbnRhY3QxV2lkdGhWID9sZW5ndGggcmluZ0NvbnRhY3QxV2lkdGhWID9zcGFjZVkgcmluZ0NvbnRhY3QxU3BhY2VWID9zcGFjZVggcmluZ0NvbnRhY3QxU3BhY2VWID9sb3dlckxlZnRPZmZzZXRZIHJpbmdDb250YWN0MVBpdGNoViA/dXBwZXJSaWdodE9mZnNldFkgKC0gcmluZ0NvbnRhY3QxUGl0Y2hWKSA/bG93ZXJMZWZ0T2Zmc2V0WCByaW5nTWV0MUNvbnQxRW5jViA/dXBwZXJSaWdodE9mZnNldFggKC0gcmluZ01ldDFDb250MUVuY1YpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxlZnRJbm5lclJpbmdNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogbGVmdElubmVyUmluZyA/cmVmSGFuZGxlICJjQyIpIChyaWdodElubmVyUmluZ01ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDFMYXllclYgP3dpZHRoIGlubmVyTWV0MVJpbmdXaWR0aFYgP2xlbmd0aCAoaW5uZXJSaW5nTGVuZ3RoTFIgKyAoMi4wICogKC0gaW5uZXJNZXQxUmluZ1dpZHRoSCkpICsgKC0gcmluZ01ldDFPdXRCZXZlbEgpKSA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QxTGF5ZXJWID93aWR0aCByaW5nQ29udGFjdDFXaWR0aFYgP2xlbmd0aCByaW5nQ29udGFjdDFXaWR0aFYgP3NwYWNlWSByaW5nQ29udGFjdDFTcGFjZVYgP3NwYWNlWCByaW5nQ29udGFjdDFTcGFjZVYgP2xvd2VyTGVmdE9mZnNldFkgcmluZ0NvbnRhY3QxUGl0Y2hWID91cHBlclJpZ2h0T2Zmc2V0WSAoLSByaW5nQ29udGFjdDFQaXRjaFYpID9sb3dlckxlZnRPZmZzZXRYIHJpbmdNZXQxQ29udDFFbmNWID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nTWV0MUNvbnQxRW5jVikpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogcmlnaHRJbm5lclJpbmdNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogcmlnaHRJbm5lclJpbmcgP3JlZkhhbmRsZSAiY0MiKSAobG93ZXJJbm5lclJpbmdNZXQxID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQxTGF5ZXJIID93aWR0aCAoaW5uZXJSaW5nTGVuZ3RoVEIgKyAoMi4wICogKC0gcmluZ01ldDFPdXRCZXZlbFYpKSkgP2xlbmd0aCBpbm5lck1ldDFSaW5nV2lkdGhIID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDFMYXllckggP3dpZHRoIHJpbmdDb250YWN0MVdpZHRoSCA/bGVuZ3RoIHJpbmdDb250YWN0MVdpZHRoSCA/c3BhY2VZIHJpbmdDb250YWN0MVNwYWNlSCA/c3BhY2VYIHJpbmdDb250YWN0MVNwYWNlSCA/bG93ZXJMZWZ0T2Zmc2V0WCByaW5nQ29udGFjdDFQaXRjaEggP3VwcGVyUmlnaHRPZmZzZXRYICgtIHJpbmdDb250YWN0MVBpdGNoSCkgP2xvd2VyTGVmdE9mZnNldFkgcmluZ01ldDFDb250MUVuY0ggP3VwcGVyUmlnaHRPZmZzZXRZICgtIHJpbmdNZXQxQ29udDFFbmNIKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsb3dlcklubmVyUmluZ01ldDEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBsb3dlcklubmVyUmluZyA/cmVmSGFuZGxlICJjQyIpICh1cHBlcklubmVyUmluZ01ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDFMYXllckggP3dpZHRoIChpbm5lclJpbmdMZW5ndGhUQiArICgyLjAgKiAoLSByaW5nTWV0MU91dEJldmVsVikpKSA/bGVuZ3RoIGlubmVyTWV0MVJpbmdXaWR0aEggP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MUxheWVySCA/d2lkdGggcmluZ0NvbnRhY3QxV2lkdGhIID9sZW5ndGggcmluZ0NvbnRhY3QxV2lkdGhIID9zcGFjZVkgcmluZ0NvbnRhY3QxU3BhY2VIID9zcGFjZVggcmluZ0NvbnRhY3QxU3BhY2VIID9sb3dlckxlZnRPZmZzZXRYIHJpbmdDb250YWN0MVBpdGNoSCA/dXBwZXJSaWdodE9mZnNldFggKC0gcmluZ0NvbnRhY3QxUGl0Y2hIKSA/bG93ZXJMZWZ0T2Zmc2V0WSByaW5nTWV0MUNvbnQxRW5jSCA/dXBwZXJSaWdodE9mZnNldFkgKC0gcmluZ01ldDFDb250MUVuY0gpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIHVwcGVySW5uZXJSaW5nTWV0MSA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIHVwcGVySW5uZXJSaW5nID9yZWZIYW5kbGUgImNDIikgZGVjbGFyZShpbm5lclJpbmdNZXQxUHRzWzE4XSkgKGlubmVyUmluZ1dpZHRoRGlmZkggPSAoaW5uZXJNZXQxUmluZ1dpZHRoSCAtIGlubmVyUmluZ1dpZHRoSCkpIChpbm5lclJpbmdXaWR0aERpZmZWID0gKGlubmVyTWV0MVJpbmdXaWR0aFYgLSBpbm5lclJpbmdXaWR0aFYpKSAoeDBNZXQxID0gMC4wKSAoeTBNZXQxID0gMC4wKSAoaG9sZURpbVggPSAoZmV0RGlmZnVzaW9uWGRpbSArIGlubmVyUmluZ0ZldExlZnRTcGFjZSArIGlubmVyUmluZ0ZldFJpZ2h0U3BhY2UgKyAoLSBpbm5lclJpbmdXaWR0aERpZmZWKSArICgyLjAgKiAoLSByaW5nTWV0MUluQmV2ZWxWKSkpKSAoaG9sZURpbVkgPSAodyArIGlubmVyUmluZ0ZldFRvcFNwYWNlICsgaW5uZXJSaW5nRmV0Qm90U3BhY2UgKyAoLSBpbm5lclJpbmdXaWR0aERpZmZIKSArICgyLjAgKiAoLSByaW5nTWV0MUluQmV2ZWxIKSkpKSAoeDBNZXQxID0gMC4wKSAoeDJNZXQxID0gcmluZ01ldDFPdXRCZXZlbFYpICh4M01ldDEgPSAoKGhvbGVEaW1YICsgKDIuMCAqIHJpbmdNZXQxSW5CZXZlbFYpICsgKDIuMCAqIGlubmVyTWV0MVJpbmdXaWR0aFYpKSAtIHJpbmdNZXQxT3V0QmV2ZWxWKSkgKHg0TWV0MSA9ICh4M01ldDEgKyByaW5nTWV0MU91dEJldmVsVikpICh4OU1ldDEgPSAoaW5uZXJNZXQxUmluZ1dpZHRoViArIHJpbmdNZXQxSW5CZXZlbFYpKSAoeDEwTWV0MSA9ICh4OU1ldDEgKyBob2xlRGltWCkpICh4MTFNZXQxID0gKHgxME1ldDEgKyByaW5nTWV0MUluQmV2ZWxWKSkgKHgxNU1ldDEgPSBpbm5lck1ldDFSaW5nV2lkdGhWKSAoeTBNZXQxID0gKC0gcmluZ01ldDFJbkJldmVsSCkpICh5MU1ldDEgPSAoaG9sZURpbVkgKyByaW5nTWV0MUluQmV2ZWxIKSkgKHkyTWV0MSA9ICh5MU1ldDEgKyByaW5nTWV0MU91dEJldmVsSCkpICh5Nk1ldDEgPSAoKC0gcmluZ01ldDFJbkJldmVsSCkgKyAoLSByaW5nTWV0MU91dEJldmVsSCkpKSAoeThNZXQxID0gMC4wKSAoeTEyTWV0MSA9IGhvbGVEaW1ZKSAoaW5uZXJSaW5nTWV0MVB0c1swXSA9ICh4ME1ldDE6eTBNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbMV0gPSAoeDBNZXQxOnkxTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzJdID0gKHgyTWV0MTp5Mk1ldDEpKSAoaW5uZXJSaW5nTWV0MVB0c1szXSA9ICh4M01ldDE6eTJNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbNF0gPSAoeDRNZXQxOnkxTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzVdID0gKHg0TWV0MTp5ME1ldDEpKSAoaW5uZXJSaW5nTWV0MVB0c1s2XSA9ICh4M01ldDE6eTZNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbN10gPSAoeDJNZXQxOnk2TWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzhdID0gKHgxNU1ldDE6eThNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbOV0gPSAoeDlNZXQxOnkwTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzEwXSA9ICh4MTBNZXQxOnkwTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzExXSA9ICh4MTFNZXQxOnk4TWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzEyXSA9ICh4MTFNZXQxOnkxMk1ldDEpKSAoaW5uZXJSaW5nTWV0MVB0c1sxM10gPSAoeDEwTWV0MTp5MU1ldDEpKSAoaW5uZXJSaW5nTWV0MVB0c1sxNF0gPSAoeDlNZXQxOnkxTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzE1XSA9ICh4MTVNZXQxOnkxMk1ldDEpKSAoaW5uZXJSaW5nTWV0MVBvaW50cyA9IGxpc3QoaW5uZXJSaW5nTWV0MVB0c1swXSBpbm5lclJpbmdNZXQxUHRzWzFdIGlubmVyUmluZ01ldDFQdHNbMl0gaW5uZXJSaW5nTWV0MVB0c1szXSBpbm5lclJpbmdNZXQxUHRzWzRdIGlubmVyUmluZ01ldDFQdHNbNV0gaW5uZXJSaW5nTWV0MVB0c1s2XSBpbm5lclJpbmdNZXQxUHRzWzddIGlubmVyUmluZ01ldDFQdHNbOV0gaW5uZXJSaW5nTWV0MVB0c1sxMF0gaW5uZXJSaW5nTWV0MVB0c1sxMV0gaW5uZXJSaW5nTWV0MVB0c1sxMl0gaW5uZXJSaW5nTWV0MVB0c1sxM10gaW5uZXJSaW5nTWV0MVB0c1sxNF0gaW5uZXJSaW5nTWV0MVB0c1sxNV0gaW5uZXJSaW5nTWV0MVB0c1s4XSBpbm5lclJpbmdNZXQxUHRzWzldIGlubmVyUmluZ01ldDFQdHNbN10pKSAoaW5uZXJSaW5nTWV0MUxheWVyID0gKHJvZENyZWF0ZVBvbHlnb24gP2xheWVyIHJpbmdNZXQxTGF5ZXJIID9wdHMgaW5uZXJSaW5nTWV0MVBvaW50cykpIChyb2RBbGlnbiA/YWxpZ25PYmogaW5uZXJSaW5nTWV0MUxheWVyID9hbGlnbkhhbmRsZSAiY0wiID9yZWZPYmogbGVmdElubmVyUmluZ01ldDEgP3JlZkhhbmRsZSAiY0wiKSkgd2hlbihodk1vZGUgKGh2TGF5ZXJEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGh2TGF5ZXIgP3dpZHRoIChpbm5lclJpbmdMZW5ndGhUQiArICgyLjAgKiBodkxheWVyRGlmZlRhcEVuYykpID9sZW5ndGggKGlubmVyUmluZ0xlbmd0aExSICsgKDIuMCAqIGh2TGF5ZXJEaWZmVGFwRW5jKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGh2TGF5ZXJEcmF3aW5nID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogbG93ZXJJbm5lclJpbmcgP3JlZkhhbmRsZSAibEwiID94U2VwICgtIGh2TGF5ZXJEaWZmVGFwRW5jKSA/eVNlcCAoLSBodkxheWVyRGlmZlRhcEVuYykpKSB3aGVuKChtb3NUeXBlID09ICJwbW9zIikgKHdlbGxMYXllcldpZHRoID0gKGlubmVyUmluZ0xlbmd0aFRCICsgKDIuMCAqIGh2V2VsbERpZmZUYXBFbmMpKSkgKHdlbGxMYXllckxlbmd0aCA9IChpbm5lclJpbmdMZW5ndGhMUiArICgyLjAgKiBodldlbGxEaWZmVGFwRW5jKSkpICh3ZWxsTGF5ZXJEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHdlbGxMYXllciA/d2lkdGggd2VsbExheWVyV2lkdGggP2xlbmd0aCB3ZWxsTGF5ZXJMZW5ndGgpKSAocm9kQWxpZ24gP2FsaWduT2JqIHdlbGxMYXllckRyYXdpbmcgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBsb3dlcklubmVyUmluZyA/cmVmSGFuZGxlICJsTCIgP3hTZXAgKC0gaHZXZWxsRGlmZlRhcEVuYykgP3lTZXAgKC0gaHZXZWxsRGlmZlRhcEVuYykpIHdoZW4oaHZNb2RlIChodkxheWVyRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBodkxheWVyID9mcm9tT2JqIHdlbGxMYXllckRyYXdpbmcgP3NpemUgMC4wKSkpKSkgd2hlbigocmluZ3MgPT0gIkJvdGgiKSAocmluZ0NvbnRhY3QwSW5mbyA9IG50aCgwIE91dGVyUmluZ0ludGVyY29ubmVjdCkpIChyaW5nQ29udGFjdDBMYXllciA9IG50aCgwIHJpbmdDb250YWN0MEluZm8pKSAocmluZ0NvbnRhY3QwV2lkdGggPSBudGgoMSByaW5nQ29udGFjdDBJbmZvKSkgKHJpbmdDb250YWN0MFNwYWNlID0gbnRoKDIgcmluZ0NvbnRhY3QwSW5mbykpIChyaW5nQ29udGFjdDBDb2xzID0gbnRoKDMgcmluZ0NvbnRhY3QwSW5mbykpIChyaW5nTWV0MExheWVyID0gbnRoKDQgcmluZ0NvbnRhY3QwSW5mbykpIChyaW5nTWV0MENvbnQwRW5jID0gbnRoKDUgcmluZ0NvbnRhY3QwSW5mbykpIChyaW5nTWV0MEluQmV2ZWwgPSBudGgoNiByaW5nQ29udGFjdDBJbmZvKSkgKHJpbmdNZXQwT3V0QmV2ZWwgPSBudGgoNyByaW5nQ29udGFjdDBJbmZvKSkgKHJpbmdDb250YWN0MUluZm8gPSBudGgoMSBPdXRlclJpbmdJbnRlcmNvbm5lY3QpKSAocmluZ0NvbnRhY3QxTGF5ZXIgPSBudGgoMCByaW5nQ29udGFjdDFJbmZvKSkgKHJpbmdDb250YWN0MVdpZHRoID0gbnRoKDEgcmluZ0NvbnRhY3QxSW5mbykpIChyaW5nQ29udGFjdDFTcGFjZSA9IG50aCgyIHJpbmdDb250YWN0MUluZm8pKSAocmluZ0NvbnRhY3QxQ29scyA9IG50aCgzIHJpbmdDb250YWN0MUluZm8pKSAocmluZ01ldDFMYXllciA9IG50aCg0IHJpbmdDb250YWN0MUluZm8pKSAocmluZ01ldDFDb250MUVuYyA9IG50aCg1IHJpbmdDb250YWN0MUluZm8pKSAocmluZ01ldDFJbkJldmVsID0gbnRoKDYgcmluZ0NvbnRhY3QxSW5mbykpIChyaW5nTWV0MU91dEJldmVsID0gbnRoKDcgcmluZ0NvbnRhY3QxSW5mbykpIChyaW5nQ29udGFjdDBQaXRjaCA9IChyaW5nQ29udGFjdDBXaWR0aCArIHJpbmdDb250YWN0MFNwYWNlKSkgKG91dGVyUmluZ1dpZHRoID0gKChyaW5nQ29udGFjdDBXaWR0aCAqIHJpbmdDb250YWN0MENvbHMpICsgKChyaW5nQ29udGFjdDBDb2xzICsgLTEpICogcmluZ0NvbnRhY3QwU3BhY2UpICsgKDIuMCAqIHJpbmdNZXQwQ29udDBFbmMpKSkgKG91dGVyUmluZ1dpZHRoID0gbWF4KG91dGVyUmluZ1dpZHRoIHVzZXJPdXRlclJpbmdXaWR0aCkpIChvdXRlclJpbmdMZW5ndGhMUiA9IChpbm5lclJpbmdMZW5ndGhMUiArICgyLjAgKiBPdXRlcklubmVyUmluZ1NwYWNlKSArICgyLjAgKiBvdXRlclJpbmdXaWR0aCkpKSAob3V0ZXJSaW5nTGVuZ3RoVEIgPSAoaW5uZXJSaW5nTGVuZ3RoVEIgKyAoMi4wICogT3V0ZXJJbm5lclJpbmdTcGFjZSkgKyAoMi4wICogb3V0ZXJSaW5nV2lkdGgpKSkgKHJpbmdDb250YWN0MVBpdGNoID0gKHJpbmdDb250YWN0MVdpZHRoICsgcmluZ0NvbnRhY3QxU3BhY2UpKSAob3V0ZXJNZXQxUmluZ1dpZHRoID0gKChyaW5nQ29udGFjdDFXaWR0aCAqIHJpbmdDb250YWN0MUNvbHMpICsgKChyaW5nQ29udGFjdDFDb2xzICsgLTEpICogcmluZ0NvbnRhY3QxU3BhY2UpICsgKDIuMCAqIHJpbmdNZXQxQ29udDFFbmMpKSkgd2hlbigob3V0ZXJNZXQxUmluZ1dpZHRoIDwgcmluZ01ldDFPdXRCZXZlbCkgKHJpbmdNZXQxT3V0QmV2ZWwgPSBvdXRlck1ldDFSaW5nV2lkdGgpKSAobGVmdE91dGVyUmluZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBMYXllciA/d2lkdGggb3V0ZXJSaW5nV2lkdGggP2xlbmd0aCBvdXRlclJpbmdMZW5ndGhMUiA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QwTGF5ZXIgP3dpZHRoIHJpbmdDb250YWN0MFdpZHRoID9sZW5ndGggcmluZ0NvbnRhY3QwV2lkdGggP3NwYWNlWSByaW5nQ29udGFjdDBTcGFjZSA/c3BhY2VYIHJpbmdDb250YWN0MFNwYWNlID9sb3dlckxlZnRPZmZzZXRZIChvdXRlclJpbmdXaWR0aCArIHJpbmdDb250YWN0MFBpdGNoKSA/dXBwZXJSaWdodE9mZnNldFkgKCgtIG91dGVyUmluZ1dpZHRoKSArICgtIHJpbmdDb250YWN0MFBpdGNoKSkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbGVmdE91dGVyUmluZyA/YWxpZ25IYW5kbGUgImxSIiA/cmVmT2JqIGxlZnRJbm5lclJpbmcgP3JlZkhhbmRsZSAibEwiID94U2VwICgtIE91dGVySW5uZXJSaW5nU3BhY2UpID95U2VwICgoLSBPdXRlcklubmVyUmluZ1NwYWNlKSArICgtIG91dGVyUmluZ1dpZHRoKSkpIChsZWZ0T3V0ZXJSaW5nSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBsYW50ID9mcm9tT2JqIGxlZnRPdXRlclJpbmcgP3NpemUgZGlmZkltcEVuYykpIHdoZW4oKG1vc1R5cGUgPT0gIm5tb3MiKSAobGVmdE91dGVyUmluZ1dlbGwgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgd2VsbExheWVyID9mcm9tT2JqIGxlZnRPdXRlclJpbmcgP3NpemUgaHZXZWxsRGlmZlRhcEVuYykpKSAobGVmdE91dGVyUmluZ01ldDAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDBMYXllciA/ZnJvbU9iaiBsZWZ0T3V0ZXJSaW5nKSkgKHJpZ2h0T3V0ZXJSaW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcExheWVyID93aWR0aCBvdXRlclJpbmdXaWR0aCA/bGVuZ3RoIG91dGVyUmluZ0xlbmd0aExSID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDBMYXllciA/d2lkdGggcmluZ0NvbnRhY3QwV2lkdGggP2xlbmd0aCByaW5nQ29udGFjdDBXaWR0aCA/c3BhY2VZIHJpbmdDb250YWN0MFNwYWNlID9zcGFjZVggcmluZ0NvbnRhY3QwU3BhY2UgP2xvd2VyTGVmdE9mZnNldFkgKG91dGVyUmluZ1dpZHRoICsgcmluZ0NvbnRhY3QwUGl0Y2gpID91cHBlclJpZ2h0T2Zmc2V0WSAoKC0gb3V0ZXJSaW5nV2lkdGgpICsgKC0gcmluZ0NvbnRhY3QwUGl0Y2gpKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiByaWdodE91dGVyUmluZyA/YWxpZ25IYW5kbGUgImxMIiA/cmVmT2JqIHJpZ2h0SW5uZXJSaW5nID9yZWZIYW5kbGUgImxSIiA/eFNlcCBPdXRlcklubmVyUmluZ1NwYWNlID95U2VwICgoLSBPdXRlcklubmVyUmluZ1NwYWNlKSArICgtIG91dGVyUmluZ1dpZHRoKSkpIChyaWdodE91dGVyUmluZ0ltcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmSW1wbGFudCA/ZnJvbU9iaiByaWdodE91dGVyUmluZyA/c2l6ZSBkaWZmSW1wRW5jKSkgd2hlbigobW9zVHlwZSA9PSAibm1vcyIpIChyaWdodE91dGVyUmluZ1dlbGwgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgd2VsbExheWVyID9mcm9tT2JqIHJpZ2h0T3V0ZXJSaW5nID9zaXplIGh2V2VsbERpZmZUYXBFbmMpKSkgKHJpZ2h0T3V0ZXJSaW5nTWV0MCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MExheWVyID9mcm9tT2JqIHJpZ2h0T3V0ZXJSaW5nKSkgKGxvd2VyT3V0ZXJSaW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcExheWVyID93aWR0aCBvdXRlclJpbmdMZW5ndGhUQiA/bGVuZ3RoIG91dGVyUmluZ1dpZHRoID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDBMYXllciA/d2lkdGggcmluZ0NvbnRhY3QwV2lkdGggP2xlbmd0aCByaW5nQ29udGFjdDBXaWR0aCA/c3BhY2VZIHJpbmdDb250YWN0MFNwYWNlID9zcGFjZVggcmluZ0NvbnRhY3QwU3BhY2UgP2xvd2VyTGVmdE9mZnNldFggcmluZ0NvbnRhY3QwUGl0Y2ggP3VwcGVyUmlnaHRPZmZzZXRYICgtIHJpbmdDb250YWN0MFBpdGNoKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsb3dlck91dGVyUmluZyA/YWxpZ25IYW5kbGUgInVDIiA/cmVmT2JqIGxvd2VySW5uZXJSaW5nID9yZWZIYW5kbGUgImxDIiA/eVNlcCAoLSBPdXRlcklubmVyUmluZ1NwYWNlKSkgKGxvd2VyT3V0ZXJSaW5nSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBsYW50ID9mcm9tT2JqIGxvd2VyT3V0ZXJSaW5nID9zaXplIGRpZmZJbXBFbmMpKSB3aGVuKChtb3NUeXBlID09ICJubW9zIikgKGxvd2VyT3V0ZXJSaW5nV2VsbCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB3ZWxsTGF5ZXIgP2Zyb21PYmogbG93ZXJPdXRlclJpbmcgP3NpemUgaHZXZWxsRGlmZlRhcEVuYykpKSAobG93ZXJPdXRlclJpbmdNZXQwID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQwTGF5ZXIgP2Zyb21PYmogbG93ZXJPdXRlclJpbmcpKSAodXBwZXJPdXRlclJpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIG91dGVyUmluZ0xlbmd0aFRCID9sZW5ndGggb3V0ZXJSaW5nV2lkdGggP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MExheWVyID93aWR0aCByaW5nQ29udGFjdDBXaWR0aCA/bGVuZ3RoIHJpbmdDb250YWN0MFdpZHRoID9zcGFjZVkgcmluZ0NvbnRhY3QwU3BhY2UgP3NwYWNlWCByaW5nQ29udGFjdDBTcGFjZSA/bG93ZXJMZWZ0T2Zmc2V0WCByaW5nQ29udGFjdDBQaXRjaCA/dXBwZXJSaWdodE9mZnNldFggKC0gcmluZ0NvbnRhY3QwUGl0Y2gpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIHVwcGVyT3V0ZXJSaW5nID9hbGlnbkhhbmRsZSAibEMiID9yZWZPYmogdXBwZXJJbm5lclJpbmcgP3JlZkhhbmRsZSAidUMiID95U2VwIE91dGVySW5uZXJSaW5nU3BhY2UpICh1cHBlck91dGVyUmluZ0ltcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmSW1wbGFudCA/ZnJvbU9iaiB1cHBlck91dGVyUmluZyA/c2l6ZSBkaWZmSW1wRW5jKSkgd2hlbigobW9zVHlwZSA9PSAibm1vcyIpICh1cHBlck91dGVyUmluZ1dlbGwgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgd2VsbExheWVyID9mcm9tT2JqIHVwcGVyT3V0ZXJSaW5nID9zaXplIGh2V2VsbERpZmZUYXBFbmMpKSkgKHVwcGVyT3V0ZXJSaW5nTWV0MCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MExheWVyID9mcm9tT2JqIHVwcGVyT3V0ZXJSaW5nKSkgdW5sZXNzKHJpbmdzTWV0MU9mZiAobGVmdE91dGVyUmluZ01ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDFMYXllciA/d2lkdGggb3V0ZXJNZXQxUmluZ1dpZHRoID9sZW5ndGggKG91dGVyUmluZ0xlbmd0aExSICsgKDIuMCAqICgtIG91dGVyTWV0MVJpbmdXaWR0aCkpICsgKC0gcmluZ01ldDFPdXRCZXZlbCkpID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDFMYXllciA/d2lkdGggcmluZ0NvbnRhY3QxV2lkdGggP2xlbmd0aCByaW5nQ29udGFjdDFXaWR0aCA/c3BhY2VZIHJpbmdDb250YWN0MVNwYWNlID9zcGFjZVggcmluZ0NvbnRhY3QxU3BhY2UgP2xvd2VyTGVmdE9mZnNldFkgcmluZ0NvbnRhY3QxUGl0Y2ggP3VwcGVyUmlnaHRPZmZzZXRZICgtIHJpbmdDb250YWN0MVBpdGNoKSA/bG93ZXJMZWZ0T2Zmc2V0WCByaW5nTWV0MUNvbnQxRW5jID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nTWV0MUNvbnQxRW5jKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsZWZ0T3V0ZXJSaW5nTWV0MSA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIGxlZnRPdXRlclJpbmcgP3JlZkhhbmRsZSAiY0MiKSAocmlnaHRPdXRlclJpbmdNZXQxID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQxTGF5ZXIgP3dpZHRoIG91dGVyTWV0MVJpbmdXaWR0aCA/bGVuZ3RoIChvdXRlclJpbmdMZW5ndGhMUiArICgyLjAgKiAoLSBvdXRlck1ldDFSaW5nV2lkdGgpKSArICgtIHJpbmdNZXQxT3V0QmV2ZWwpKSA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QxTGF5ZXIgP3dpZHRoIHJpbmdDb250YWN0MVdpZHRoID9sZW5ndGggcmluZ0NvbnRhY3QxV2lkdGggP3NwYWNlWSByaW5nQ29udGFjdDFTcGFjZSA/c3BhY2VYIHJpbmdDb250YWN0MVNwYWNlID9sb3dlckxlZnRPZmZzZXRZIHJpbmdDb250YWN0MVBpdGNoID91cHBlclJpZ2h0T2Zmc2V0WSAoLSByaW5nQ29udGFjdDFQaXRjaCkgP2xvd2VyTGVmdE9mZnNldFggcmluZ01ldDFDb250MUVuYyA/dXBwZXJSaWdodE9mZnNldFggKC0gcmluZ01ldDFDb250MUVuYykpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogcmlnaHRPdXRlclJpbmdNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogcmlnaHRPdXRlclJpbmcgP3JlZkhhbmRsZSAiY0MiKSAobG93ZXJPdXRlclJpbmdNZXQxID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQxTGF5ZXIgP3dpZHRoIChvdXRlclJpbmdMZW5ndGhUQiArICgtIG91dGVyTWV0MVJpbmdXaWR0aCkgKyAoMi4wICogKC0gcmluZ01ldDFPdXRCZXZlbCkpKSA/bGVuZ3RoIG91dGVyTWV0MVJpbmdXaWR0aCA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QxTGF5ZXIgP3dpZHRoIHJpbmdDb250YWN0MVdpZHRoID9sZW5ndGggcmluZ0NvbnRhY3QxV2lkdGggP3NwYWNlWSByaW5nQ29udGFjdDFTcGFjZSA/c3BhY2VYIHJpbmdDb250YWN0MVNwYWNlID9sb3dlckxlZnRPZmZzZXRYIHJpbmdDb250YWN0MVBpdGNoID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nQ29udGFjdDFQaXRjaCkgP2xvd2VyTGVmdE9mZnNldFkgcmluZ01ldDFDb250MUVuYyA/dXBwZXJSaWdodE9mZnNldFkgKC0gcmluZ01ldDFDb250MUVuYykpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbG93ZXJPdXRlclJpbmdNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogbG93ZXJPdXRlclJpbmcgP3JlZkhhbmRsZSAiY0MiKSAodXBwZXJPdXRlclJpbmdNZXQxID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQxTGF5ZXIgP3dpZHRoIChvdXRlclJpbmdMZW5ndGhUQiArICgtIG91dGVyTWV0MVJpbmdXaWR0aCkgKyAoMi4wICogKC0gcmluZ01ldDFPdXRCZXZlbCkpKSA/bGVuZ3RoIG91dGVyTWV0MVJpbmdXaWR0aCA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QxTGF5ZXIgP3dpZHRoIHJpbmdDb250YWN0MVdpZHRoID9sZW5ndGggcmluZ0NvbnRhY3QxV2lkdGggP3NwYWNlWSByaW5nQ29udGFjdDFTcGFjZSA/c3BhY2VYIHJpbmdDb250YWN0MVNwYWNlID9sb3dlckxlZnRPZmZzZXRYIHJpbmdDb250YWN0MVBpdGNoID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nQ29udGFjdDFQaXRjaCkgP2xvd2VyTGVmdE9mZnNldFkgcmluZ01ldDFDb250MUVuYyA/dXBwZXJSaWdodE9mZnNldFkgKC0gcmluZ01ldDFDb250MUVuYykpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogdXBwZXJPdXRlclJpbmdNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogdXBwZXJPdXRlclJpbmcgP3JlZkhhbmRsZSAiY0MiKSBkZWNsYXJlKG91dGVyUmluZ01ldDFQdHNbMThdKSAob3V0ZXJSaW5nV2lkdGhEaWZmID0gKG91dGVyTWV0MVJpbmdXaWR0aCAtIG91dGVyUmluZ1dpZHRoKSkgKHgwTWV0MSA9IDAuMCkgKHkwTWV0MSA9IDAuMCkgKGhvbGVEaW1YID0gKGZldERpZmZ1c2lvblhkaW0gKyBpbm5lclJpbmdGZXRMZWZ0U3BhY2UgKyBpbm5lclJpbmdGZXRSaWdodFNwYWNlICsgKC0gb3V0ZXJSaW5nV2lkdGhEaWZmKSArICgyLjAgKiBPdXRlcklubmVyUmluZ1NwYWNlKSArICgyLjAgKiBpbm5lclJpbmdXaWR0aFYpICsgKDIuMCAqICgtIHJpbmdNZXQxSW5CZXZlbCkpKSkgKGhvbGVEaW1ZID0gKHcgKyBpbm5lclJpbmdGZXRUb3BTcGFjZSArIGlubmVyUmluZ0ZldEJvdFNwYWNlICsgKC0gb3V0ZXJSaW5nV2lkdGhEaWZmKSArICgyLjAgKiBPdXRlcklubmVyUmluZ1NwYWNlKSArICgyLjAgKiBpbm5lclJpbmdXaWR0aEgpICsgKDIuMCAqICgtIHJpbmdNZXQxSW5CZXZlbCkpKSkgKHgwTWV0MSA9IDAuMCkgKHgyTWV0MSA9IHJpbmdNZXQxT3V0QmV2ZWwpICh4M01ldDEgPSAoaG9sZURpbVggKyAoMi4wICogcmluZ01ldDFJbkJldmVsKSArIHJpbmdNZXQxT3V0QmV2ZWwpKSAoeDRNZXQxID0gKHgzTWV0MSArIHJpbmdNZXQxT3V0QmV2ZWwpKSAoeDlNZXQxID0gKHJpbmdNZXQxT3V0QmV2ZWwgKyByaW5nTWV0MUluQmV2ZWwpKSAoeDEwTWV0MSA9ICh4OU1ldDEgKyBob2xlRGltWCkpICh5ME1ldDEgPSAoLSByaW5nTWV0MUluQmV2ZWwpKSAoeTFNZXQxID0gKGhvbGVEaW1ZICsgcmluZ01ldDFJbkJldmVsKSkgKHkyTWV0MSA9ICh5MU1ldDEgKyByaW5nTWV0MU91dEJldmVsKSkgKHk2TWV0MSA9ICgoLSByaW5nTWV0MUluQmV2ZWwpICsgKC0gcmluZ01ldDFPdXRCZXZlbCkpKSAoeThNZXQxID0gMC4wKSAoeTEyTWV0MSA9IGhvbGVEaW1ZKSAob3V0ZXJSaW5nTWV0MVB0c1swXSA9ICh4ME1ldDE6eTBNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbMV0gPSAoeDBNZXQxOnkxTWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzJdID0gKHgyTWV0MTp5Mk1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1szXSA9ICh4M01ldDE6eTJNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbNF0gPSAoeDRNZXQxOnkxTWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzVdID0gKHg0TWV0MTp5ME1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1s2XSA9ICh4M01ldDE6eTZNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbN10gPSAoeDJNZXQxOnk2TWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzhdID0gKHgyTWV0MTp5OE1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1s5XSA9ICh4OU1ldDE6eTBNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbMTBdID0gKHgxME1ldDE6eTBNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbMTFdID0gKHgzTWV0MTp5OE1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1sxMl0gPSAoeDNNZXQxOnkxMk1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1sxM10gPSAoeDEwTWV0MTp5MU1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1sxNF0gPSAoeDlNZXQxOnkxTWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzE1XSA9ICh4Mk1ldDE6eTEyTWV0MSkpIChvdXRlclJpbmdNZXQxUG9pbnRzID0gbGlzdChvdXRlclJpbmdNZXQxUHRzWzBdIG91dGVyUmluZ01ldDFQdHNbMV0gb3V0ZXJSaW5nTWV0MVB0c1syXSBvdXRlclJpbmdNZXQxUHRzWzNdIG91dGVyUmluZ01ldDFQdHNbNF0gb3V0ZXJSaW5nTWV0MVB0c1s1XSBvdXRlclJpbmdNZXQxUHRzWzZdIG91dGVyUmluZ01ldDFQdHNbN10gb3V0ZXJSaW5nTWV0MVB0c1s5XSBvdXRlclJpbmdNZXQxUHRzWzEwXSBvdXRlclJpbmdNZXQxUHRzWzExXSBvdXRlclJpbmdNZXQxUHRzWzEyXSBvdXRlclJpbmdNZXQxUHRzWzEzXSBvdXRlclJpbmdNZXQxUHRzWzE0XSBvdXRlclJpbmdNZXQxUHRzWzE1XSBvdXRlclJpbmdNZXQxUHRzWzhdIG91dGVyUmluZ01ldDFQdHNbOV0gb3V0ZXJSaW5nTWV0MVB0c1s3XSkpIChvdXRlclJpbmdNZXQxTGF5ZXIgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgcmluZ01ldDFMYXllciA/cHRzIG91dGVyUmluZ01ldDFQb2ludHMpKSAocm9kQWxpZ24gP2FsaWduT2JqIG91dGVyUmluZ01ldDFMYXllciA/YWxpZ25IYW5kbGUgImNMIiA/cmVmT2JqIGxlZnRPdXRlclJpbmdNZXQxID9yZWZIYW5kbGUgImNMIiA/eFNlcCAoKG91dGVyTWV0MVJpbmdXaWR0aCAtIHJpbmdNZXQxT3V0QmV2ZWwpICogMC41KSkpIGNvbmQoKChtb3NUeXBlID09ICJubW9zIikgKGlkTGF5ZXJXaWR0aCA9IChvdXRlclJpbmdMZW5ndGhUQiArICgyLjAgKiBodldlbGxEaWZmVGFwRW5jKSkpIChpZExheWVyTGVuZ3RoID0gKG91dGVyUmluZ0xlbmd0aExSICsgKDIuMCAqIGh2V2VsbERpZmZUYXBFbmMpKSkgd2hlbihodk1vZGUgKGh2TGF5ZXJEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGh2TGF5ZXIgP3dpZHRoIGlkTGF5ZXJXaWR0aCA/bGVuZ3RoIGlkTGF5ZXJMZW5ndGgpKSAocm9kQWxpZ24gP2FsaWduT2JqIGh2TGF5ZXJEcmF3aW5nID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogbG93ZXJPdXRlclJpbmdXZWxsID9yZWZIYW5kbGUgImxMIikpKSAoKG1vc1R5cGUgPT0gInBtb3MiKSAoaWRMYXllcldpZHRoID0gKG91dGVyUmluZ0xlbmd0aFRCICsgKDIuMCAqIGh2TGF5ZXJEaWZmVGFwRW5jKSkpIChpZExheWVyTGVuZ3RoID0gKG91dGVyUmluZ0xlbmd0aExSICsgKDIuMCAqIGh2TGF5ZXJEaWZmVGFwRW5jKSkpIHdoZW4oaHZNb2RlIChodkxheWVyRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBodkxheWVyID93aWR0aCBpZExheWVyV2lkdGggP2xlbmd0aCBpZExheWVyTGVuZ3RoKSkgKHJvZEFsaWduID9hbGlnbk9iaiBodkxheWVyRHJhd2luZyA/YWxpZ25IYW5kbGUgImxMIiA/cmVmT2JqIGxvd2VyT3V0ZXJSaW5nID9yZWZIYW5kbGUgImxMIiA/eFNlcCAoLSBodkxheWVyRGlmZlRhcEVuYykgP3lTZXAgKC0gaHZMYXllckRpZmZUYXBFbmMpKSkpICh0KSkgKGlkTGF5ZXJEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGlkTGF5ZXIgP3dpZHRoIGlkTGF5ZXJXaWR0aCA/bGVuZ3RoIGlkTGF5ZXJMZW5ndGgpKSAocm9kQWxpZ24gP2FsaWduT2JqIGlkTGF5ZXJEcmF3aW5nID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogKGh2TGF5ZXJEcmF3aW5nIHx8IGxvd2VyT3V0ZXJSaW5nV2VsbCB8fCBsb3dlck91dGVyUmluZ0ltcCkgP3JlZkhhbmRsZSAibEwiKSkgd2hlbigoaHZNb2RlICYmIChyaW5ncyA9PSAiTm9uZSIpKSAoaHZMYXllckRyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgaHZMYXllciA/d2lkdGggKGZldERpZmZ1c2lvblhkaW0gKyBtYXgoaW5uZXJSaW5nRmV0UmlnaHRTcGFjZSBodkxheWVyRGlmZlRhcEVuYykgKyBtYXgoaW5uZXJSaW5nRmV0TGVmdFNwYWNlIGh2TGF5ZXJEaWZmVGFwRW5jKSkgP2xlbmd0aCAodyArIG1heChpbm5lclJpbmdGZXRCb3RTcGFjZSBodkxheWVyRGlmZlRhcEVuYykgKyBtYXgoaW5uZXJSaW5nRmV0VG9wU3BhY2UgaHZMYXllckRpZmZUYXBFbmMpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogaHZMYXllckRyYXdpbmcgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBmZXREaWZmdXNpb24gP3JlZkhhbmRsZSAibEwiID94U2VwIG1pbigoLSBpbm5lclJpbmdGZXRMZWZ0U3BhY2UpICgtIGh2TGF5ZXJEaWZmVGFwRW5jKSkgP3lTZXAgbWluKCgtIGlubmVyUmluZ0ZldEJvdFNwYWNlKSAoLSBodkxheWVyRGlmZlRhcEVuYykpKSkgdW5sZXNzKChyaW5ncyA9PSAiTm9uZSIpIChsZWZ0WENvb3JkID0gKGNhcihlc2RDZWxsT3JpZ2luKSAtIChpbm5lclJpbmdGZXRMZWZ0U3BhY2UgKyAoaW5uZXJSaW5nV2lkdGhWIC8gMikgKyBkaWZmQ29udGFjdDBYZW5jICsgbVNvdXJjZVBpbk9mZnNldCArIHNyY1BpbldpZHRoKSkpIChyaWdodFhDb29yZCA9IChjYXIoZXNkQ2VsbE9yaWdpbikgKyBpbm5lclJpbmdGZXRSaWdodFNwYWNlICsgKGlubmVyUmluZ1dpZHRoViAvIDIpICsgKGZldERpZmZ1c2lvblhkaW0gLSBkaWZmQ29udGFjdDBYZW5jIC0gbVNvdXJjZVBpbk9mZnNldCAtIHNyY1BpbldpZHRoKSkpIChsYWJlbFlDb29yZCA9ICgoaW5uZXJSaW5nTGVuZ3RoTFIgLyAyKSAtIGlubmVyUmluZ0ZldEJvdFNwYWNlKSkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QobGVmdFhDb29yZCAoMC45ICsgbGFiZWxZQ29vcmQpKSAiQ1JJVElDQUwgVE8iICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiAwLjQpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KGxlZnRYQ29vcmQgKDAuMyArIGxhYmVsWUNvb3JkKSkgIkNPTk5FQ1QgV0lERSIgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIDAuNCkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QobGVmdFhDb29yZCAobGFiZWxZQ29vcmQgLSAwLjMpKSAiU0lERVMgT0YiICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiAwLjQpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KGxlZnRYQ29vcmQgKGxhYmVsWUNvb3JkIC0gMC45KSkgIkdVQVJEUklORyIgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIDAuNCkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QocmlnaHRYQ29vcmQgKDAuOSArIGxhYmVsWUNvb3JkKSkgIkNSSVRJQ0FMIFRPIiAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgMC40KSAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdChyaWdodFhDb29yZCAoMC4zICsgbGFiZWxZQ29vcmQpKSAiQ09OTkVDVCBXSURFIiAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgMC40KSAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdChyaWdodFhDb29yZCAobGFiZWxZQ29vcmQgLSAwLjMpKSAiU0lERVMgT0YiICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiAwLjQpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KHJpZ2h0WENvb3JkIChsYWJlbFlDb29yZCAtIDAuOSkpICJHVUFSRFJJTkciICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiAwLjQpKSkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoZGlmZkxheWVyIGdhdGVMYXllciBwZ2F0ZUxheWVyIHdlbGxMYXllciBkaWZmSW1wbGFudCBkaWZmSW1wRW5jIHRhcExheWVyIHRhcEltcGxhbnQgdGFwSW1wRW5jIGlkTGF5ZXIgaHZMYXllciBodldlbGxEaWZmVGFwRW5jIGh2TGF5ZXJEaWZmVGFwRW5jIGZsYXJlSW5EaWZmIGZsYXJlT3V0RGlmZiBmbGFyZUV4dCBkcm5JbnRlcmNvbm5lY3Qgc3JjSW50ZXJjb25uZWN0IGRpZmZDb250YWN0MFllbmMgZGlmZkNvbnRhY3QwWGVuYyBJbm5lclJpbmdJbnRlcmNvbm5lY3RIb3JpeiBJbm5lclJpbmdJbnRlcmNvbm5lY3RWZXJ0IE91dGVyUmluZ0ludGVyY29ubmVjdCBidXR0aW5nVGFwV2lkdGggYnV0dGluZ1RhcENvbnQwWGVuYyBmZXREaWZmSW5uZXJSaW5nU3BhY2UgT3V0ZXJJbm5lclJpbmdTcGFjZSBtb3NUeXBlIGxhYmVsTGF5ZXIgbGFiZWxXaWR0aCBzaW5nbGVGbGFyZSBzaGFyZWRDYXNjb2RlRGlmZldpZHRoIG1pbklubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSBtaW5Jbm5lclJpbmdGZXRFeHRyYUxlZnRTcGFjZSBtaW5Jbm5lclJpbmdGZXRFeHRyYVRvcFNwYWNlIG1pbklubmVyUmluZ0ZldEV4dHJhQm90U3BhY2UgbWluaW11bU0gc3JjR2F0ZUNvbnRhY3RTcGFjZSBidXR0aW5nVGFwIHcgbCBtIGlubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSBpbm5lclJpbmdGZXRFeHRyYUxlZnRTcGFjZSBpbm5lclJpbmdGZXRFeHRyYVRvcFNwYWNlIGlubmVyUmluZ0ZldEV4dHJhQm90U3BhY2UgaHZNb2RlIHJpbmdzIHJpbmdzTWV0MU9mZiB1c2VyT3V0ZXJSaW5nV2lkdGggaHNwaWNlTW9kZWwgaHNwaWNlTW9kZWxDaG9pY2VzIGRybkdhdGVDb250YWN0U3BhY2VQYXJhbXMgZHJuR2F0ZUNvbnRhY3RTcGFjZVZhbHVlIGRybkdhdGVDb250YWN0U3BhY2VOYW1lIG1ldDFXaWR0aEQgZHJuR2F0ZUNvbnRhY3RTcGFjZSBtaW5pbXVtVG90YWxXaWR0aCBvcmlnbSBlc2RDZWxsT3JpZ2luIGlkTGF5ZXJFbmRFbmMgaHZMYXllckVuZEVuYyBpbm5lclJpbmdGZXRSaWdodFNwYWNlIGlubmVyUmluZ0ZldExlZnRTcGFjZSBpbm5lclJpbmdGZXRUb3BTcGFjZSBpbm5lclJpbmdGZXRCb3RTcGFjZSBjb250YWN0MEluZm9TIGNvbnRhY3QwTGF5ZXJTIGNvbnRhY3QwV2lkdGhTIGNvbnRhY3QwU3BhY2VTIGNvbnRhY3QwQ29sc1MgbWV0MExheWVyUyBtZXQwV2lkdGhTIG1ldDBTcGFjZVMgbWV0MEJldmVsUyBjb250YWN0MUluZm9TIGNvbnRhY3QxTGF5ZXJTIGNvbnRhY3QxV2lkdGhTIGNvbnRhY3QxU3BhY2VTIGNvbnRhY3QxQ29sc1MgbWV0MUxheWVyUyBtZXQxV2lkdGhTIG1ldDFTcGFjZVMgbWV0MUJldmVsUyBjb250YWN0MEluZm9EIGNvbnRhY3QwTGF5ZXJEIGNvbnRhY3QwV2lkdGhEIGNvbnRhY3QwU3BhY2VEIGNvbnRhY3QwQ29sc0QgbWV0MExheWVyRCBtZXQwV2lkdGhEIG1ldDBTcGFjZUQgbWV0MEJldmVsRCBjb250YWN0MUluZm9EIGNvbnRhY3QxTGF5ZXJEIGNvbnRhY3QxV2lkdGhEIGNvbnRhY3QxU3BhY2VEIGNvbnRhY3QxQ29sc0QgbWV0MUxheWVyRCBtZXQxU3BhY2VEIG1ldDFCZXZlbEQgc3JjUGluV2lkdGggbVNvdXJjZVBpbk9mZnNldCBzaGFyZWRTb3VyY2VXaWR0aCBkcm5QaW5XaWR0aCBtRHJhaW5QaW5PZmZzZXQgc2hhcmVkRHJhaW5XaWR0aCBmaXJzdFNvdXJjZVBpbiBjb250YWN0MVBpdGNoUyBjb250YWN0MVBpdGNoRCBtZXQwUGluV2lkdGhTIG1ldDBQaW5XaWR0aEQgZmlyc3RNZXQwUGluIGZpcnN0TWV0MERyYXdpbmcgbWV0MURyYXdpbmdQdHNTIG1ldDFEcmF3aW5nUHRzRCB4ME1ldDEgeTBNZXQxIGZpcnN0TWV0MXBvaW50c1MgZmlyc3RNZXQxcG9pbnRzRCBpIGZpcnN0TWV0MURyYXdpbmcgc291cmNlUGluc051bWJlciBkcmFpblBpbnNOdW1iZXIgc291cmNlUGluc1NwYWNlIGRyYWluUGluc1NwYWNlIHNvdXJjZVBpbnNPcmlnaW5PZmZzZXQgc291cmNlUGluc09yaWdpblggbiBzb3VyY2VQaW5zT3JpZ2luIHNvdXJjZVBpbnMgc291cmNlTWV0MFBpbnMgc291cmNlTWV0MERyYXdpbmcgc291cmNlTWV0MURyYXdpbmcgZHJhaW5QaW5zT3JpZ2luT2Zmc2V0IGRyYWluUGluc09yaWdpblggZHJhaW5QaW5zT3JpZ2luIGRyYWluUGlucyBkcmFpbk1ldDBQaW5zIGRyYWluTWV0MERyYXdpbmcgZHJhaW5NZXQxRHJhd2luZyBzaGFyZWRDYXNjb2RlRGlmZk51bWJlciBzaGFyZWRDYXNjb2RlRGlmZlNwYWNlIHNoYXJlZENhc2NvZGVEaWZmT3JpZ2luWF8xIHNoYXJlZENhc2NvZGVEaWZmT3JpZ2luWF8yIHNoYXJlZENhc2NvZGVEaWZmT3JpZ2luT2Zmc2V0IHNoYXJlZENhc2NvZGVEaWZmT3JpZ2luXzEgc2hhcmVkQ2FzY29kZURpZmZfMSBzaGFyZWRDYXNjb2RlRGlmZk9yaWdpbl8yIHNoYXJlZENhc2NvZGVEaWZmXzIgZmxhcmVZIG9kZGZsYXJlR2F0ZVB0cyB4bzAgeG8yIHhvNiBldmVuZmxhcmVHYXRlUHRzIHhlMCB4ZTIgeGU0IHBvaW50TGlzdDEgZmlyc3RHYXRlRHJhd2luZyBmbGFyZUdhdGVQdHMgeDAgeDIgeDYgeDggb2RkR2F0ZU9mZnNldCBvZGRHYXRlRHJhd2luZyBwb2ludExpc3QyIGV2ZW5HYXRlT2Zmc2V0IGV2ZW5HYXRlRHJhd2luZyBvZGQxUEdhdGVEcmF3aW5nIG9kZDJQR2F0ZURyYXdpbmcgZXZlbjFQR2F0ZURyYXdpbmcgZmV0RGlmZnVzaW9uWGRpbSBmZXREaWZmdXNpb24gZmlyc3RTb3VyY2VUYXAgZmlyc3RTb3VyY2VUYXBNZXQwIGZpcnN0U291cmNlVGFwTWV0MSBmaXJzdFNvdXJjZVRhcEltcCBsYXN0U291cmNlVGFwIGxhc3RTb3VyY2VUYXBNZXQwIGxhc3RTb3VyY2VUYXBNZXQxIGZldERpZmZJbXAgbGFzdFNvdXJjZVRhcEltcCB3ZWxsTGF5ZXJEcmF3aW5nIHJpbmdDb250YWN0MEluZm9IIHJpbmdDb250YWN0MExheWVySCByaW5nQ29udGFjdDBXaWR0aEggcmluZ0NvbnRhY3QwU3BhY2VIIHJpbmdDb250YWN0MENvbHNIIHJpbmdNZXQwTGF5ZXJIIHJpbmdNZXQwQ29udDBFbmNIIHJpbmdNZXQwSW5CZXZlbEggcmluZ01ldDBPdXRCZXZlbEggcmluZ0NvbnRhY3QxSW5mb0ggcmluZ0NvbnRhY3QxTGF5ZXJIIHJpbmdDb250YWN0MVdpZHRoSCByaW5nQ29udGFjdDFTcGFjZUggcmluZ0NvbnRhY3QxQ29sc0ggcmluZ01ldDFMYXllckggcmluZ01ldDFDb250MUVuY0ggcmluZ01ldDFJbkJldmVsSCByaW5nTWV0MU91dEJldmVsSCByaW5nQ29udGFjdDBJbmZvViByaW5nQ29udGFjdDBMYXllclYgcmluZ0NvbnRhY3QwV2lkdGhWIHJpbmdDb250YWN0MFNwYWNlViByaW5nQ29udGFjdDBDb2xzViByaW5nTWV0MExheWVyViByaW5nTWV0MENvbnQwRW5jViByaW5nTWV0MEluQmV2ZWxWIHJpbmdNZXQwT3V0QmV2ZWxWIHJpbmdDb250YWN0MUluZm9WIHJpbmdDb250YWN0MUxheWVyViByaW5nQ29udGFjdDFXaWR0aFYgcmluZ0NvbnRhY3QxU3BhY2VWIHJpbmdDb250YWN0MUNvbHNWIHJpbmdNZXQxTGF5ZXJWIHJpbmdNZXQxQ29udDFFbmNWIHJpbmdNZXQxSW5CZXZlbFYgcmluZ01ldDFPdXRCZXZlbFYgcmluZ0NvbnRhY3QwUGl0Y2hIIHJpbmdDb250YWN0MFBpdGNoViBpbm5lclJpbmdXaWR0aEggaW5uZXJSaW5nV2lkdGhWIGlubmVyUmluZ0xlbmd0aExSIGlubmVyUmluZ0xlbmd0aFRCIHJpbmdDb250YWN0MVBpdGNoSCByaW5nQ29udGFjdDFQaXRjaFYgaW5uZXJNZXQxUmluZ1dpZHRoSCBpbm5lck1ldDFSaW5nV2lkdGhWIGxlZnRJbm5lclJpbmcgbGVmdElubmVyUmluZ0ltcCBsZWZ0SW5uZXJSaW5nTWV0MCByaWdodElubmVyUmluZyByaWdodElubmVyUmluZ0ltcCByaWdodElubmVyUmluZ01ldDAgbG93ZXJJbm5lclJpbmcgbG93ZXJJbm5lclJpbmdJbXAgbG93ZXJJbm5lclJpbmdNZXQwIHVwcGVySW5uZXJSaW5nIHVwcGVySW5uZXJSaW5nSW1wIHVwcGVySW5uZXJSaW5nTWV0MCBsZWZ0SW5uZXJSaW5nTWV0MSByaWdodElubmVyUmluZ01ldDEgbG93ZXJJbm5lclJpbmdNZXQxIHVwcGVySW5uZXJSaW5nTWV0MSBpbm5lclJpbmdNZXQxUHRzIGlubmVyUmluZ1dpZHRoRGlmZkggaW5uZXJSaW5nV2lkdGhEaWZmViBob2xlRGltWCBob2xlRGltWSB4Mk1ldDEgeDNNZXQxIHg0TWV0MSB4OU1ldDEgeDEwTWV0MSB4MTFNZXQxIHgxNU1ldDEgeTFNZXQxIHkyTWV0MSB5Nk1ldDEgeThNZXQxIHkxMk1ldDEgaW5uZXJSaW5nTWV0MVBvaW50cyBpbm5lclJpbmdNZXQxTGF5ZXIgaHZMYXllckRyYXdpbmcgd2VsbExheWVyV2lkdGggd2VsbExheWVyTGVuZ3RoIHJpbmdDb250YWN0MEluZm8gcmluZ0NvbnRhY3QwTGF5ZXIgcmluZ0NvbnRhY3QwV2lkdGggcmluZ0NvbnRhY3QwU3BhY2UgcmluZ0NvbnRhY3QwQ29scyByaW5nTWV0MExheWVyIHJpbmdNZXQwQ29udDBFbmMgcmluZ01ldDBJbkJldmVsIHJpbmdNZXQwT3V0QmV2ZWwgcmluZ0NvbnRhY3QxSW5mbyByaW5nQ29udGFjdDFMYXllciByaW5nQ29udGFjdDFXaWR0aCByaW5nQ29udGFjdDFTcGFjZSByaW5nQ29udGFjdDFDb2xzIHJpbmdNZXQxTGF5ZXIgcmluZ01ldDFDb250MUVuYyByaW5nTWV0MUluQmV2ZWwgcmluZ01ldDFPdXRCZXZlbCByaW5nQ29udGFjdDBQaXRjaCBvdXRlclJpbmdXaWR0aCBvdXRlclJpbmdMZW5ndGhMUiBvdXRlclJpbmdMZW5ndGhUQiByaW5nQ29udGFjdDFQaXRjaCBvdXRlck1ldDFSaW5nV2lkdGggbGVmdE91dGVyUmluZyBsZWZ0T3V0ZXJSaW5nSW1wIGxlZnRPdXRlclJpbmdXZWxsIGxlZnRPdXRlclJpbmdNZXQwIHJpZ2h0T3V0ZXJSaW5nIHJpZ2h0T3V0ZXJSaW5nSW1wIHJpZ2h0T3V0ZXJSaW5nV2VsbCByaWdodE91dGVyUmluZ01ldDAgbG93ZXJPdXRlclJpbmcgbG93ZXJPdXRlclJpbmdJbXAgbG93ZXJPdXRlclJpbmdXZWxsIGxvd2VyT3V0ZXJSaW5nTWV0MCB1cHBlck91dGVyUmluZyB1cHBlck91dGVyUmluZ0ltcCB1cHBlck91dGVyUmluZ1dlbGwgdXBwZXJPdXRlclJpbmdNZXQwIGxlZnRPdXRlclJpbmdNZXQxIHJpZ2h0T3V0ZXJSaW5nTWV0MSBsb3dlck91dGVyUmluZ01ldDEgdXBwZXJPdXRlclJpbmdNZXQxIG91dGVyUmluZ01ldDFQdHMgb3V0ZXJSaW5nV2lkdGhEaWZmIG91dGVyUmluZ01ldDFQb2ludHMgb3V0ZXJSaW5nTWV0MUxheWVyIGlkTGF5ZXJXaWR0aCBpZExheWVyTGVuZ3RoIGlkTGF5ZXJEcmF3aW5nIGxlZnRYQ29vcmQgcmlnaHRYQ29vcmQgbGFiZWxZQ29vcmQpACgoYnV0dGluZ1RhcCAiRkFMU0UiKSAodyAwLjApIChsIDAuMCkgKG0gMCkgKGlubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSAwLjApIChpbm5lclJpbmdGZXRFeHRyYUxlZnRTcGFjZSAwLjApIChpbm5lclJpbmdGZXRFeHRyYVRvcFNwYWNlIDAuMCkgKGlubmVyUmluZ0ZldEV4dHJhQm90U3BhY2UgMC4wKSAoaHZNb2RlIG5pbCkgKHJpbmdzICJCb3RoIikgKHJpbmdzTWV0MU9mZiBuaWwpICh1c2VyT3V0ZXJSaW5nV2lkdGggMC4wKSAoaHNwaWNlTW9kZWwgbmlsKSAoaHNwaWNlTW9kZWxDaG9pY2VzIG5pbCkgKGRybkdhdGVDb250YWN0U3BhY2VQYXJhbXMgbmlsKSAoZHJuR2F0ZUNvbnRhY3RTcGFjZVZhbHVlIG5pbCkgKGRybkdhdGVDb250YWN0U3BhY2VOYW1lIG5pbCkpACgoZGlmZkxheWVyICJ5MCIpIChnYXRlTGF5ZXIgInkxIikgKHBnYXRlTGF5ZXIgInkyIikgKHdlbGxMYXllciBuaWwpIChkaWZmSW1wbGFudCBuaWwpIChkaWZmSW1wRW5jIDAuMCkgKHRhcExheWVyICJ5MiIpICh0YXBJbXBsYW50IG5pbCkgKHRhcEltcEVuYyAwLjApIChpZExheWVyIG5pbCkgKGh2TGF5ZXIgbmlsKSAoaHZXZWxsRGlmZlRhcEVuYyAwLjApIChodkxheWVyRGlmZlRhcEVuYyAwLjApIChmbGFyZUluRGlmZiAwLjApIChmbGFyZU91dERpZmYgMC4wKSAoZmxhcmVFeHQgMC4wKSAoZHJuSW50ZXJjb25uZWN0IG5pbCkgKHNyY0ludGVyY29ubmVjdCBuaWwpIChkaWZmQ29udGFjdDBZZW5jIDAuMCkgKGRpZmZDb250YWN0MFhlbmMgMC4wKSAoSW5uZXJSaW5nSW50ZXJjb25uZWN0SG9yaXogbmlsKSAoSW5uZXJSaW5nSW50ZXJjb25uZWN0VmVydCBuaWwpIChPdXRlclJpbmdJbnRlcmNvbm5lY3QgbmlsKSAoYnV0dGluZ1RhcFdpZHRoIDAuMCkgKGJ1dHRpbmdUYXBDb250MFhlbmMgMC4wKSAoZmV0RGlmZklubmVyUmluZ1NwYWNlIDAuMCkgKE91dGVySW5uZXJSaW5nU3BhY2UgMC4wKSAobW9zVHlwZSAibm1vcyIpIChsYWJlbExheWVyIGxpc3QoInRleHQiICJkcmF3aW5nIikpIChsYWJlbFdpZHRoIDEuMCkgKHNpbmdsZUZsYXJlICJGQUxTRSIpIChzaGFyZWRDYXNjb2RlRGlmZldpZHRoIDAuMCkgKG1pbklubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSAwLjApIChtaW5Jbm5lclJpbmdGZXRFeHRyYUxlZnRTcGFjZSAwLjApIChtaW5Jbm5lclJpbmdGZXRFeHRyYVRvcFNwYWNlIDAuMCkgKG1pbklubmVyUmluZ0ZldEV4dHJhQm90U3BhY2UgMC4wKSAobWluaW11bU0gMCkgKHNyY0dhdGVDb250YWN0U3BhY2UgMC4wKSkAKChtZXQxV2lkdGhEID0gbnRoKDIgZHJuR2F0ZUNvbnRhY3RTcGFjZVZhbHVlKSkgKGRybkdhdGVDb250YWN0U3BhY2UgPSBudGgoMCBkcm5HYXRlQ29udGFjdFNwYWNlVmFsdWUpKSAobWluaW11bVRvdGFsV2lkdGggPSBmbG9hdChudGgoMSBkcm5HYXRlQ29udGFjdFNwYWNlVmFsdWUpKSkgd2hlbigoaW5uZXJSaW5nRmV0RXh0cmFSaWdodFNwYWNlIDwgbWluSW5uZXJSaW5nRmV0RXh0cmFSaWdodFNwYWNlKSBlcnJvcigiJS4zZiBpcyBsZXNzIHRoYW4gYWxsb3dhYmxlIG1pbmltdW0gcmlnaHQgc2lkZSBkaWZmIHRvIHRhcCByaW5nIHNwYWNpbmcgJS4zZlxuIiBpbm5lclJpbmdGZXRFeHRyYVJpZ2h0U3BhY2UgbWluSW5uZXJSaW5nRmV0RXh0cmFSaWdodFNwYWNlKSkgd2hlbigoaW5uZXJSaW5nRmV0RXh0cmFMZWZ0U3BhY2UgPCBtaW5Jbm5lclJpbmdGZXRFeHRyYUxlZnRTcGFjZSkgZXJyb3IoIiUuM2YgaXMgbGVzcyB0aGFuIGFsbG93YWJsZSBtaW5pbXVtIGxlZnQgc2lkZSBkaWZmIHRvIHRhcCByaW5nIHNwYWNpbmcgJS4zZlxuIiBpbm5lclJpbmdGZXRFeHRyYUxlZnRTcGFjZSBtaW5Jbm5lclJpbmdGZXRFeHRyYUxlZnRTcGFjZSkpIHdoZW4oKGlubmVyUmluZ0ZldEV4dHJhVG9wU3BhY2UgPCBtaW5Jbm5lclJpbmdGZXRFeHRyYVRvcFNwYWNlKSBlcnJvcigiJS4zZiBpcyBsZXNzIHRoYW4gYWxsb3dhYmxlIG1pbmltdW0gdG9wIHNpZGUgZGlmZiB0byB0YXAgcmluZyBzcGFjaW5nICUuM2ZcbiIgaW5uZXJSaW5nRmV0RXh0cmFUb3BTcGFjZSBtaW5Jbm5lclJpbmdGZXRFeHRyYVRvcFNwYWNlKSkgd2hlbigoaW5uZXJSaW5nRmV0RXh0cmFCb3RTcGFjZSA8IG1pbklubmVyUmluZ0ZldEV4dHJhQm90U3BhY2UpIGVycm9yKCIlLjNmIGlzIGxlc3MgdGhhbiBhbGxvd2FibGUgbWluaW11bSBib3R0b20gc2lkZSBkaWZmIHRvIHRhcCByaW5nIHNwYWNpbmcgJS4zZlxuIiBpbm5lclJpbmdGZXRFeHRyYUJvdFNwYWNlIG1pbklubmVyUmluZ0ZldEV4dHJhQm90U3BhY2UpKSB3aGVuKCgodyAqIG0pIDwgbWluaW11bVRvdGFsV2lkdGgpIGVycm9yKCIlLjNmIGlzIGxlc3MgdGhhbiBhbGxvd2FibGUgbWluaW11bSB0b3RhbCB3aWR0aCAlLjNmIGZvciAlLjNmIGRyYWluIHRvIGdhdGUgY29udGFjdCBzcGFjaW5nXG4iICh3ICogbSkgbWluaW11bVRvdGFsV2lkdGggZHJuR2F0ZUNvbnRhY3RTcGFjZSkpIHdoZW4oKG0gPCBtaW5pbXVtTSkgZXJyb3IoIiVkIGlzIGxlc3MgdGhhbiBhbGxvd2FibGUgbWluaW11bSBtIGZhY3RvciAlZFxuIiBtIG1pbmltdW1NKSkgd2hlbigoc3JjR2F0ZUNvbnRhY3RTcGFjZSA8IHNyY0dhdGVDb250YWN0U3BhY2VNaW4pIGVycm9yKCIlLjNmIGlzIGxlc3MgdGhhbiBhbGxvd2FibGUgbWluaW11bSBzb3VyY2UgY29udGFjdCB0byBnYXRlIHNwYWNpbmcgJS4zZiIgc3JjR2F0ZUNvbnRhY3RTcGFjZSBzcmNHYXRlQ29udGFjdFNwYWNlTWluKSkgd2hlbigoc3JjR2F0ZUNvbnRhY3RTcGFjZSA+IHNyY0dhdGVDb250YWN0U3BhY2VNYXgpIGVycm9yKCIlLjNmIGlzIGdyZWF0ZXIgdGhhbiBhbGxvd2FibGUgbWF4aW11bSBzb3VyY2UgY29udGFjdCB0byBnYXRlIHNwYWNpbmcgJS4zZiIgc3JjR2F0ZUNvbnRhY3RTcGFjZSBzcmNHYXRlQ29udGFjdFNwYWNlTWF4KSkgKGVzZENlbGxPcmlnaW4gPSBsaXN0KDAgMCkpIGNvbmQoKChtb3NUeXBlID09ICJubW9zIikgKGlkTGF5ZXJFbmRFbmMgPSBodldlbGxEaWZmVGFwRW5jKSAoaHZMYXllckVuZEVuYyA9IGh2TGF5ZXJEaWZmVGFwRW5jKSkgKChtb3NUeXBlID09ICJwbW9zIikgKGlkTGF5ZXJFbmRFbmMgPSBodkxheWVyRGlmZlRhcEVuYykgKGh2TGF5ZXJFbmRFbmMgPSBodldlbGxEaWZmVGFwRW5jKSkgKHQpKSAoaW5uZXJSaW5nRmV0UmlnaHRTcGFjZSA9IChpbm5lclJpbmdGZXRFeHRyYVJpZ2h0U3BhY2UgKyBmZXREaWZmSW5uZXJSaW5nU3BhY2UpKSAoaW5uZXJSaW5nRmV0TGVmdFNwYWNlID0gKGlubmVyUmluZ0ZldEV4dHJhTGVmdFNwYWNlICsgZmV0RGlmZklubmVyUmluZ1NwYWNlKSkgKGlubmVyUmluZ0ZldFRvcFNwYWNlID0gKGlubmVyUmluZ0ZldEV4dHJhVG9wU3BhY2UgKyBmZXREaWZmSW5uZXJSaW5nU3BhY2UpKSAoaW5uZXJSaW5nRmV0Qm90U3BhY2UgPSAoaW5uZXJSaW5nRmV0RXh0cmFCb3RTcGFjZSArIGZldERpZmZJbm5lclJpbmdTcGFjZSkpIGlmKCgoaHZNb2RlID09IHQpIHx8IChodk1vZGUgPT0gIlRSVUUiKSkgdGhlbiAoaHZNb2RlID0gdCkgZWxzZSAoaHZNb2RlID0gbmlsKSkgaWYoKChyaW5nc01ldDFPZmYgPT0gdCkgfHwgKHJpbmdzTWV0MU9mZiA9PSAiVFJVRSIpKSB0aGVuIChyaW5nc01ldDFPZmYgPSB0KSBlbHNlIChyaW5nc01ldDFPZmYgPSBuaWwpKSBpZigoKGV2ZW5Pbmx5ID09IHQpIHx8IChldmVuT25seSA9PSAiVFJVRSIpKSB0aGVuIChldmVuT25seSA9IHQpIGVsc2UgKGV2ZW5Pbmx5ID0gbmlsKSkgaWYoKChzaW5nbGVGbGFyZSA9PSB0KSB8fCAoc2luZ2xlRmxhcmUgPT0gIlRSVUUiKSkgdGhlbiAoc2luZ2xlRmxhcmUgPSB0KSBlbHNlIChzaW5nbGVGbGFyZSA9IG5pbCkpIGlmKCgoYnV0dGluZ1RhcCA9PSB0KSB8fCAoYnV0dGluZ1RhcCA9PSAiVFJVRSIpKSB0aGVuIChidXR0aW5nVGFwID0gdCkgZWxzZSAoYnV0dGluZ1RhcCA9IG5pbCkpIHdoZW4oKG9kZHAobSkgJiYgZXZlbk9ubHkpIGVycm9yKCJJbGxlZ2FsIG0tZmFjdG9yOiBtLWZhY3RvciBtdXN0IGJlIGV2ZW4gbnVtYmVyXG4iKSkgKGNvbnRhY3QwSW5mb1MgPSBudGgoMCBzcmNJbnRlcmNvbm5lY3QpKSAoY29udGFjdDBMYXllclMgPSBudGgoMCBjb250YWN0MEluZm9TKSkgKGNvbnRhY3QwV2lkdGhTID0gbnRoKDEgY29udGFjdDBJbmZvUykpIChjb250YWN0MFNwYWNlUyA9IG50aCgyIGNvbnRhY3QwSW5mb1MpKSAoY29udGFjdDBDb2xzUyA9IG50aCgzIGNvbnRhY3QwSW5mb1MpKSAobWV0MExheWVyUyA9IG50aCg0IGNvbnRhY3QwSW5mb1MpKSAobWV0MFdpZHRoUyA9IG50aCg1IGNvbnRhY3QwSW5mb1MpKSAobWV0MFNwYWNlUyA9IG50aCg2IGNvbnRhY3QwSW5mb1MpKSAobWV0MEJldmVsUyA9IG50aCg3IGNvbnRhY3QwSW5mb1MpKSAoY29udGFjdDFJbmZvUyA9IG50aCgxIHNyY0ludGVyY29ubmVjdCkpIChjb250YWN0MUxheWVyUyA9IG50aCgwIGNvbnRhY3QxSW5mb1MpKSAoY29udGFjdDFXaWR0aFMgPSBudGgoMSBjb250YWN0MUluZm9TKSkgKGNvbnRhY3QxU3BhY2VTID0gbnRoKDIgY29udGFjdDFJbmZvUykpIChjb250YWN0MUNvbHNTID0gbnRoKDMgY29udGFjdDFJbmZvUykpIChtZXQxTGF5ZXJTID0gbnRoKDQgY29udGFjdDFJbmZvUykpIChtZXQxV2lkdGhTID0gbnRoKDUgY29udGFjdDFJbmZvUykpIChtZXQxU3BhY2VTID0gbnRoKDYgY29udGFjdDFJbmZvUykpIChtZXQxQmV2ZWxTID0gbnRoKDcgY29udGFjdDFJbmZvUykpIChjb250YWN0MEluZm9EID0gbnRoKDAgZHJuSW50ZXJjb25uZWN0KSkgKGNvbnRhY3QwTGF5ZXJEID0gbnRoKDAgY29udGFjdDBJbmZvRCkpIChjb250YWN0MFdpZHRoRCA9IG50aCgxIGNvbnRhY3QwSW5mb0QpKSAoY29udGFjdDBTcGFjZUQgPSBudGgoMiBjb250YWN0MEluZm9EKSkgKGNvbnRhY3QwQ29sc0QgPSBudGgoMyBjb250YWN0MEluZm9EKSkgKG1ldDBMYXllckQgPSBudGgoNCBjb250YWN0MEluZm9EKSkgKG1ldDBXaWR0aEQgPSBudGgoNSBjb250YWN0MEluZm9EKSkgKG1ldDBTcGFjZUQgPSBudGgoNiBjb250YWN0MEluZm9EKSkgKG1ldDBCZXZlbEQgPSBudGgoNyBjb250YWN0MEluZm9EKSkgKGNvbnRhY3QxSW5mb0QgPSBudGgoMSBkcm5JbnRlcmNvbm5lY3QpKSAoY29udGFjdDFMYXllckQgPSBudGgoMCBjb250YWN0MUluZm9EKSkgKGNvbnRhY3QxV2lkdGhEID0gbnRoKDEgY29udGFjdDFJbmZvRCkpIChjb250YWN0MVNwYWNlRCA9IG50aCgyIGNvbnRhY3QxSW5mb0QpKSAoY29udGFjdDFDb2xzRCA9IG50aCgzIGNvbnRhY3QxSW5mb0QpKSAobWV0MUxheWVyRCA9IG50aCg0IGNvbnRhY3QxSW5mb0QpKSAobWV0MVNwYWNlRCA9IG50aCg2IGNvbnRhY3QxSW5mb0QpKSAobWV0MUJldmVsRCA9IG50aCg3IGNvbnRhY3QxSW5mb0QpKSAoc3JjUGluV2lkdGggPSAoKGNvbnRhY3QwV2lkdGhTICogY29udGFjdDBDb2xzUykgKyAoKGNvbnRhY3QwQ29sc1MgKyAtMSkgKiBjb250YWN0MFNwYWNlUykpKSAoZHJuUGluV2lkdGggPSAoKGNvbnRhY3QwV2lkdGhEICogY29udGFjdDBDb2xzRCkgKyAoKGNvbnRhY3QwQ29sc0QgKyAtMSkgKiBjb250YWN0MFNwYWNlRCkpKSAobVNvdXJjZVBpbk9mZnNldCA9IHNyY0dhdGVDb250YWN0U3BhY2UpIChtRHJhaW5QaW5PZmZzZXQgPSBkcm5HYXRlQ29udGFjdFNwYWNlKSAoc2hhcmVkU291cmNlV2lkdGggPSAoKG1Tb3VyY2VQaW5PZmZzZXQgKiAyLjApICsgc3JjUGluV2lkdGgpKSAoc2hhcmVkRHJhaW5XaWR0aCA9ICgobURyYWluUGluT2Zmc2V0ICogMi4wKSArIGRyblBpbldpZHRoKSkgKGZpcnN0U291cmNlUGluID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZMYXllciA/d2lkdGggc3JjUGluV2lkdGggP2xlbmd0aCB3ID9waW4gdCA/dGVybU5hbWUgIlMiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/cGluTGFiZWwgdCA/cGluTGFiZWxIZWlnaHQgbGFiZWxXaWR0aCA/cGluTGFiZWxMYXllciBsYWJlbExheWVyID9waW5MYWJlbEZvbnQgInJvbWFuIiA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgY29udGFjdDBMYXllclMgP3dpZHRoIGNvbnRhY3QwV2lkdGhTID9sZW5ndGggY29udGFjdDBXaWR0aFMgP3NwYWNlWSBjb250YWN0MFNwYWNlUyA/c3BhY2VYIGNvbnRhY3QwU3BhY2VTID9sb3dlckxlZnRPZmZzZXRZIGRpZmZDb250YWN0MFllbmMgP3VwcGVyUmlnaHRPZmZzZXRZICgtIGRpZmZDb250YWN0MFllbmMpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGZpcnN0U291cmNlUGluID9hbGlnbkhhbmRsZSAibFIiID9yZWZQb2ludCBlc2RDZWxsT3JpZ2luID94U2VwICgtIG1Tb3VyY2VQaW5PZmZzZXQpKSAoY29udGFjdDFQaXRjaFMgPSAoY29udGFjdDFXaWR0aFMgKyBjb250YWN0MVNwYWNlUykpIChjb250YWN0MVBpdGNoRCA9IChjb250YWN0MVdpZHRoRCArIGNvbnRhY3QxU3BhY2VEKSkgKG1ldDBQaW5XaWR0aFMgPSAoKGNvbnRhY3QxV2lkdGhTICogY29udGFjdDFDb2xzUykgKyAoKGNvbnRhY3QxQ29sc1MgKyAtMSkgKiBjb250YWN0MVNwYWNlUykpKSAobWV0MFBpbldpZHRoRCA9ICgoY29udGFjdDFXaWR0aEQgKiBjb250YWN0MUNvbHNEKSArICgoY29udGFjdDFDb2xzRCArIC0xKSAqIGNvbnRhY3QxU3BhY2VEKSkpIChmaXJzdE1ldDBQaW4gPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MExheWVyUyA/d2lkdGggbWV0MFBpbldpZHRoUyA/bGVuZ3RoIHcgP3BpbiB0ID90ZXJtTmFtZSAiUyIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciBjb250YWN0MUxheWVyUyA/d2lkdGggY29udGFjdDFXaWR0aFMgP2xlbmd0aCBjb250YWN0MVdpZHRoUyA/c3BhY2VZIGNvbnRhY3QxU3BhY2VTID9zcGFjZVggY29udGFjdDFTcGFjZVMgP2xvd2VyTGVmdE9mZnNldFkgZGlmZkNvbnRhY3QwWWVuYyA/dXBwZXJSaWdodE9mZnNldFkgKC0gZGlmZkNvbnRhY3QwWWVuYykpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogZmlyc3RNZXQwUGluID9hbGlnbkhhbmRsZSAibEMiID9yZWZPYmogZmlyc3RTb3VyY2VQaW4gP3JlZkhhbmRsZSAibEMiKSAoZmlyc3RNZXQwRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXJTID93aWR0aCBtZXQwV2lkdGhTID9sZW5ndGggdykpIChyb2RBbGlnbiA/YWxpZ25PYmogZmlyc3RNZXQwRHJhd2luZyA/YWxpZ25IYW5kbGUgImxDIiA/cmVmT2JqIGZpcnN0TWV0MFBpbiA/cmVmSGFuZGxlICJsQyIpIGRlY2xhcmUobWV0MURyYXdpbmdQdHNTWzhdKSBkZWNsYXJlKG1ldDFEcmF3aW5nUHRzRFs4XSkgKHgwTWV0MSA9IDAuMCkgKHkwTWV0MSA9IDAuMCkgKG1ldDFEcmF3aW5nUHRzU1swXSA9ICh4ME1ldDE6KHkwTWV0MSArIG1ldDFCZXZlbFMpKSkgKG1ldDFEcmF3aW5nUHRzU1sxXSA9ICh4ME1ldDE6KHcgLSBtZXQxQmV2ZWxTKSkpIChtZXQxRHJhd2luZ1B0c1NbMl0gPSAobWV0MUJldmVsUzp3KSkgKG1ldDFEcmF3aW5nUHRzU1szXSA9ICgobWV0MVdpZHRoUyArICgtIG1ldDFCZXZlbFMpKTp3KSkgKG1ldDFEcmF3aW5nUHRzU1s0XSA9IChtZXQxV2lkdGhTOih3IC0gbWV0MUJldmVsUykpKSAobWV0MURyYXdpbmdQdHNTWzVdID0gKG1ldDFXaWR0aFM6KHkwTWV0MSArIG1ldDFCZXZlbFMpKSkgKG1ldDFEcmF3aW5nUHRzU1s2XSA9ICgobWV0MVdpZHRoUyArICgtIG1ldDFCZXZlbFMpKTowKSkgKG1ldDFEcmF3aW5nUHRzU1s3XSA9IChtZXQxQmV2ZWxTOjApKSAoZmlyc3RNZXQxcG9pbnRzUyA9IG5pbCkgZm9yKGkgMSA4IChmaXJzdE1ldDFwb2ludHNTID0gY29ucygoY2FyKG1ldDFEcmF3aW5nUHRzU1soOCAtIGkpXSk6Y2FkcihtZXQxRHJhd2luZ1B0c1NbKDggLSBpKV0pKSBmaXJzdE1ldDFwb2ludHNTKSkpICh4ME1ldDEgPSAwLjApICh5ME1ldDEgPSAwLjApIChtZXQxRHJhd2luZ1B0c0RbMF0gPSAoeDBNZXQxOih5ME1ldDEgKyBtZXQxQmV2ZWxEKSkpIChtZXQxRHJhd2luZ1B0c0RbMV0gPSAoeDBNZXQxOih3IC0gbWV0MUJldmVsRCkpKSAobWV0MURyYXdpbmdQdHNEWzJdID0gKG1ldDFCZXZlbEQ6dykpIChtZXQxRHJhd2luZ1B0c0RbM10gPSAoKG1ldDFXaWR0aEQgKyAoLSBtZXQxQmV2ZWxEKSk6dykpIChtZXQxRHJhd2luZ1B0c0RbNF0gPSAobWV0MVdpZHRoRDoodyAtIG1ldDFCZXZlbEQpKSkgKG1ldDFEcmF3aW5nUHRzRFs1XSA9IChtZXQxV2lkdGhEOih5ME1ldDEgKyBtZXQxQmV2ZWxEKSkpIChtZXQxRHJhd2luZ1B0c0RbNl0gPSAoKG1ldDFXaWR0aEQgKyAoLSBtZXQxQmV2ZWxEKSk6MCkpIChtZXQxRHJhd2luZ1B0c0RbN10gPSAobWV0MUJldmVsRDowKSkgKGZpcnN0TWV0MXBvaW50c0QgPSBuaWwpIGZvcihpIDEgOCAoZmlyc3RNZXQxcG9pbnRzRCA9IGNvbnMoKGNhcihtZXQxRHJhd2luZ1B0c0RbKDggLSBpKV0pOmNhZHIobWV0MURyYXdpbmdQdHNEWyg4IC0gaSldKSkgZmlyc3RNZXQxcG9pbnRzRCkpKSAoZmlyc3RNZXQxRHJhd2luZyA9IChyb2RDcmVhdGVQb2x5Z29uID9sYXllciBtZXQxTGF5ZXJTID9wdHMgZmlyc3RNZXQxcG9pbnRzUyA/cGluIHQgP3Rlcm1OYW1lICJTIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikpKSAocm9kQWxpZ24gP2FsaWduT2JqIGZpcnN0TWV0MURyYXdpbmcgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBmaXJzdE1ldDBEcmF3aW5nID9yZWZIYW5kbGUgImNDIikgd2hlbihvbmVwKG0pIChmaXJzdERyYWluUGluID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZMYXllciA/d2lkdGggZHJuUGluV2lkdGggP2xlbmd0aCB3ID9waW4gdCA/dGVybU5hbWUgIkQiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/cGluTGFiZWwgdCA/cGluTGFiZWxIZWlnaHQgbGFiZWxXaWR0aCA/cGluTGFiZWxMYXllciBsYWJlbExheWVyID9waW5MYWJlbEZvbnQgInJvbWFuIiA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgY29udGFjdDBMYXllckQgP3dpZHRoIGNvbnRhY3QwV2lkdGhEID9sZW5ndGggY29udGFjdDBXaWR0aEQgP3NwYWNlWSBjb250YWN0MFNwYWNlRCA/c3BhY2VYIGNvbnRhY3QwU3BhY2VEID9sb3dlckxlZnRPZmZzZXRZIGRpZmZDb250YWN0MFllbmMgP3VwcGVyUmlnaHRPZmZzZXRZICgtIGRpZmZDb250YWN0MFllbmMpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGZpcnN0RHJhaW5QaW4gP2FsaWduSGFuZGxlICJsTCIgP3JlZlBvaW50IGVzZENlbGxPcmlnaW4gP3hTZXAgKGwgKyBtRHJhaW5QaW5PZmZzZXQpKSAob25lRHJhaW5NZXQwUGluID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllckQgP3dpZHRoIG1ldDBQaW5XaWR0aEQgP2xlbmd0aCB3ID9waW4gdCA/dGVybU5hbWUgIkQiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgY29udGFjdDFMYXllckQgP3dpZHRoIGNvbnRhY3QxV2lkdGhEID9sZW5ndGggY29udGFjdDFXaWR0aEQgP3NwYWNlWSBjb250YWN0MVNwYWNlRCA/c3BhY2VYIGNvbnRhY3QxU3BhY2VEID9sb3dlckxlZnRPZmZzZXRZIGRpZmZDb250YWN0MFllbmMgP3VwcGVyUmlnaHRPZmZzZXRZICgtIGRpZmZDb250YWN0MFllbmMpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIG9uZURyYWluTWV0MFBpbiA/YWxpZ25IYW5kbGUgImxDIiA/cmVmT2JqIGZpcnN0RHJhaW5QaW4gP3JlZkhhbmRsZSAibEMiKSAoZHJhaW5NZXQwRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXJEID93aWR0aCBtZXQwV2lkdGhEID9sZW5ndGggdykpIChyb2RBbGlnbiA/YWxpZ25PYmogZHJhaW5NZXQwRHJhd2luZyA/YWxpZ25IYW5kbGUgImxDIiA/cmVmT2JqIG9uZURyYWluTWV0MFBpbiA/cmVmSGFuZGxlICJsQyIpIChkcmFpbk1ldDFEcmF3aW5nID0gKHJvZENyZWF0ZVBvbHlnb24gP2xheWVyIG1ldDFMYXllckQgP3B0cyBmaXJzdE1ldDFwb2ludHNEID9waW4gdCA/dGVybU5hbWUgIkQiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogZHJhaW5NZXQxRHJhd2luZyA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIGRyYWluTWV0MERyYXdpbmcgP3JlZkhhbmRsZSAiY0MiKSkgKHNvdXJjZVBpbnNOdW1iZXIgPSAxKSAoZHJhaW5QaW5zTnVtYmVyID0gMSkgd2hlbigobSA+IDEpIChzb3VyY2VQaW5zTnVtYmVyID0gKG0gLyAyKSkgKHNvdXJjZVBpbnNTcGFjZSA9ICgobCAqIDIpICsgc2hhcmVkRHJhaW5XaWR0aCArIChtU291cmNlUGluT2Zmc2V0ICogMi4wKSkpIChzb3VyY2VQaW5zT3JpZ2luWCA9IChjYXIoZXNkQ2VsbE9yaWdpbikgKyAobCAqIDIpICsgc2hhcmVkRHJhaW5XaWR0aCArIG1Tb3VyY2VQaW5PZmZzZXQpKSAoc291cmNlUGluc09yaWdpbk9mZnNldCA9IChzb3VyY2VQaW5zU3BhY2UgKyBzcmNQaW5XaWR0aCkpIGZvcihuIDEgc291cmNlUGluc051bWJlciAoc291cmNlUGluc09yaWdpbiA9IGxpc3QoKHNvdXJjZVBpbnNPcmlnaW5YICsgKChuIC0gMSkgKiBzb3VyY2VQaW5zT3JpZ2luT2Zmc2V0KSkgMC4wKSkgKHNvdXJjZVBpbnMgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkxheWVyID93aWR0aCBzcmNQaW5XaWR0aCA/bGVuZ3RoIHcgP29yaWdpbiBzb3VyY2VQaW5zT3JpZ2luID9waW4gdCA/dGVybU5hbWUgIlMiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/cGluTGFiZWwgdCA/cGluTGFiZWxIZWlnaHQgbGFiZWxXaWR0aCA/cGluTGFiZWxMYXllciBsYWJlbExheWVyID9waW5MYWJlbEZvbnQgInJvbWFuIiA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgY29udGFjdDBMYXllclMgP3dpZHRoIGNvbnRhY3QwV2lkdGhTID9sZW5ndGggY29udGFjdDBXaWR0aFMgP3NwYWNlWSBjb250YWN0MFNwYWNlUyA/c3BhY2VYIGNvbnRhY3QwU3BhY2VTID9sb3dlckxlZnRPZmZzZXRZIGRpZmZDb250YWN0MFllbmMgP3VwcGVyUmlnaHRPZmZzZXRZICgtIGRpZmZDb250YWN0MFllbmMpKSkpKSAoc291cmNlTWV0MFBpbnMgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MExheWVyUyA/d2lkdGggbWV0MFBpbldpZHRoUyA/bGVuZ3RoIHcgP3BpbiB0ID90ZXJtTmFtZSAiUyIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciBjb250YWN0MUxheWVyUyA/d2lkdGggY29udGFjdDFXaWR0aFMgP2xlbmd0aCBjb250YWN0MVdpZHRoUyA/c3BhY2VZIGNvbnRhY3QxU3BhY2VTID9zcGFjZVggY29udGFjdDFTcGFjZVMgP2xvd2VyTGVmdE9mZnNldFkgZGlmZkNvbnRhY3QwWWVuYyA/dXBwZXJSaWdodE9mZnNldFkgKC0gZGlmZkNvbnRhY3QwWWVuYykpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogc291cmNlTWV0MFBpbnMgP2FsaWduSGFuZGxlICJsQyIgP3JlZk9iaiBzb3VyY2VQaW5zID9yZWZIYW5kbGUgImxDIikgKHNvdXJjZU1ldDBEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllclMgP3dpZHRoIG1ldDBXaWR0aFMgP2xlbmd0aCB3KSkgKHJvZEFsaWduID9hbGlnbk9iaiBzb3VyY2VNZXQwRHJhd2luZyA/YWxpZ25IYW5kbGUgImxDIiA/cmVmT2JqIHNvdXJjZU1ldDBQaW5zID9yZWZIYW5kbGUgImxDIikgKHNvdXJjZU1ldDFEcmF3aW5nID0gKHJvZENyZWF0ZVBvbHlnb24gP2xheWVyIG1ldDFMYXllclMgP3B0cyBmaXJzdE1ldDFwb2ludHNTID9waW4gdCA/dGVybU5hbWUgIlMiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogc291cmNlTWV0MURyYXdpbmcgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBzb3VyY2VNZXQwRHJhd2luZyA/cmVmSGFuZGxlICJjQyIpKSAoZHJhaW5QaW5zTnVtYmVyID0gKGNlaWxpbmcgKG0gLyAyLjApKSkgKGRyYWluUGluc1NwYWNlID0gKChsICogMikgKyBzaGFyZWRTb3VyY2VXaWR0aCArIChtRHJhaW5QaW5PZmZzZXQgKiAyLjApKSkgKGRyYWluUGluc09yaWdpblggPSAoY2FyKGVzZENlbGxPcmlnaW4pICsgbCArIG1EcmFpblBpbk9mZnNldCkpIChkcmFpblBpbnNPcmlnaW5PZmZzZXQgPSAoZHJhaW5QaW5zU3BhY2UgKyBkcm5QaW5XaWR0aCkpIGZvcihuIDEgZHJhaW5QaW5zTnVtYmVyIChkcmFpblBpbnNPcmlnaW4gPSBsaXN0KChkcmFpblBpbnNPcmlnaW5YICsgKChuIC0gMSkgKiBkcmFpblBpbnNPcmlnaW5PZmZzZXQpKSAwLjApKSAoZHJhaW5QaW5zID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZMYXllciA/d2lkdGggZHJuUGluV2lkdGggP2xlbmd0aCB3ID9vcmlnaW4gZHJhaW5QaW5zT3JpZ2luID9waW4gdCA/dGVybU5hbWUgIkQiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/cGluTGFiZWwgdCA/cGluTGFiZWxIZWlnaHQgbGFiZWxXaWR0aCA/cGluTGFiZWxMYXllciBsYWJlbExheWVyID9waW5MYWJlbEZvbnQgInJvbWFuIiA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgY29udGFjdDBMYXllckQgP3dpZHRoIGNvbnRhY3QwV2lkdGhEID9sZW5ndGggY29udGFjdDBXaWR0aEQgP3NwYWNlWSBjb250YWN0MFNwYWNlRCA/c3BhY2VYIGNvbnRhY3QwU3BhY2VEID9sb3dlckxlZnRPZmZzZXRZIGRpZmZDb250YWN0MFllbmMgP3VwcGVyUmlnaHRPZmZzZXRZICgtIGRpZmZDb250YWN0MFllbmMpKSkpKSAoZHJhaW5NZXQwUGlucyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXJEID93aWR0aCBtZXQwUGluV2lkdGhEID9sZW5ndGggdyA/cGluIHQgP3Rlcm1OYW1lICJEIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIGNvbnRhY3QxTGF5ZXJEID93aWR0aCBjb250YWN0MVdpZHRoRCA/bGVuZ3RoIGNvbnRhY3QxV2lkdGhEID9zcGFjZVkgY29udGFjdDFTcGFjZUQgP3NwYWNlWCBjb250YWN0MVNwYWNlRCA/bG93ZXJMZWZ0T2Zmc2V0WSBkaWZmQ29udGFjdDBZZW5jID91cHBlclJpZ2h0T2Zmc2V0WSAoLSBkaWZmQ29udGFjdDBZZW5jKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBkcmFpbk1ldDBQaW5zID9hbGlnbkhhbmRsZSAibEMiID9yZWZPYmogZHJhaW5QaW5zID9yZWZIYW5kbGUgImxDIikgKGRyYWluTWV0MERyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MExheWVyRCA/d2lkdGggbWV0MFdpZHRoRCA/bGVuZ3RoIHcpKSAocm9kQWxpZ24gP2FsaWduT2JqIGRyYWluTWV0MERyYXdpbmcgP2FsaWduSGFuZGxlICJsQyIgP3JlZk9iaiBkcmFpbk1ldDBQaW5zID9yZWZIYW5kbGUgImxDIikgKGRyYWluTWV0MURyYXdpbmcgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgbWV0MUxheWVyRCA/cHRzIGZpcnN0TWV0MXBvaW50c0QgP3BpbiB0ID90ZXJtTmFtZSAiRCIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBkcmFpbk1ldDFEcmF3aW5nID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogZHJhaW5NZXQwRHJhd2luZyA/cmVmSGFuZGxlICJjQyIpKSkgKGZsYXJlWSA9IChmbGFyZU91dERpZmYgKyBmbGFyZUV4dCkpIGNvbmQoKHNpbmdsZUZsYXJlIGRlY2xhcmUob2RkZmxhcmVHYXRlUHRzWzhdKSAoeG8wID0gMC4wKSAoeG8yID0gKHhvMCArIGwgKyBmbGFyZUluRGlmZiArIGZsYXJlT3V0RGlmZikpICh4bzQgPSAoeG8wICsgbCkpIChvZGRmbGFyZUdhdGVQdHNbMF0gPSAoeG8wOigtIGZsYXJlWSkpKSAob2RkZmxhcmVHYXRlUHRzWzFdID0gKHhvMDoodyArIGZsYXJlWSkpKSAob2RkZmxhcmVHYXRlUHRzWzJdID0gKHhvMjoodyArIGZsYXJlWSkpKSAob2RkZmxhcmVHYXRlUHRzWzNdID0gKHhvMjoodyArIGZsYXJlT3V0RGlmZikpKSAob2RkZmxhcmVHYXRlUHRzWzRdID0gKHhvNDoodyArICgtIGZsYXJlSW5EaWZmKSkpKSAob2RkZmxhcmVHYXRlUHRzWzVdID0gKHhvNDpmbGFyZUluRGlmZikpIChvZGRmbGFyZUdhdGVQdHNbNl0gPSAoeG8yOigtIGZsYXJlT3V0RGlmZikpKSAob2RkZmxhcmVHYXRlUHRzWzddID0gKHhvMjooLSBmbGFyZVkpKSkgZGVjbGFyZShldmVuZmxhcmVHYXRlUHRzWzhdKSAoeGUwID0gKHhvMCArICgtIGZsYXJlT3V0RGlmZikgKyAoLSBmbGFyZUluRGlmZikpKSAoeGUyID0gKHhlMCArIGZsYXJlSW5EaWZmICsgZmxhcmVPdXREaWZmKSkgKHhlNiA9ICh4ZTIgKyBsKSkgKGV2ZW5mbGFyZUdhdGVQdHNbMF0gPSAoeGUwOigtIGZsYXJlWSkpKSAoZXZlbmZsYXJlR2F0ZVB0c1sxXSA9ICh4ZTA6KC0gZmxhcmVPdXREaWZmKSkpIChldmVuZmxhcmVHYXRlUHRzWzJdID0gKHhlMjpmbGFyZUluRGlmZikpIChldmVuZmxhcmVHYXRlUHRzWzNdID0gKHhlMjoodyArICgtIGZsYXJlSW5EaWZmKSkpKSAoZXZlbmZsYXJlR2F0ZVB0c1s0XSA9ICh4ZTA6KHcgKyBmbGFyZU91dERpZmYpKSkgKGV2ZW5mbGFyZUdhdGVQdHNbNV0gPSAoeGUwOih3ICsgZmxhcmVZKSkpIChldmVuZmxhcmVHYXRlUHRzWzZdID0gKHhlNjoodyArIGZsYXJlWSkpKSAoZXZlbmZsYXJlR2F0ZVB0c1s3XSA9ICh4ZTY6KC0gZmxhcmVZKSkpIGZvcihpIDEgOCAocG9pbnRMaXN0MSA9IGNvbnMoKGNhcihvZGRmbGFyZUdhdGVQdHNbKDggLSBpKV0pOmNhZHIob2RkZmxhcmVHYXRlUHRzWyg4IC0gaSldKSkgcG9pbnRMaXN0MSkpKSAoZmlyc3RHYXRlRHJhd2luZyA9IChyb2RDcmVhdGVQb2x5Z29uID9sYXllciBnYXRlTGF5ZXIgP3B0cyBwb2ludExpc3QxID9waW4gdCA/dGVybU5hbWUgIkciID90ZXJtSU9UeXBlICJpbnB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSkpKSAodCBkZWNsYXJlKGZsYXJlR2F0ZVB0c1sxMl0pICh4MCA9ICgoLSBmbGFyZU91dERpZmYpICsgKC0gZmxhcmVJbkRpZmYpKSkgKHgyID0gKHgwICsgZmxhcmVJbkRpZmYgKyBmbGFyZU91dERpZmYpKSAoeDYgPSAoeDIgKyBsICsgKC0geDApKSkgKHg4ID0gKHgyICsgbCkpIChmbGFyZUdhdGVQdHNbMF0gPSAoeDA6KC0gZmxhcmVZKSkpIChmbGFyZUdhdGVQdHNbMV0gPSAoeDA6KC0gZmxhcmVPdXREaWZmKSkpIChmbGFyZUdhdGVQdHNbMl0gPSAoeDI6ZmxhcmVJbkRpZmYpKSAoZmxhcmVHYXRlUHRzWzNdID0gKHgyOih3ICsgKC0gZmxhcmVJbkRpZmYpKSkpIChmbGFyZUdhdGVQdHNbNF0gPSAoeDA6KHcgKyBmbGFyZU91dERpZmYpKSkgKGZsYXJlR2F0ZVB0c1s1XSA9ICh4MDoodyArIGZsYXJlWSkpKSAoZmxhcmVHYXRlUHRzWzZdID0gKHg2Oih3ICsgZmxhcmVZKSkpIChmbGFyZUdhdGVQdHNbN10gPSAoeDY6KHcgKyBmbGFyZU91dERpZmYpKSkgKGZsYXJlR2F0ZVB0c1s4XSA9ICh4ODoodyArICgtIGZsYXJlSW5EaWZmKSkpKSAoZmxhcmVHYXRlUHRzWzldID0gKHg4OmZsYXJlSW5EaWZmKSkgKGZsYXJlR2F0ZVB0c1sxMF0gPSAoeDY6KC0gZmxhcmVPdXREaWZmKSkpIChmbGFyZUdhdGVQdHNbMTFdID0gKHg2OigtIGZsYXJlWSkpKSAocG9pbnRMaXN0MSA9IG5pbCkgZm9yKGkgMSAxMiAocG9pbnRMaXN0MSA9IGNvbnMoKGNhcihmbGFyZUdhdGVQdHNbKDEyIC0gaSldKTpjYWRyKGZsYXJlR2F0ZVB0c1soMTIgLSBpKV0pKSBwb2ludExpc3QxKSkpIChmaXJzdEdhdGVEcmF3aW5nID0gKHJvZENyZWF0ZVBvbHlnb24gP2xheWVyIGdhdGVMYXllciA/cHRzIHBvaW50TGlzdDEgP3BpbiB0ID90ZXJtTmFtZSAiRyIgP3Rlcm1JT1R5cGUgImlucHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpKSkpKSAob2RkR2F0ZU9mZnNldCA9IDAuMCkgZm9yKG4gMiBtIHdoZW4ob2RkcChuKSAocG9pbnRMaXN0MSA9IG5pbCkgKG9kZEdhdGVPZmZzZXQgPSAoc2hhcmVkRHJhaW5XaWR0aCArIGwgKyBzaGFyZWRTb3VyY2VXaWR0aCArIGwgKyBvZGRHYXRlT2Zmc2V0KSkgY29uZCgoc2luZ2xlRmxhcmUgZm9yKGkgMSA4IChwb2ludExpc3QxID0gY29ucygoKGNhcihvZGRmbGFyZUdhdGVQdHNbKDggLSBpKV0pICsgb2RkR2F0ZU9mZnNldCk6Y2FkcihvZGRmbGFyZUdhdGVQdHNbKDggLSBpKV0pKSBwb2ludExpc3QxKSkpKSAodCBmb3IoaSAxIDEyIChwb2ludExpc3QxID0gY29ucygoKGNhcihmbGFyZUdhdGVQdHNbKDEyIC0gaSldKSArIG9kZEdhdGVPZmZzZXQpOmNhZHIoZmxhcmVHYXRlUHRzWygxMiAtIGkpXSkpIHBvaW50TGlzdDEpKSkpKSAob2RkR2F0ZURyYXdpbmcgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgZ2F0ZUxheWVyID9wdHMgcG9pbnRMaXN0MSA/cGluIHQgP3Rlcm1OYW1lICJHIiA/dGVybUlPVHlwZSAiaW5wdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikpKSkgd2hlbihldmVucChuKSAocG9pbnRMaXN0MiA9IG5pbCkgaWYoKG4gPT0gMikgdGhlbiAoZXZlbkdhdGVPZmZzZXQgPSAoc2hhcmVkRHJhaW5XaWR0aCArIGwpKSBlbHNlIChldmVuR2F0ZU9mZnNldCA9IChzaGFyZWREcmFpbldpZHRoICsgbCArIHNoYXJlZFNvdXJjZVdpZHRoICsgbCArIGV2ZW5HYXRlT2Zmc2V0KSkpIGNvbmQoKHNpbmdsZUZsYXJlIGZvcihpIDEgOCAocG9pbnRMaXN0MiA9IGNvbnMoKChjYXIoZXZlbmZsYXJlR2F0ZVB0c1soOCAtIGkpXSkgKyBldmVuR2F0ZU9mZnNldCk6Y2FkcihldmVuZmxhcmVHYXRlUHRzWyg4IC0gaSldKSkgcG9pbnRMaXN0MikpKSkgKHQgZm9yKGkgMSAxMiAocG9pbnRMaXN0MiA9IGNvbnMoKChjYXIoZmxhcmVHYXRlUHRzWygxMiAtIGkpXSkgKyBldmVuR2F0ZU9mZnNldCk6Y2FkcihmbGFyZUdhdGVQdHNbKDEyIC0gaSldKSkgcG9pbnRMaXN0MikpKSkpIChldmVuR2F0ZURyYXdpbmcgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgZ2F0ZUxheWVyID9wdHMgcG9pbnRMaXN0MiA/cGluIHQgP3Rlcm1OYW1lICJHIiA/dGVybUlPVHlwZSAiaW5wdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikpKSkpIHdoZW4ocGdhdGVMYXllciAob2RkUEdhdGVEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHBnYXRlTGF5ZXIgP3dpZHRoIGwgP2xlbmd0aCB3ID9vcmlnaW4gZXNkQ2VsbE9yaWdpbiA/ZWxlbWVudHNYIChjZWlsaW5nIChtIC8gMi4wKSkgP3NwYWNlWCAoc2hhcmVkRHJhaW5XaWR0aCArIGwgKyBzaGFyZWRTb3VyY2VXaWR0aCkpKSB3aGVuKChtID4gMSkgKGV2ZW5QR2F0ZURyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcGdhdGVMYXllciA/d2lkdGggbCA/bGVuZ3RoIHcgP29yaWdpbiBsaXN0KChzaGFyZWREcmFpbldpZHRoICsgbCkgMCkgP2VsZW1lbnRzWCAobSAvIDIpID9zcGFjZVggKHNoYXJlZERyYWluV2lkdGggKyBsICsgc2hhcmVkU291cmNlV2lkdGgpKSkpKSBjb25kKChvbmVwKG0pIChmZXREaWZmdXNpb25YZGltID0gKChsICogbSkgKyAoZHJuUGluV2lkdGggKyBkaWZmQ29udGFjdDBYZW5jICsgbURyYWluUGluT2Zmc2V0KSArIChzcmNQaW5XaWR0aCArIGRpZmZDb250YWN0MFhlbmMgKyBtU291cmNlUGluT2Zmc2V0KSkpKSAob2RkcChtKSAoZmV0RGlmZnVzaW9uWGRpbSA9ICgobCAqIG0pICsgKHNoYXJlZFNvdXJjZVdpZHRoICogc291cmNlUGluc051bWJlcikgKyAoc2hhcmVkRHJhaW5XaWR0aCAqIChkcmFpblBpbnNOdW1iZXIgKyAtMSkpICsgKGRyblBpbldpZHRoICsgZGlmZkNvbnRhY3QwWGVuYyArIG1EcmFpblBpbk9mZnNldCkgKyAoc3JjUGluV2lkdGggKyBkaWZmQ29udGFjdDBYZW5jICsgbVNvdXJjZVBpbk9mZnNldCkpKSkgKGV2ZW5wKG0pIChmZXREaWZmdXNpb25YZGltID0gKChsICogbSkgKyAoc2hhcmVkU291cmNlV2lkdGggKiAoc291cmNlUGluc051bWJlciArIC0xKSkgKyAoc2hhcmVkRHJhaW5XaWR0aCAqIGRyYWluUGluc051bWJlcikgKyAoKHNyY1BpbldpZHRoICsgZGlmZkNvbnRhY3QwWGVuYyArIG1Tb3VyY2VQaW5PZmZzZXQpICogMi4wKSkpKSAodCkpIChmZXREaWZmdXNpb24gPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkxheWVyID93aWR0aCBmZXREaWZmdXNpb25YZGltID9sZW5ndGggdykpIChyb2RBbGlnbiA/YWxpZ25PYmogZmV0RGlmZnVzaW9uID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogZmlyc3RTb3VyY2VQaW4gP3JlZkhhbmRsZSAibEwiID94U2VwICgtIGRpZmZDb250YWN0MFhlbmMpKSBjb25kKChidXR0aW5nVGFwIChmaXJzdFNvdXJjZVRhcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBMYXllciA/d2lkdGggYnV0dGluZ1RhcFdpZHRoID9sZW5ndGggdyA/cGluIHQpKSAocm9kQWxpZ24gP2FsaWduT2JqIGZpcnN0U291cmNlVGFwID9hbGlnbkhhbmRsZSAibFIiID9yZWZPYmogZmV0RGlmZnVzaW9uID9yZWZIYW5kbGUgImxMIikgKGZpcnN0U291cmNlVGFwTWV0MCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXJTID93aWR0aCAoYnV0dGluZ1RhcFdpZHRoICsgZGlmZkNvbnRhY3QwWGVuYykgP2xlbmd0aCB3KSkgKHJvZEFsaWduID9hbGlnbk9iaiBmaXJzdFNvdXJjZVRhcE1ldDAgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBmaXJzdFNvdXJjZVRhcCA/cmVmSGFuZGxlICJjTCIpIChmaXJzdFNvdXJjZVRhcE1ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MUxheWVyUyA/d2lkdGggKGJ1dHRpbmdUYXBXaWR0aCArICgyICogZGlmZkNvbnRhY3QwWGVuYykpID9sZW5ndGggdykpIChyb2RBbGlnbiA/YWxpZ25PYmogZmlyc3RTb3VyY2VUYXBNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogZmlyc3RTb3VyY2VUYXAgP3JlZkhhbmRsZSAiY0MiKSAoZmlyc3RTb3VyY2VUYXBJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwSW1wbGFudCA/d2lkdGggKGJ1dHRpbmdUYXBXaWR0aCArIHRhcEltcEVuYykgP2xlbmd0aCAodyArICgyLjAgKiB0YXBJbXBFbmMpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogZmlyc3RTb3VyY2VUYXBJbXAgP2FsaWduSGFuZGxlICJsUiIgP3JlZk9iaiBmaXJzdFNvdXJjZVRhcCA/cmVmSGFuZGxlICJsUiIgP3lTZXAgKC0gdGFwSW1wRW5jKSkgKGxhc3RTb3VyY2VUYXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIGJ1dHRpbmdUYXBXaWR0aCA/bGVuZ3RoIHcgP3BpbiB0KSkgKHJvZEFsaWduID9hbGlnbk9iaiBsYXN0U291cmNlVGFwID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogZmV0RGlmZnVzaW9uID9yZWZIYW5kbGUgImxSIikgKGxhc3RTb3VyY2VUYXBNZXQwID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllclMgP3dpZHRoIChidXR0aW5nVGFwV2lkdGggKyBkaWZmQ29udGFjdDBYZW5jKSA/bGVuZ3RoIHcpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxhc3RTb3VyY2VUYXBNZXQwID9hbGlnbkhhbmRsZSAiY1IiID9yZWZPYmogbGFzdFNvdXJjZVRhcCA/cmVmSGFuZGxlICJjUiIpIChsYXN0U291cmNlVGFwTWV0MSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQxTGF5ZXJTID93aWR0aCAoYnV0dGluZ1RhcFdpZHRoICsgKDIgKiBkaWZmQ29udGFjdDBYZW5jKSkgP2xlbmd0aCB3KSkgKHJvZEFsaWduID9hbGlnbk9iaiBsYXN0U291cmNlVGFwTWV0MSA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIGxhc3RTb3VyY2VUYXAgP3JlZkhhbmRsZSAiY0MiKSAoZmV0RGlmZkltcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmSW1wbGFudCA/d2lkdGggZmV0RGlmZnVzaW9uWGRpbSA/bGVuZ3RoICh3ICsgKDIuMCAqIGRpZmZJbXBFbmMpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogZmV0RGlmZkltcCA/YWxpZ25IYW5kbGUgImxMIiA/cmVmT2JqIGZldERpZmZ1c2lvbiA/cmVmSGFuZGxlICJsTCIgP3lTZXAgKC0gZGlmZkltcEVuYykpIChsYXN0U291cmNlVGFwSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcEltcGxhbnQgP3dpZHRoIChidXR0aW5nVGFwV2lkdGggKyB0YXBJbXBFbmMpID9sZW5ndGggKHcgKyAoMi4wICogdGFwSW1wRW5jKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxhc3RTb3VyY2VUYXBJbXAgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBsYXN0U291cmNlVGFwID9yZWZIYW5kbGUgImxMIiA/eVNlcCAoLSB0YXBJbXBFbmMpKSB3aGVuKCgobW9zVHlwZSA9PSAicG1vcyIpICYmIChyaW5ncyA9PSAiTm9uZSIpKSAod2VsbExheWVyRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB3ZWxsTGF5ZXIgP3dpZHRoIChmZXREaWZmdXNpb25YZGltICsgKDIuMCAqIGJ1dHRpbmdUYXBXaWR0aCkgKyAoMi4wICogaHZXZWxsRGlmZlRhcEVuYykpID9sZW5ndGggKHcgKyAoMi4wICogaHZXZWxsRGlmZlRhcEVuYykpKSkgKHJvZEFsaWduID9hbGlnbk9iaiB3ZWxsTGF5ZXJEcmF3aW5nID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogZmlyc3RTb3VyY2VUYXAgP3JlZkhhbmRsZSAibEwiID94U2VwICgtIGh2V2VsbERpZmZUYXBFbmMpID95U2VwICgtIGh2V2VsbERpZmZUYXBFbmMpKSkpICh0IChmZXREaWZmSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBsYW50ID9mcm9tT2JqIGZldERpZmZ1c2lvbiA/c2l6ZSBkaWZmSW1wRW5jKSkgd2hlbigoKG1vc1R5cGUgPT0gInBtb3MiKSAmJiAocmluZ3MgPT0gIk5vbmUiKSkgKHdlbGxMYXllckRyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgd2VsbExheWVyID9mcm9tT2JqIGZldERpZmZ1c2lvbiA/c2l6ZSBodldlbGxEaWZmVGFwRW5jKSkpKSkgd2hlbigoKHJpbmdzID09ICJJbm5lciIpIHx8IChyaW5ncyA9PSAiQm90aCIpKSAocmluZ0NvbnRhY3QwSW5mb0ggPSBudGgoMCBJbm5lclJpbmdJbnRlcmNvbm5lY3RIb3JpeikpIChyaW5nQ29udGFjdDBMYXllckggPSBudGgoMCByaW5nQ29udGFjdDBJbmZvSCkpIChyaW5nQ29udGFjdDBXaWR0aEggPSBudGgoMSByaW5nQ29udGFjdDBJbmZvSCkpIChyaW5nQ29udGFjdDBTcGFjZUggPSBudGgoMiByaW5nQ29udGFjdDBJbmZvSCkpIChyaW5nQ29udGFjdDBDb2xzSCA9IG50aCgzIHJpbmdDb250YWN0MEluZm9IKSkgKHJpbmdNZXQwTGF5ZXJIID0gbnRoKDQgcmluZ0NvbnRhY3QwSW5mb0gpKSAocmluZ01ldDBDb250MEVuY0ggPSBudGgoNSByaW5nQ29udGFjdDBJbmZvSCkpIChyaW5nTWV0MEluQmV2ZWxIID0gbnRoKDYgcmluZ0NvbnRhY3QwSW5mb0gpKSAocmluZ01ldDBPdXRCZXZlbEggPSBudGgoNyByaW5nQ29udGFjdDBJbmZvSCkpIChyaW5nQ29udGFjdDFJbmZvSCA9IG50aCgxIElubmVyUmluZ0ludGVyY29ubmVjdEhvcml6KSkgKHJpbmdDb250YWN0MUxheWVySCA9IG50aCgwIHJpbmdDb250YWN0MUluZm9IKSkgKHJpbmdDb250YWN0MVdpZHRoSCA9IG50aCgxIHJpbmdDb250YWN0MUluZm9IKSkgKHJpbmdDb250YWN0MVNwYWNlSCA9IG50aCgyIHJpbmdDb250YWN0MUluZm9IKSkgKHJpbmdDb250YWN0MUNvbHNIID0gbnRoKDMgcmluZ0NvbnRhY3QxSW5mb0gpKSAocmluZ01ldDFMYXllckggPSBudGgoNCByaW5nQ29udGFjdDFJbmZvSCkpIChyaW5nTWV0MUNvbnQxRW5jSCA9IG50aCg1IHJpbmdDb250YWN0MUluZm9IKSkgKHJpbmdNZXQxSW5CZXZlbEggPSBudGgoNiByaW5nQ29udGFjdDFJbmZvSCkpIChyaW5nTWV0MU91dEJldmVsSCA9IG50aCg3IHJpbmdDb250YWN0MUluZm9IKSkgKHJpbmdDb250YWN0MEluZm9WID0gbnRoKDAgSW5uZXJSaW5nSW50ZXJjb25uZWN0VmVydCkpIChyaW5nQ29udGFjdDBMYXllclYgPSBudGgoMCByaW5nQ29udGFjdDBJbmZvVikpIChyaW5nQ29udGFjdDBXaWR0aFYgPSBudGgoMSByaW5nQ29udGFjdDBJbmZvVikpIChyaW5nQ29udGFjdDBTcGFjZVYgPSBudGgoMiByaW5nQ29udGFjdDBJbmZvVikpIChyaW5nQ29udGFjdDBDb2xzViA9IG50aCgzIHJpbmdDb250YWN0MEluZm9WKSkgKHJpbmdNZXQwTGF5ZXJWID0gbnRoKDQgcmluZ0NvbnRhY3QwSW5mb1YpKSAocmluZ01ldDBDb250MEVuY1YgPSBudGgoNSByaW5nQ29udGFjdDBJbmZvVikpIChyaW5nTWV0MEluQmV2ZWxWID0gbnRoKDYgcmluZ0NvbnRhY3QwSW5mb1YpKSAocmluZ01ldDBPdXRCZXZlbFYgPSBudGgoNyByaW5nQ29udGFjdDBJbmZvVikpIChyaW5nQ29udGFjdDFJbmZvViA9IG50aCgxIElubmVyUmluZ0ludGVyY29ubmVjdFZlcnQpKSAocmluZ0NvbnRhY3QxTGF5ZXJWID0gbnRoKDAgcmluZ0NvbnRhY3QxSW5mb1YpKSAocmluZ0NvbnRhY3QxV2lkdGhWID0gbnRoKDEgcmluZ0NvbnRhY3QxSW5mb1YpKSAocmluZ0NvbnRhY3QxU3BhY2VWID0gbnRoKDIgcmluZ0NvbnRhY3QxSW5mb1YpKSAocmluZ0NvbnRhY3QxQ29sc1YgPSBudGgoMyByaW5nQ29udGFjdDFJbmZvVikpIChyaW5nTWV0MUxheWVyViA9IG50aCg0IHJpbmdDb250YWN0MUluZm9WKSkgKHJpbmdNZXQxQ29udDFFbmNWID0gbnRoKDUgcmluZ0NvbnRhY3QxSW5mb1YpKSAocmluZ01ldDFJbkJldmVsViA9IG50aCg2IHJpbmdDb250YWN0MUluZm9WKSkgKHJpbmdNZXQxT3V0QmV2ZWxWID0gbnRoKDcgcmluZ0NvbnRhY3QxSW5mb1YpKSAocmluZ0NvbnRhY3QwUGl0Y2hIID0gKHJpbmdDb250YWN0MFdpZHRoSCArIHJpbmdDb250YWN0MFNwYWNlSCkpIChyaW5nQ29udGFjdDBQaXRjaFYgPSAocmluZ0NvbnRhY3QwV2lkdGhWICsgcmluZ0NvbnRhY3QwU3BhY2VWKSkgKGlubmVyUmluZ1dpZHRoSCA9ICgocmluZ0NvbnRhY3QwV2lkdGhIICogcmluZ0NvbnRhY3QwQ29sc0gpICsgKChyaW5nQ29udGFjdDBDb2xzSCArIC0xKSAqIHJpbmdDb250YWN0MFNwYWNlSCkgKyAoMi4wICogcmluZ01ldDBDb250MEVuY0gpKSkgKGlubmVyUmluZ1dpZHRoViA9ICgocmluZ0NvbnRhY3QwV2lkdGhWICogcmluZ0NvbnRhY3QwQ29sc1YpICsgKChyaW5nQ29udGFjdDBDb2xzViArIC0xKSAqIHJpbmdDb250YWN0MFNwYWNlVikgKyAoMi4wICogcmluZ01ldDBDb250MEVuY1YpKSkgKGlubmVyUmluZ0xlbmd0aExSID0gKHcgKyBpbm5lclJpbmdGZXRUb3BTcGFjZSArIGlubmVyUmluZ0ZldEJvdFNwYWNlICsgKDIuMCAqIGlubmVyUmluZ1dpZHRoSCkpKSAoaW5uZXJSaW5nTGVuZ3RoVEIgPSAoZmV0RGlmZnVzaW9uWGRpbSArIGlubmVyUmluZ0ZldFJpZ2h0U3BhY2UgKyBpbm5lclJpbmdGZXRMZWZ0U3BhY2UgKyAoMi4wICogaW5uZXJSaW5nV2lkdGhWKSkpIChyaW5nQ29udGFjdDFQaXRjaEggPSAocmluZ0NvbnRhY3QxV2lkdGhIICsgcmluZ0NvbnRhY3QxU3BhY2VIKSkgKHJpbmdDb250YWN0MVBpdGNoViA9IChyaW5nQ29udGFjdDFXaWR0aFYgKyByaW5nQ29udGFjdDFTcGFjZVYpKSAoaW5uZXJNZXQxUmluZ1dpZHRoSCA9ICgocmluZ0NvbnRhY3QxV2lkdGhIICogcmluZ0NvbnRhY3QxQ29sc0gpICsgKChyaW5nQ29udGFjdDFDb2xzSCArIC0xKSAqIHJpbmdDb250YWN0MVNwYWNlSCkgKyAoMi4wICogcmluZ01ldDFDb250MUVuY0gpKSkgKGlubmVyTWV0MVJpbmdXaWR0aFYgPSAoKHJpbmdDb250YWN0MVdpZHRoViAqIHJpbmdDb250YWN0MUNvbHNWKSArICgocmluZ0NvbnRhY3QxQ29sc1YgKyAtMSkgKiByaW5nQ29udGFjdDFTcGFjZVYpICsgKDIuMCAqIHJpbmdNZXQxQ29udDFFbmNWKSkpIHdoZW4oKGlubmVyTWV0MVJpbmdXaWR0aEggPCByaW5nTWV0MU91dEJldmVsSCkgKHJpbmdNZXQxT3V0QmV2ZWxIID0gaW5uZXJNZXQxUmluZ1dpZHRoSCkpIHdoZW4oKGlubmVyTWV0MVJpbmdXaWR0aFYgPCByaW5nTWV0MU91dEJldmVsVikgKHJpbmdNZXQxT3V0QmV2ZWxWID0gaW5uZXJNZXQxUmluZ1dpZHRoVikpIChsZWZ0SW5uZXJSaW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcExheWVyID93aWR0aCBpbm5lclJpbmdXaWR0aFYgP2xlbmd0aCBpbm5lclJpbmdMZW5ndGhMUiA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QwTGF5ZXJWID93aWR0aCByaW5nQ29udGFjdDBXaWR0aFYgP2xlbmd0aCByaW5nQ29udGFjdDBXaWR0aFYgP3NwYWNlWSByaW5nQ29udGFjdDBTcGFjZVYgP3NwYWNlWCByaW5nQ29udGFjdDBTcGFjZVYgP2xvd2VyTGVmdE9mZnNldFkgKGlubmVyUmluZ1dpZHRoSCArIHJpbmdDb250YWN0MFBpdGNoSCkgP3VwcGVyUmlnaHRPZmZzZXRZICgoLSBpbm5lclJpbmdXaWR0aEgpICsgKC0gcmluZ0NvbnRhY3QwUGl0Y2hIKSkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbGVmdElubmVyUmluZyA/YWxpZ25IYW5kbGUgImxSIiA/cmVmT2JqIGZldERpZmZ1c2lvbiA/cmVmSGFuZGxlICJsTCIgP3hTZXAgKC0gaW5uZXJSaW5nRmV0TGVmdFNwYWNlKSA/eVNlcCAoKC0gaW5uZXJSaW5nRmV0Qm90U3BhY2UpICsgKC0gaW5uZXJSaW5nV2lkdGhIKSkpIChsZWZ0SW5uZXJSaW5nSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcEltcGxhbnQgP2Zyb21PYmogbGVmdElubmVyUmluZyA/c2l6ZSB0YXBJbXBFbmMpKSAobGVmdElubmVyUmluZ01ldDAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDBMYXllclYgP2Zyb21PYmogbGVmdElubmVyUmluZykpIChyaWdodElubmVyUmluZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBMYXllciA/d2lkdGggaW5uZXJSaW5nV2lkdGhWID9sZW5ndGggaW5uZXJSaW5nTGVuZ3RoTFIgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MExheWVyViA/d2lkdGggcmluZ0NvbnRhY3QwV2lkdGhWID9sZW5ndGggcmluZ0NvbnRhY3QwV2lkdGhWID9zcGFjZVkgcmluZ0NvbnRhY3QwU3BhY2VWID9zcGFjZVggcmluZ0NvbnRhY3QwU3BhY2VWID9sb3dlckxlZnRPZmZzZXRZIChpbm5lclJpbmdXaWR0aEggKyByaW5nQ29udGFjdDBQaXRjaEgpID91cHBlclJpZ2h0T2Zmc2V0WSAoKC0gaW5uZXJSaW5nV2lkdGhIKSArICgtIHJpbmdDb250YWN0MFBpdGNoSCkpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIHJpZ2h0SW5uZXJSaW5nID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogZmV0RGlmZnVzaW9uID9yZWZIYW5kbGUgImxSIiA/eFNlcCBpbm5lclJpbmdGZXRSaWdodFNwYWNlID95U2VwICgoLSBpbm5lclJpbmdGZXRCb3RTcGFjZSkgKyAoLSBpbm5lclJpbmdXaWR0aEgpKSkgKHJpZ2h0SW5uZXJSaW5nSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcEltcGxhbnQgP2Zyb21PYmogcmlnaHRJbm5lclJpbmcgP3NpemUgdGFwSW1wRW5jKSkgKHJpZ2h0SW5uZXJSaW5nTWV0MCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MExheWVyViA/ZnJvbU9iaiByaWdodElubmVyUmluZykpIChsb3dlcklubmVyUmluZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBMYXllciA/d2lkdGggaW5uZXJSaW5nTGVuZ3RoVEIgP2xlbmd0aCBpbm5lclJpbmdXaWR0aEggP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MExheWVySCA/d2lkdGggcmluZ0NvbnRhY3QwV2lkdGhIID9sZW5ndGggcmluZ0NvbnRhY3QwV2lkdGhIID9zcGFjZVkgcmluZ0NvbnRhY3QwU3BhY2VIID9zcGFjZVggcmluZ0NvbnRhY3QwU3BhY2VIID9sb3dlckxlZnRPZmZzZXRYIHJpbmdDb250YWN0MFBpdGNoSCA/dXBwZXJSaWdodE9mZnNldFggKC0gcmluZ0NvbnRhY3QwUGl0Y2hIKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsb3dlcklubmVyUmluZyA/YWxpZ25IYW5kbGUgInVMIiA/cmVmT2JqIGZldERpZmZ1c2lvbiA/cmVmSGFuZGxlICJsTCIgP3hTZXAgKCgtIGlubmVyUmluZ0ZldExlZnRTcGFjZSkgKyAoLSBpbm5lclJpbmdXaWR0aFYpKSA/eVNlcCAoLSBpbm5lclJpbmdGZXRCb3RTcGFjZSkpIChsb3dlcklubmVyUmluZ0ltcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBJbXBsYW50ID9mcm9tT2JqIGxvd2VySW5uZXJSaW5nID9zaXplIHRhcEltcEVuYykpIChsb3dlcklubmVyUmluZ01ldDAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDBMYXllckggP2Zyb21PYmogbG93ZXJJbm5lclJpbmcpKSAodXBwZXJJbm5lclJpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIGlubmVyUmluZ0xlbmd0aFRCID9sZW5ndGggaW5uZXJSaW5nV2lkdGhIID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDBMYXllckggP3dpZHRoIHJpbmdDb250YWN0MFdpZHRoSCA/bGVuZ3RoIHJpbmdDb250YWN0MFdpZHRoSCA/c3BhY2VZIHJpbmdDb250YWN0MFNwYWNlSCA/c3BhY2VYIHJpbmdDb250YWN0MFNwYWNlSCA/bG93ZXJMZWZ0T2Zmc2V0WCByaW5nQ29udGFjdDBQaXRjaEggP3VwcGVyUmlnaHRPZmZzZXRYICgtIHJpbmdDb250YWN0MFBpdGNoSCkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogdXBwZXJJbm5lclJpbmcgP2FsaWduSGFuZGxlICJ1TCIgP3JlZk9iaiBmZXREaWZmdXNpb24gP3JlZkhhbmRsZSAidUwiID94U2VwICgoLSBpbm5lclJpbmdGZXRMZWZ0U3BhY2UpICsgKC0gaW5uZXJSaW5nV2lkdGhWKSkgP3lTZXAgKGlubmVyUmluZ0ZldFRvcFNwYWNlICsgaW5uZXJSaW5nV2lkdGhIKSkgKHVwcGVySW5uZXJSaW5nSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcEltcGxhbnQgP2Zyb21PYmogdXBwZXJJbm5lclJpbmcgP3NpemUgdGFwSW1wRW5jKSkgKHVwcGVySW5uZXJSaW5nTWV0MCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MExheWVySCA/ZnJvbU9iaiB1cHBlcklubmVyUmluZykpIHVubGVzcyhyaW5nc01ldDFPZmYgKGxlZnRJbm5lclJpbmdNZXQxID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQxTGF5ZXJWID93aWR0aCBpbm5lck1ldDFSaW5nV2lkdGhWID9sZW5ndGggKGlubmVyUmluZ0xlbmd0aExSICsgKDIuMCAqICgtIGlubmVyTWV0MVJpbmdXaWR0aEgpKSArICgtIHJpbmdNZXQxT3V0QmV2ZWxIKSkgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MUxheWVyViA/d2lkdGggcmluZ0NvbnRhY3QxV2lkdGhWID9sZW5ndGggcmluZ0NvbnRhY3QxV2lkdGhWID9zcGFjZVkgcmluZ0NvbnRhY3QxU3BhY2VWID9zcGFjZVggcmluZ0NvbnRhY3QxU3BhY2VWID9sb3dlckxlZnRPZmZzZXRZIHJpbmdDb250YWN0MVBpdGNoViA/dXBwZXJSaWdodE9mZnNldFkgKC0gcmluZ0NvbnRhY3QxUGl0Y2hWKSA/bG93ZXJMZWZ0T2Zmc2V0WCByaW5nTWV0MUNvbnQxRW5jViA/dXBwZXJSaWdodE9mZnNldFggKC0gcmluZ01ldDFDb250MUVuY1YpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxlZnRJbm5lclJpbmdNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogbGVmdElubmVyUmluZyA/cmVmSGFuZGxlICJjQyIpIChyaWdodElubmVyUmluZ01ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDFMYXllclYgP3dpZHRoIGlubmVyTWV0MVJpbmdXaWR0aFYgP2xlbmd0aCAoaW5uZXJSaW5nTGVuZ3RoTFIgKyAoMi4wICogKC0gaW5uZXJNZXQxUmluZ1dpZHRoSCkpICsgKC0gcmluZ01ldDFPdXRCZXZlbEgpKSA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QxTGF5ZXJWID93aWR0aCByaW5nQ29udGFjdDFXaWR0aFYgP2xlbmd0aCByaW5nQ29udGFjdDFXaWR0aFYgP3NwYWNlWSByaW5nQ29udGFjdDFTcGFjZVYgP3NwYWNlWCByaW5nQ29udGFjdDFTcGFjZVYgP2xvd2VyTGVmdE9mZnNldFkgcmluZ0NvbnRhY3QxUGl0Y2hWID91cHBlclJpZ2h0T2Zmc2V0WSAoLSByaW5nQ29udGFjdDFQaXRjaFYpID9sb3dlckxlZnRPZmZzZXRYIHJpbmdNZXQxQ29udDFFbmNWID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nTWV0MUNvbnQxRW5jVikpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogcmlnaHRJbm5lclJpbmdNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogcmlnaHRJbm5lclJpbmcgP3JlZkhhbmRsZSAiY0MiKSAobG93ZXJJbm5lclJpbmdNZXQxID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQxTGF5ZXJIID93aWR0aCAoaW5uZXJSaW5nTGVuZ3RoVEIgKyAoMi4wICogKC0gcmluZ01ldDFPdXRCZXZlbFYpKSkgP2xlbmd0aCBpbm5lck1ldDFSaW5nV2lkdGhIID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDFMYXllckggP3dpZHRoIHJpbmdDb250YWN0MVdpZHRoSCA/bGVuZ3RoIHJpbmdDb250YWN0MVdpZHRoSCA/c3BhY2VZIHJpbmdDb250YWN0MVNwYWNlSCA/c3BhY2VYIHJpbmdDb250YWN0MVNwYWNlSCA/bG93ZXJMZWZ0T2Zmc2V0WCByaW5nQ29udGFjdDFQaXRjaEggP3VwcGVyUmlnaHRPZmZzZXRYICgtIHJpbmdDb250YWN0MVBpdGNoSCkgP2xvd2VyTGVmdE9mZnNldFkgcmluZ01ldDFDb250MUVuY0ggP3VwcGVyUmlnaHRPZmZzZXRZICgtIHJpbmdNZXQxQ29udDFFbmNIKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsb3dlcklubmVyUmluZ01ldDEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBsb3dlcklubmVyUmluZyA/cmVmSGFuZGxlICJjQyIpICh1cHBlcklubmVyUmluZ01ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDFMYXllckggP3dpZHRoIChpbm5lclJpbmdMZW5ndGhUQiArICgyLjAgKiAoLSByaW5nTWV0MU91dEJldmVsVikpKSA/bGVuZ3RoIGlubmVyTWV0MVJpbmdXaWR0aEggP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MUxheWVySCA/d2lkdGggcmluZ0NvbnRhY3QxV2lkdGhIID9sZW5ndGggcmluZ0NvbnRhY3QxV2lkdGhIID9zcGFjZVkgcmluZ0NvbnRhY3QxU3BhY2VIID9zcGFjZVggcmluZ0NvbnRhY3QxU3BhY2VIID9sb3dlckxlZnRPZmZzZXRYIHJpbmdDb250YWN0MVBpdGNoSCA/dXBwZXJSaWdodE9mZnNldFggKC0gcmluZ0NvbnRhY3QxUGl0Y2hIKSA/bG93ZXJMZWZ0T2Zmc2V0WSByaW5nTWV0MUNvbnQxRW5jSCA/dXBwZXJSaWdodE9mZnNldFkgKC0gcmluZ01ldDFDb250MUVuY0gpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIHVwcGVySW5uZXJSaW5nTWV0MSA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIHVwcGVySW5uZXJSaW5nID9yZWZIYW5kbGUgImNDIikgZGVjbGFyZShpbm5lclJpbmdNZXQxUHRzWzE4XSkgKGlubmVyUmluZ1dpZHRoRGlmZkggPSAoaW5uZXJNZXQxUmluZ1dpZHRoSCAtIGlubmVyUmluZ1dpZHRoSCkpIChpbm5lclJpbmdXaWR0aERpZmZWID0gKGlubmVyTWV0MVJpbmdXaWR0aFYgLSBpbm5lclJpbmdXaWR0aFYpKSAoeDBNZXQxID0gMC4wKSAoeTBNZXQxID0gMC4wKSAoaG9sZURpbVggPSAoZmV0RGlmZnVzaW9uWGRpbSArIGlubmVyUmluZ0ZldExlZnRTcGFjZSArIGlubmVyUmluZ0ZldFJpZ2h0U3BhY2UgKyAoLSBpbm5lclJpbmdXaWR0aERpZmZWKSArICgyLjAgKiAoLSByaW5nTWV0MUluQmV2ZWxWKSkpKSAoaG9sZURpbVkgPSAodyArIGlubmVyUmluZ0ZldFRvcFNwYWNlICsgaW5uZXJSaW5nRmV0Qm90U3BhY2UgKyAoLSBpbm5lclJpbmdXaWR0aERpZmZIKSArICgyLjAgKiAoLSByaW5nTWV0MUluQmV2ZWxIKSkpKSAoeDBNZXQxID0gMC4wKSAoeDJNZXQxID0gcmluZ01ldDFPdXRCZXZlbFYpICh4M01ldDEgPSAoKGhvbGVEaW1YICsgKDIuMCAqIHJpbmdNZXQxSW5CZXZlbFYpICsgKDIuMCAqIGlubmVyTWV0MVJpbmdXaWR0aFYpKSAtIHJpbmdNZXQxT3V0QmV2ZWxWKSkgKHg0TWV0MSA9ICh4M01ldDEgKyByaW5nTWV0MU91dEJldmVsVikpICh4OU1ldDEgPSAoaW5uZXJNZXQxUmluZ1dpZHRoViArIHJpbmdNZXQxSW5CZXZlbFYpKSAoeDEwTWV0MSA9ICh4OU1ldDEgKyBob2xlRGltWCkpICh4MTFNZXQxID0gKHgxME1ldDEgKyByaW5nTWV0MUluQmV2ZWxWKSkgKHgxNU1ldDEgPSBpbm5lck1ldDFSaW5nV2lkdGhWKSAoeTBNZXQxID0gKC0gcmluZ01ldDFJbkJldmVsSCkpICh5MU1ldDEgPSAoaG9sZURpbVkgKyByaW5nTWV0MUluQmV2ZWxIKSkgKHkyTWV0MSA9ICh5MU1ldDEgKyByaW5nTWV0MU91dEJldmVsSCkpICh5Nk1ldDEgPSAoKC0gcmluZ01ldDFJbkJldmVsSCkgKyAoLSByaW5nTWV0MU91dEJldmVsSCkpKSAoeThNZXQxID0gMC4wKSAoeTEyTWV0MSA9IGhvbGVEaW1ZKSAoaW5uZXJSaW5nTWV0MVB0c1swXSA9ICh4ME1ldDE6eTBNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbMV0gPSAoeDBNZXQxOnkxTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzJdID0gKHgyTWV0MTp5Mk1ldDEpKSAoaW5uZXJSaW5nTWV0MVB0c1szXSA9ICh4M01ldDE6eTJNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbNF0gPSAoeDRNZXQxOnkxTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzVdID0gKHg0TWV0MTp5ME1ldDEpKSAoaW5uZXJSaW5nTWV0MVB0c1s2XSA9ICh4M01ldDE6eTZNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbN10gPSAoeDJNZXQxOnk2TWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzhdID0gKHgxNU1ldDE6eThNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbOV0gPSAoeDlNZXQxOnkwTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzEwXSA9ICh4MTBNZXQxOnkwTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzExXSA9ICh4MTFNZXQxOnk4TWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzEyXSA9ICh4MTFNZXQxOnkxMk1ldDEpKSAoaW5uZXJSaW5nTWV0MVB0c1sxM10gPSAoeDEwTWV0MTp5MU1ldDEpKSAoaW5uZXJSaW5nTWV0MVB0c1sxNF0gPSAoeDlNZXQxOnkxTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzE1XSA9ICh4MTVNZXQxOnkxMk1ldDEpKSAoaW5uZXJSaW5nTWV0MVBvaW50cyA9IGxpc3QoaW5uZXJSaW5nTWV0MVB0c1swXSBpbm5lclJpbmdNZXQxUHRzWzFdIGlubmVyUmluZ01ldDFQdHNbMl0gaW5uZXJSaW5nTWV0MVB0c1szXSBpbm5lclJpbmdNZXQxUHRzWzRdIGlubmVyUmluZ01ldDFQdHNbNV0gaW5uZXJSaW5nTWV0MVB0c1s2XSBpbm5lclJpbmdNZXQxUHRzWzddIGlubmVyUmluZ01ldDFQdHNbOV0gaW5uZXJSaW5nTWV0MVB0c1sxMF0gaW5uZXJSaW5nTWV0MVB0c1sxMV0gaW5uZXJSaW5nTWV0MVB0c1sxMl0gaW5uZXJSaW5nTWV0MVB0c1sxM10gaW5uZXJSaW5nTWV0MVB0c1sxNF0gaW5uZXJSaW5nTWV0MVB0c1sxNV0gaW5uZXJSaW5nTWV0MVB0c1s4XSBpbm5lclJpbmdNZXQxUHRzWzldIGlubmVyUmluZ01ldDFQdHNbN10pKSAoaW5uZXJSaW5nTWV0MUxheWVyID0gKHJvZENyZWF0ZVBvbHlnb24gP2xheWVyIHJpbmdNZXQxTGF5ZXJIID9wdHMgaW5uZXJSaW5nTWV0MVBvaW50cykpIChyb2RBbGlnbiA/YWxpZ25PYmogaW5uZXJSaW5nTWV0MUxheWVyID9hbGlnbkhhbmRsZSAiY0wiID9yZWZPYmogbGVmdElubmVyUmluZ01ldDEgP3JlZkhhbmRsZSAiY0wiKSkgd2hlbihodk1vZGUgKGh2TGF5ZXJEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGh2TGF5ZXIgP3dpZHRoIChpbm5lclJpbmdMZW5ndGhUQiArICgyLjAgKiBodkxheWVyRGlmZlRhcEVuYykpID9sZW5ndGggKGlubmVyUmluZ0xlbmd0aExSICsgKDIuMCAqIGh2TGF5ZXJEaWZmVGFwRW5jKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGh2TGF5ZXJEcmF3aW5nID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogbG93ZXJJbm5lclJpbmcgP3JlZkhhbmRsZSAibEwiID94U2VwICgtIGh2TGF5ZXJEaWZmVGFwRW5jKSA/eVNlcCAoLSBodkxheWVyRGlmZlRhcEVuYykpKSB3aGVuKChtb3NUeXBlID09ICJwbW9zIikgKHdlbGxMYXllcldpZHRoID0gKGlubmVyUmluZ0xlbmd0aFRCICsgKDIuMCAqIGh2V2VsbERpZmZUYXBFbmMpKSkgKHdlbGxMYXllckxlbmd0aCA9IChpbm5lclJpbmdMZW5ndGhMUiArICgyLjAgKiBodldlbGxEaWZmVGFwRW5jKSkpICh3ZWxsTGF5ZXJEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHdlbGxMYXllciA/d2lkdGggd2VsbExheWVyV2lkdGggP2xlbmd0aCB3ZWxsTGF5ZXJMZW5ndGgpKSAocm9kQWxpZ24gP2FsaWduT2JqIHdlbGxMYXllckRyYXdpbmcgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBsb3dlcklubmVyUmluZyA/cmVmSGFuZGxlICJsTCIgP3hTZXAgKC0gaHZXZWxsRGlmZlRhcEVuYykgP3lTZXAgKC0gaHZXZWxsRGlmZlRhcEVuYykpIHdoZW4oaHZNb2RlIChodkxheWVyRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBodkxheWVyID9mcm9tT2JqIHdlbGxMYXllckRyYXdpbmcgP3NpemUgMC4wKSkpKSkgd2hlbigocmluZ3MgPT0gIkJvdGgiKSAocmluZ0NvbnRhY3QwSW5mbyA9IG50aCgwIE91dGVyUmluZ0ludGVyY29ubmVjdCkpIChyaW5nQ29udGFjdDBMYXllciA9IG50aCgwIHJpbmdDb250YWN0MEluZm8pKSAocmluZ0NvbnRhY3QwV2lkdGggPSBudGgoMSByaW5nQ29udGFjdDBJbmZvKSkgKHJpbmdDb250YWN0MFNwYWNlID0gbnRoKDIgcmluZ0NvbnRhY3QwSW5mbykpIChyaW5nQ29udGFjdDBDb2xzID0gbnRoKDMgcmluZ0NvbnRhY3QwSW5mbykpIChyaW5nTWV0MExheWVyID0gbnRoKDQgcmluZ0NvbnRhY3QwSW5mbykpIChyaW5nTWV0MENvbnQwRW5jID0gbnRoKDUgcmluZ0NvbnRhY3QwSW5mbykpIChyaW5nTWV0MEluQmV2ZWwgPSBudGgoNiByaW5nQ29udGFjdDBJbmZvKSkgKHJpbmdNZXQwT3V0QmV2ZWwgPSBudGgoNyByaW5nQ29udGFjdDBJbmZvKSkgKHJpbmdDb250YWN0MUluZm8gPSBudGgoMSBPdXRlclJpbmdJbnRlcmNvbm5lY3QpKSAocmluZ0NvbnRhY3QxTGF5ZXIgPSBudGgoMCByaW5nQ29udGFjdDFJbmZvKSkgKHJpbmdDb250YWN0MVdpZHRoID0gbnRoKDEgcmluZ0NvbnRhY3QxSW5mbykpIChyaW5nQ29udGFjdDFTcGFjZSA9IG50aCgyIHJpbmdDb250YWN0MUluZm8pKSAocmluZ0NvbnRhY3QxQ29scyA9IG50aCgzIHJpbmdDb250YWN0MUluZm8pKSAocmluZ01ldDFMYXllciA9IG50aCg0IHJpbmdDb250YWN0MUluZm8pKSAocmluZ01ldDFDb250MUVuYyA9IG50aCg1IHJpbmdDb250YWN0MUluZm8pKSAocmluZ01ldDFJbkJldmVsID0gbnRoKDYgcmluZ0NvbnRhY3QxSW5mbykpIChyaW5nTWV0MU91dEJldmVsID0gbnRoKDcgcmluZ0NvbnRhY3QxSW5mbykpIChyaW5nQ29udGFjdDBQaXRjaCA9IChyaW5nQ29udGFjdDBXaWR0aCArIHJpbmdDb250YWN0MFNwYWNlKSkgKG91dGVyUmluZ1dpZHRoID0gKChyaW5nQ29udGFjdDBXaWR0aCAqIHJpbmdDb250YWN0MENvbHMpICsgKChyaW5nQ29udGFjdDBDb2xzICsgLTEpICogcmluZ0NvbnRhY3QwU3BhY2UpICsgKDIuMCAqIHJpbmdNZXQwQ29udDBFbmMpKSkgKG91dGVyUmluZ1dpZHRoID0gbWF4KG91dGVyUmluZ1dpZHRoIHVzZXJPdXRlclJpbmdXaWR0aCkpIChvdXRlclJpbmdMZW5ndGhMUiA9IChpbm5lclJpbmdMZW5ndGhMUiArICgyLjAgKiBPdXRlcklubmVyUmluZ1NwYWNlKSArICgyLjAgKiBvdXRlclJpbmdXaWR0aCkpKSAob3V0ZXJSaW5nTGVuZ3RoVEIgPSAoaW5uZXJSaW5nTGVuZ3RoVEIgKyAoMi4wICogT3V0ZXJJbm5lclJpbmdTcGFjZSkgKyAoMi4wICogb3V0ZXJSaW5nV2lkdGgpKSkgKHJpbmdDb250YWN0MVBpdGNoID0gKHJpbmdDb250YWN0MVdpZHRoICsgcmluZ0NvbnRhY3QxU3BhY2UpKSAob3V0ZXJNZXQxUmluZ1dpZHRoID0gKChyaW5nQ29udGFjdDFXaWR0aCAqIHJpbmdDb250YWN0MUNvbHMpICsgKChyaW5nQ29udGFjdDFDb2xzICsgLTEpICogcmluZ0NvbnRhY3QxU3BhY2UpICsgKDIuMCAqIHJpbmdNZXQxQ29udDFFbmMpKSkgd2hlbigob3V0ZXJNZXQxUmluZ1dpZHRoIDwgcmluZ01ldDFPdXRCZXZlbCkgKHJpbmdNZXQxT3V0QmV2ZWwgPSBvdXRlck1ldDFSaW5nV2lkdGgpKSAobGVmdE91dGVyUmluZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBMYXllciA/d2lkdGggb3V0ZXJSaW5nV2lkdGggP2xlbmd0aCBvdXRlclJpbmdMZW5ndGhMUiA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QwTGF5ZXIgP3dpZHRoIHJpbmdDb250YWN0MFdpZHRoID9sZW5ndGggcmluZ0NvbnRhY3QwV2lkdGggP3NwYWNlWSByaW5nQ29udGFjdDBTcGFjZSA/c3BhY2VYIHJpbmdDb250YWN0MFNwYWNlID9sb3dlckxlZnRPZmZzZXRZIChvdXRlclJpbmdXaWR0aCArIHJpbmdDb250YWN0MFBpdGNoKSA/dXBwZXJSaWdodE9mZnNldFkgKCgtIG91dGVyUmluZ1dpZHRoKSArICgtIHJpbmdDb250YWN0MFBpdGNoKSkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbGVmdE91dGVyUmluZyA/YWxpZ25IYW5kbGUgImxSIiA/cmVmT2JqIGxlZnRJbm5lclJpbmcgP3JlZkhhbmRsZSAibEwiID94U2VwICgtIE91dGVySW5uZXJSaW5nU3BhY2UpID95U2VwICgoLSBPdXRlcklubmVyUmluZ1NwYWNlKSArICgtIG91dGVyUmluZ1dpZHRoKSkpIChsZWZ0T3V0ZXJSaW5nSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBsYW50ID9mcm9tT2JqIGxlZnRPdXRlclJpbmcgP3NpemUgZGlmZkltcEVuYykpIHdoZW4oKG1vc1R5cGUgPT0gIm5tb3MiKSAobGVmdE91dGVyUmluZ1dlbGwgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgd2VsbExheWVyID9mcm9tT2JqIGxlZnRPdXRlclJpbmcgP3NpemUgaHZXZWxsRGlmZlRhcEVuYykpKSAobGVmdE91dGVyUmluZ01ldDAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDBMYXllciA/ZnJvbU9iaiBsZWZ0T3V0ZXJSaW5nKSkgKHJpZ2h0T3V0ZXJSaW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcExheWVyID93aWR0aCBvdXRlclJpbmdXaWR0aCA/bGVuZ3RoIG91dGVyUmluZ0xlbmd0aExSID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDBMYXllciA/d2lkdGggcmluZ0NvbnRhY3QwV2lkdGggP2xlbmd0aCByaW5nQ29udGFjdDBXaWR0aCA/c3BhY2VZIHJpbmdDb250YWN0MFNwYWNlID9zcGFjZVggcmluZ0NvbnRhY3QwU3BhY2UgP2xvd2VyTGVmdE9mZnNldFkgKG91dGVyUmluZ1dpZHRoICsgcmluZ0NvbnRhY3QwUGl0Y2gpID91cHBlclJpZ2h0T2Zmc2V0WSAoKC0gb3V0ZXJSaW5nV2lkdGgpICsgKC0gcmluZ0NvbnRhY3QwUGl0Y2gpKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiByaWdodE91dGVyUmluZyA/YWxpZ25IYW5kbGUgImxMIiA/cmVmT2JqIHJpZ2h0SW5uZXJSaW5nID9yZWZIYW5kbGUgImxSIiA/eFNlcCBPdXRlcklubmVyUmluZ1NwYWNlID95U2VwICgoLSBPdXRlcklubmVyUmluZ1NwYWNlKSArICgtIG91dGVyUmluZ1dpZHRoKSkpIChyaWdodE91dGVyUmluZ0ltcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmSW1wbGFudCA/ZnJvbU9iaiByaWdodE91dGVyUmluZyA/c2l6ZSBkaWZmSW1wRW5jKSkgd2hlbigobW9zVHlwZSA9PSAibm1vcyIpIChyaWdodE91dGVyUmluZ1dlbGwgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgd2VsbExheWVyID9mcm9tT2JqIHJpZ2h0T3V0ZXJSaW5nID9zaXplIGh2V2VsbERpZmZUYXBFbmMpKSkgKHJpZ2h0T3V0ZXJSaW5nTWV0MCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MExheWVyID9mcm9tT2JqIHJpZ2h0T3V0ZXJSaW5nKSkgKGxvd2VyT3V0ZXJSaW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcExheWVyID93aWR0aCBvdXRlclJpbmdMZW5ndGhUQiA/bGVuZ3RoIG91dGVyUmluZ1dpZHRoID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDBMYXllciA/d2lkdGggcmluZ0NvbnRhY3QwV2lkdGggP2xlbmd0aCByaW5nQ29udGFjdDBXaWR0aCA/c3BhY2VZIHJpbmdDb250YWN0MFNwYWNlID9zcGFjZVggcmluZ0NvbnRhY3QwU3BhY2UgP2xvd2VyTGVmdE9mZnNldFggcmluZ0NvbnRhY3QwUGl0Y2ggP3VwcGVyUmlnaHRPZmZzZXRYICgtIHJpbmdDb250YWN0MFBpdGNoKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsb3dlck91dGVyUmluZyA/YWxpZ25IYW5kbGUgInVDIiA/cmVmT2JqIGxvd2VySW5uZXJSaW5nID9yZWZIYW5kbGUgImxDIiA/eVNlcCAoLSBPdXRlcklubmVyUmluZ1NwYWNlKSkgKGxvd2VyT3V0ZXJSaW5nSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBsYW50ID9mcm9tT2JqIGxvd2VyT3V0ZXJSaW5nID9zaXplIGRpZmZJbXBFbmMpKSB3aGVuKChtb3NUeXBlID09ICJubW9zIikgKGxvd2VyT3V0ZXJSaW5nV2VsbCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB3ZWxsTGF5ZXIgP2Zyb21PYmogbG93ZXJPdXRlclJpbmcgP3NpemUgaHZXZWxsRGlmZlRhcEVuYykpKSAobG93ZXJPdXRlclJpbmdNZXQwID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQwTGF5ZXIgP2Zyb21PYmogbG93ZXJPdXRlclJpbmcpKSAodXBwZXJPdXRlclJpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIG91dGVyUmluZ0xlbmd0aFRCID9sZW5ndGggb3V0ZXJSaW5nV2lkdGggP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MExheWVyID93aWR0aCByaW5nQ29udGFjdDBXaWR0aCA/bGVuZ3RoIHJpbmdDb250YWN0MFdpZHRoID9zcGFjZVkgcmluZ0NvbnRhY3QwU3BhY2UgP3NwYWNlWCByaW5nQ29udGFjdDBTcGFjZSA/bG93ZXJMZWZ0T2Zmc2V0WCByaW5nQ29udGFjdDBQaXRjaCA/dXBwZXJSaWdodE9mZnNldFggKC0gcmluZ0NvbnRhY3QwUGl0Y2gpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIHVwcGVyT3V0ZXJSaW5nID9hbGlnbkhhbmRsZSAibEMiID9yZWZPYmogdXBwZXJJbm5lclJpbmcgP3JlZkhhbmRsZSAidUMiID95U2VwIE91dGVySW5uZXJSaW5nU3BhY2UpICh1cHBlck91dGVyUmluZ0ltcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmSW1wbGFudCA/ZnJvbU9iaiB1cHBlck91dGVyUmluZyA/c2l6ZSBkaWZmSW1wRW5jKSkgd2hlbigobW9zVHlwZSA9PSAibm1vcyIpICh1cHBlck91dGVyUmluZ1dlbGwgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgd2VsbExheWVyID9mcm9tT2JqIHVwcGVyT3V0ZXJSaW5nID9zaXplIGh2V2VsbERpZmZUYXBFbmMpKSkgKHVwcGVyT3V0ZXJSaW5nTWV0MCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MExheWVyID9mcm9tT2JqIHVwcGVyT3V0ZXJSaW5nKSkgdW5sZXNzKHJpbmdzTWV0MU9mZiAobGVmdE91dGVyUmluZ01ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDFMYXllciA/d2lkdGggb3V0ZXJNZXQxUmluZ1dpZHRoID9sZW5ndGggKG91dGVyUmluZ0xlbmd0aExSICsgKDIuMCAqICgtIG91dGVyTWV0MVJpbmdXaWR0aCkpICsgKC0gcmluZ01ldDFPdXRCZXZlbCkpID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDFMYXllciA/d2lkdGggcmluZ0NvbnRhY3QxV2lkdGggP2xlbmd0aCByaW5nQ29udGFjdDFXaWR0aCA/c3BhY2VZIHJpbmdDb250YWN0MVNwYWNlID9zcGFjZVggcmluZ0NvbnRhY3QxU3BhY2UgP2xvd2VyTGVmdE9mZnNldFkgcmluZ0NvbnRhY3QxUGl0Y2ggP3VwcGVyUmlnaHRPZmZzZXRZICgtIHJpbmdDb250YWN0MVBpdGNoKSA/bG93ZXJMZWZ0T2Zmc2V0WCByaW5nTWV0MUNvbnQxRW5jID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nTWV0MUNvbnQxRW5jKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsZWZ0T3V0ZXJSaW5nTWV0MSA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIGxlZnRPdXRlclJpbmcgP3JlZkhhbmRsZSAiY0MiKSAocmlnaHRPdXRlclJpbmdNZXQxID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQxTGF5ZXIgP3dpZHRoIG91dGVyTWV0MVJpbmdXaWR0aCA/bGVuZ3RoIChvdXRlclJpbmdMZW5ndGhMUiArICgyLjAgKiAoLSBvdXRlck1ldDFSaW5nV2lkdGgpKSArICgtIHJpbmdNZXQxT3V0QmV2ZWwpKSA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QxTGF5ZXIgP3dpZHRoIHJpbmdDb250YWN0MVdpZHRoID9sZW5ndGggcmluZ0NvbnRhY3QxV2lkdGggP3NwYWNlWSByaW5nQ29udGFjdDFTcGFjZSA/c3BhY2VYIHJpbmdDb250YWN0MVNwYWNlID9sb3dlckxlZnRPZmZzZXRZIHJpbmdDb250YWN0MVBpdGNoID91cHBlclJpZ2h0T2Zmc2V0WSAoLSByaW5nQ29udGFjdDFQaXRjaCkgP2xvd2VyTGVmdE9mZnNldFggcmluZ01ldDFDb250MUVuYyA/dXBwZXJSaWdodE9mZnNldFggKC0gcmluZ01ldDFDb250MUVuYykpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogcmlnaHRPdXRlclJpbmdNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogcmlnaHRPdXRlclJpbmcgP3JlZkhhbmRsZSAiY0MiKSAobG93ZXJPdXRlclJpbmdNZXQxID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQxTGF5ZXIgP3dpZHRoIChvdXRlclJpbmdMZW5ndGhUQiArICgtIG91dGVyTWV0MVJpbmdXaWR0aCkgKyAoMi4wICogKC0gcmluZ01ldDFPdXRCZXZlbCkpKSA/bGVuZ3RoIG91dGVyTWV0MVJpbmdXaWR0aCA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QxTGF5ZXIgP3dpZHRoIHJpbmdDb250YWN0MVdpZHRoID9sZW5ndGggcmluZ0NvbnRhY3QxV2lkdGggP3NwYWNlWSByaW5nQ29udGFjdDFTcGFjZSA/c3BhY2VYIHJpbmdDb250YWN0MVNwYWNlID9sb3dlckxlZnRPZmZzZXRYIHJpbmdDb250YWN0MVBpdGNoID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nQ29udGFjdDFQaXRjaCkgP2xvd2VyTGVmdE9mZnNldFkgcmluZ01ldDFDb250MUVuYyA/dXBwZXJSaWdodE9mZnNldFkgKC0gcmluZ01ldDFDb250MUVuYykpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbG93ZXJPdXRlclJpbmdNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogbG93ZXJPdXRlclJpbmcgP3JlZkhhbmRsZSAiY0MiKSAodXBwZXJPdXRlclJpbmdNZXQxID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQxTGF5ZXIgP3dpZHRoIChvdXRlclJpbmdMZW5ndGhUQiArICgtIG91dGVyTWV0MVJpbmdXaWR0aCkgKyAoMi4wICogKC0gcmluZ01ldDFPdXRCZXZlbCkpKSA/bGVuZ3RoIG91dGVyTWV0MVJpbmdXaWR0aCA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QxTGF5ZXIgP3dpZHRoIHJpbmdDb250YWN0MVdpZHRoID9sZW5ndGggcmluZ0NvbnRhY3QxV2lkdGggP3NwYWNlWSByaW5nQ29udGFjdDFTcGFjZSA/c3BhY2VYIHJpbmdDb250YWN0MVNwYWNlID9sb3dlckxlZnRPZmZzZXRYIHJpbmdDb250YWN0MVBpdGNoID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nQ29udGFjdDFQaXRjaCkgP2xvd2VyTGVmdE9mZnNldFkgcmluZ01ldDFDb250MUVuYyA/dXBwZXJSaWdodE9mZnNldFkgKC0gcmluZ01ldDFDb250MUVuYykpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogdXBwZXJPdXRlclJpbmdNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogdXBwZXJPdXRlclJpbmcgP3JlZkhhbmRsZSAiY0MiKSBkZWNsYXJlKG91dGVyUmluZ01ldDFQdHNbMThdKSAob3V0ZXJSaW5nV2lkdGhEaWZmID0gKG91dGVyTWV0MVJpbmdXaWR0aCAtIG91dGVyUmluZ1dpZHRoKSkgKHgwTWV0MSA9IDAuMCkgKHkwTWV0MSA9IDAuMCkgKGhvbGVEaW1YID0gKGZldERpZmZ1c2lvblhkaW0gKyBpbm5lclJpbmdGZXRMZWZ0U3BhY2UgKyBpbm5lclJpbmdGZXRSaWdodFNwYWNlICsgKC0gb3V0ZXJSaW5nV2lkdGhEaWZmKSArICgyLjAgKiBPdXRlcklubmVyUmluZ1NwYWNlKSArICgyLjAgKiBpbm5lclJpbmdXaWR0aFYpICsgKDIuMCAqICgtIHJpbmdNZXQxSW5CZXZlbCkpKSkgKGhvbGVEaW1ZID0gKHcgKyBpbm5lclJpbmdGZXRUb3BTcGFjZSArIGlubmVyUmluZ0ZldEJvdFNwYWNlICsgKC0gb3V0ZXJSaW5nV2lkdGhEaWZmKSArICgyLjAgKiBPdXRlcklubmVyUmluZ1NwYWNlKSArICgyLjAgKiBpbm5lclJpbmdXaWR0aEgpICsgKDIuMCAqICgtIHJpbmdNZXQxSW5CZXZlbCkpKSkgKHgwTWV0MSA9IDAuMCkgKHgyTWV0MSA9IHJpbmdNZXQxT3V0QmV2ZWwpICh4M01ldDEgPSAoaG9sZURpbVggKyAoMi4wICogcmluZ01ldDFJbkJldmVsKSArIHJpbmdNZXQxT3V0QmV2ZWwpKSAoeDRNZXQxID0gKHgzTWV0MSArIHJpbmdNZXQxT3V0QmV2ZWwpKSAoeDlNZXQxID0gKHJpbmdNZXQxT3V0QmV2ZWwgKyByaW5nTWV0MUluQmV2ZWwpKSAoeDEwTWV0MSA9ICh4OU1ldDEgKyBob2xlRGltWCkpICh5ME1ldDEgPSAoLSByaW5nTWV0MUluQmV2ZWwpKSAoeTFNZXQxID0gKGhvbGVEaW1ZICsgcmluZ01ldDFJbkJldmVsKSkgKHkyTWV0MSA9ICh5MU1ldDEgKyByaW5nTWV0MU91dEJldmVsKSkgKHk2TWV0MSA9ICgoLSByaW5nTWV0MUluQmV2ZWwpICsgKC0gcmluZ01ldDFPdXRCZXZlbCkpKSAoeThNZXQxID0gMC4wKSAoeTEyTWV0MSA9IGhvbGVEaW1ZKSAob3V0ZXJSaW5nTWV0MVB0c1swXSA9ICh4ME1ldDE6eTBNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbMV0gPSAoeDBNZXQxOnkxTWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzJdID0gKHgyTWV0MTp5Mk1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1szXSA9ICh4M01ldDE6eTJNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbNF0gPSAoeDRNZXQxOnkxTWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzVdID0gKHg0TWV0MTp5ME1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1s2XSA9ICh4M01ldDE6eTZNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbN10gPSAoeDJNZXQxOnk2TWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzhdID0gKHgyTWV0MTp5OE1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1s5XSA9ICh4OU1ldDE6eTBNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbMTBdID0gKHgxME1ldDE6eTBNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbMTFdID0gKHgzTWV0MTp5OE1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1sxMl0gPSAoeDNNZXQxOnkxMk1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1sxM10gPSAoeDEwTWV0MTp5MU1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1sxNF0gPSAoeDlNZXQxOnkxTWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzE1XSA9ICh4Mk1ldDE6eTEyTWV0MSkpIChvdXRlclJpbmdNZXQxUG9pbnRzID0gbGlzdChvdXRlclJpbmdNZXQxUHRzWzBdIG91dGVyUmluZ01ldDFQdHNbMV0gb3V0ZXJSaW5nTWV0MVB0c1syXSBvdXRlclJpbmdNZXQxUHRzWzNdIG91dGVyUmluZ01ldDFQdHNbNF0gb3V0ZXJSaW5nTWV0MVB0c1s1XSBvdXRlclJpbmdNZXQxUHRzWzZdIG91dGVyUmluZ01ldDFQdHNbN10gb3V0ZXJSaW5nTWV0MVB0c1s5XSBvdXRlclJpbmdNZXQxUHRzWzEwXSBvdXRlclJpbmdNZXQxUHRzWzExXSBvdXRlclJpbmdNZXQxUHRzWzEyXSBvdXRlclJpbmdNZXQxUHRzWzEzXSBvdXRlclJpbmdNZXQxUHRzWzE0XSBvdXRlclJpbmdNZXQxUHRzWzE1XSBvdXRlclJpbmdNZXQxUHRzWzhdIG91dGVyUmluZ01ldDFQdHNbOV0gb3V0ZXJSaW5nTWV0MVB0c1s3XSkpIChvdXRlclJpbmdNZXQxTGF5ZXIgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgcmluZ01ldDFMYXllciA/cHRzIG91dGVyUmluZ01ldDFQb2ludHMpKSAocm9kQWxpZ24gP2FsaWduT2JqIG91dGVyUmluZ01ldDFMYXllciA/YWxpZ25IYW5kbGUgImNMIiA/cmVmT2JqIGxlZnRPdXRlclJpbmdNZXQxID9yZWZIYW5kbGUgImNMIiA/eFNlcCAoKG91dGVyTWV0MVJpbmdXaWR0aCAtIHJpbmdNZXQxT3V0QmV2ZWwpICogMC41KSkpIGNvbmQoKChtb3NUeXBlID09ICJubW9zIikgKGlkTGF5ZXJXaWR0aCA9IChvdXRlclJpbmdMZW5ndGhUQiArICgyLjAgKiBodldlbGxEaWZmVGFwRW5jKSkpIChpZExheWVyTGVuZ3RoID0gKG91dGVyUmluZ0xlbmd0aExSICsgKDIuMCAqIGh2V2VsbERpZmZUYXBFbmMpKSkgd2hlbihodk1vZGUgKGh2TGF5ZXJEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGh2TGF5ZXIgP3dpZHRoIGlkTGF5ZXJXaWR0aCA/bGVuZ3RoIGlkTGF5ZXJMZW5ndGgpKSAocm9kQWxpZ24gP2FsaWduT2JqIGh2TGF5ZXJEcmF3aW5nID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogbG93ZXJPdXRlclJpbmdXZWxsID9yZWZIYW5kbGUgImxMIikpKSAoKG1vc1R5cGUgPT0gInBtb3MiKSAoaWRMYXllcldpZHRoID0gKG91dGVyUmluZ0xlbmd0aFRCICsgKDIuMCAqIGh2TGF5ZXJEaWZmVGFwRW5jKSkpIChpZExheWVyTGVuZ3RoID0gKG91dGVyUmluZ0xlbmd0aExSICsgKDIuMCAqIGh2TGF5ZXJEaWZmVGFwRW5jKSkpIHdoZW4oaHZNb2RlIChodkxheWVyRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBodkxheWVyID93aWR0aCBpZExheWVyV2lkdGggP2xlbmd0aCBpZExheWVyTGVuZ3RoKSkgKHJvZEFsaWduID9hbGlnbk9iaiBodkxheWVyRHJhd2luZyA/YWxpZ25IYW5kbGUgImxMIiA/cmVmT2JqIGxvd2VyT3V0ZXJSaW5nID9yZWZIYW5kbGUgImxMIiA/eFNlcCAoLSBodkxheWVyRGlmZlRhcEVuYykgP3lTZXAgKC0gaHZMYXllckRpZmZUYXBFbmMpKSkpICh0KSkgKGlkTGF5ZXJEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGlkTGF5ZXIgP3dpZHRoIGlkTGF5ZXJXaWR0aCA/bGVuZ3RoIGlkTGF5ZXJMZW5ndGgpKSAocm9kQWxpZ24gP2FsaWduT2JqIGlkTGF5ZXJEcmF3aW5nID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogKGh2TGF5ZXJEcmF3aW5nIHx8IGxvd2VyT3V0ZXJSaW5nV2VsbCB8fCBsb3dlck91dGVyUmluZ0ltcCkgP3JlZkhhbmRsZSAibEwiKSkgd2hlbigoaHZNb2RlICYmIChyaW5ncyA9PSAiTm9uZSIpKSAoaHZMYXllckRyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgaHZMYXllciA/d2lkdGggKGZldERpZmZ1c2lvblhkaW0gKyBtYXgoaW5uZXJSaW5nRmV0UmlnaHRTcGFjZSBodkxheWVyRGlmZlRhcEVuYykgKyBtYXgoaW5uZXJSaW5nRmV0TGVmdFNwYWNlIGh2TGF5ZXJEaWZmVGFwRW5jKSkgP2xlbmd0aCAodyArIG1heChpbm5lclJpbmdGZXRCb3RTcGFjZSBodkxheWVyRGlmZlRhcEVuYykgKyBtYXgoaW5uZXJSaW5nRmV0VG9wU3BhY2UgaHZMYXllckRpZmZUYXBFbmMpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogaHZMYXllckRyYXdpbmcgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBmZXREaWZmdXNpb24gP3JlZkhhbmRsZSAibEwiID94U2VwIG1pbigoLSBpbm5lclJpbmdGZXRMZWZ0U3BhY2UpICgtIGh2TGF5ZXJEaWZmVGFwRW5jKSkgP3lTZXAgbWluKCgtIGlubmVyUmluZ0ZldEJvdFNwYWNlKSAoLSBodkxheWVyRGlmZlRhcEVuYykpKSkgdW5sZXNzKChyaW5ncyA9PSAiTm9uZSIpIChsZWZ0WENvb3JkID0gKGNhcihlc2RDZWxsT3JpZ2luKSAtIChpbm5lclJpbmdGZXRMZWZ0U3BhY2UgKyAoaW5uZXJSaW5nV2lkdGhWIC8gMikgKyBkaWZmQ29udGFjdDBYZW5jICsgbVNvdXJjZVBpbk9mZnNldCArIHNyY1BpbldpZHRoKSkpIChyaWdodFhDb29yZCA9IChjYXIoZXNkQ2VsbE9yaWdpbikgKyBpbm5lclJpbmdGZXRSaWdodFNwYWNlICsgKGlubmVyUmluZ1dpZHRoViAvIDIpICsgKGZldERpZmZ1c2lvblhkaW0gLSBkaWZmQ29udGFjdDBYZW5jIC0gbVNvdXJjZVBpbk9mZnNldCAtIHNyY1BpbldpZHRoKSkpIChsYWJlbFlDb29yZCA9ICgoaW5uZXJSaW5nTGVuZ3RoTFIgLyAyKSAtIGlubmVyUmluZ0ZldEJvdFNwYWNlKSkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QobGVmdFhDb29yZCAoMC45ICsgbGFiZWxZQ29vcmQpKSAiQ1JJVElDQUwgVE8iICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiAwLjQpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KGxlZnRYQ29vcmQgKDAuMyArIGxhYmVsWUNvb3JkKSkgIkNPTk5FQ1QgV0lERSIgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIDAuNCkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QobGVmdFhDb29yZCAobGFiZWxZQ29vcmQgLSAwLjMpKSAiU0lERVMgT0YiICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiAwLjQpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KGxlZnRYQ29vcmQgKGxhYmVsWUNvb3JkIC0gMC45KSkgIkdVQVJEUklORyIgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIDAuNCkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QocmlnaHRYQ29vcmQgKDAuOSArIGxhYmVsWUNvb3JkKSkgIkNSSVRJQ0FMIFRPIiAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgMC40KSAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdChyaWdodFhDb29yZCAoMC4zICsgbGFiZWxZQ29vcmQpKSAiQ09OTkVDVCBXSURFIiAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgMC40KSAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdChyaWdodFhDb29yZCAobGFiZWxZQ29vcmQgLSAwLjMpKSAiU0lERVMgT0YiICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiAwLjQpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KHJpZ2h0WENvb3JkIChsYWJlbFlDb29yZCAtIDAuOSkpICJHVUFSRFJJTkciICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiAwLjQpKSkAKGRpZmZMYXllciBnYXRlTGF5ZXIgcGdhdGVMYXllciB3ZWxsTGF5ZXIgZGlmZkltcGxhbnQgZGlmZkltcEVuYyB0YXBMYXllciB0YXBJbXBsYW50IHRhcEltcEVuYyBpZExheWVyIGh2TGF5ZXIgaHZXZWxsRGlmZlRhcEVuYyBodkxheWVyRGlmZlRhcEVuYyBmbGFyZUluRGlmZiBmbGFyZU91dERpZmYgZmxhcmVFeHQgZHJuSW50ZXJjb25uZWN0IHNyY0ludGVyY29ubmVjdCBkaWZmQ29udGFjdDBZZW5jIGRpZmZDb250YWN0MFhlbmMgSW5uZXJSaW5nSW50ZXJjb25uZWN0SG9yaXogSW5uZXJSaW5nSW50ZXJjb25uZWN0VmVydCBPdXRlclJpbmdJbnRlcmNvbm5lY3QgYnV0dGluZ1RhcFdpZHRoIGJ1dHRpbmdUYXBDb250MFhlbmMgZmV0RGlmZklubmVyUmluZ1NwYWNlIE91dGVySW5uZXJSaW5nU3BhY2UgbW9zVHlwZSBsYWJlbExheWVyIGxhYmVsV2lkdGggZXZlbk9ubHkgc2luZ2xlRmxhcmUgbWluSW5uZXJSaW5nRmV0RXh0cmFSaWdodFNwYWNlIG1pbklubmVyUmluZ0ZldEV4dHJhTGVmdFNwYWNlIG1pbklubmVyUmluZ0ZldEV4dHJhVG9wU3BhY2UgbWluSW5uZXJSaW5nRmV0RXh0cmFCb3RTcGFjZSBtaW5pbXVtTSBzcmNHYXRlQ29udGFjdFNwYWNlTWluIHNyY0dhdGVDb250YWN0U3BhY2VNYXggYnV0dGluZ1RhcCB3IGwgbSBpbm5lclJpbmdGZXRFeHRyYVJpZ2h0U3BhY2UgaW5uZXJSaW5nRmV0RXh0cmFMZWZ0U3BhY2UgaW5uZXJSaW5nRmV0RXh0cmFUb3BTcGFjZSBpbm5lclJpbmdGZXRFeHRyYUJvdFNwYWNlIGh2TW9kZSByaW5ncyByaW5nc01ldDFPZmYgdXNlck91dGVyUmluZ1dpZHRoIGhzcGljZU1vZGVsIGhzcGljZU1vZGVsQ2hvaWNlcyBzcmNHYXRlQ29udGFjdFNwYWNlIGRybkdhdGVDb250YWN0U3BhY2VQYXJhbXMgZHJuR2F0ZUNvbnRhY3RTcGFjZVZhbHVlIGRybkdhdGVDb250YWN0U3BhY2VOYW1lIG1ldDFXaWR0aEQgZHJuR2F0ZUNvbnRhY3RTcGFjZSBtaW5pbXVtVG90YWxXaWR0aCBlc2RDZWxsT3JpZ2luIGlkTGF5ZXJFbmRFbmMgaHZMYXllckVuZEVuYyBpbm5lclJpbmdGZXRSaWdodFNwYWNlIGlubmVyUmluZ0ZldExlZnRTcGFjZSBpbm5lclJpbmdGZXRUb3BTcGFjZSBpbm5lclJpbmdGZXRCb3RTcGFjZSBjb250YWN0MEluZm9TIGNvbnRhY3QwTGF5ZXJTIGNvbnRhY3QwV2lkdGhTIGNvbnRhY3QwU3BhY2VTIGNvbnRhY3QwQ29sc1MgbWV0MExheWVyUyBtZXQwV2lkdGhTIG1ldDBTcGFjZVMgbWV0MEJldmVsUyBjb250YWN0MUluZm9TIGNvbnRhY3QxTGF5ZXJTIGNvbnRhY3QxV2lkdGhTIGNvbnRhY3QxU3BhY2VTIGNvbnRhY3QxQ29sc1MgbWV0MUxheWVyUyBtZXQxV2lkdGhTIG1ldDFTcGFjZVMgbWV0MUJldmVsUyBjb250YWN0MEluZm9EIGNvbnRhY3QwTGF5ZXJEIGNvbnRhY3QwV2lkdGhEIGNvbnRhY3QwU3BhY2VEIGNvbnRhY3QwQ29sc0QgbWV0MExheWVyRCBtZXQwV2lkdGhEIG1ldDBTcGFjZUQgbWV0MEJldmVsRCBjb250YWN0MUluZm9EIGNvbnRhY3QxTGF5ZXJEIGNvbnRhY3QxV2lkdGhEIGNvbnRhY3QxU3BhY2VEIGNvbnRhY3QxQ29sc0QgbWV0MUxheWVyRCBtZXQxU3BhY2VEIG1ldDFCZXZlbEQgc3JjUGluV2lkdGggZHJuUGluV2lkdGggbVNvdXJjZVBpbk9mZnNldCBtRHJhaW5QaW5PZmZzZXQgc2hhcmVkU291cmNlV2lkdGggc2hhcmVkRHJhaW5XaWR0aCBmaXJzdFNvdXJjZVBpbiBjb250YWN0MVBpdGNoUyBjb250YWN0MVBpdGNoRCBtZXQwUGluV2lkdGhTIG1ldDBQaW5XaWR0aEQgZmlyc3RNZXQwUGluIGZpcnN0TWV0MERyYXdpbmcgbWV0MURyYXdpbmdQdHNTIG1ldDFEcmF3aW5nUHRzRCB4ME1ldDEgeTBNZXQxIGZpcnN0TWV0MXBvaW50c1MgaSBmaXJzdE1ldDFwb2ludHNEIGZpcnN0TWV0MURyYXdpbmcgZmlyc3REcmFpblBpbiBvbmVEcmFpbk1ldDBQaW4gZHJhaW5NZXQwRHJhd2luZyBkcmFpbk1ldDFEcmF3aW5nIHNvdXJjZVBpbnNOdW1iZXIgZHJhaW5QaW5zTnVtYmVyIHNvdXJjZVBpbnNTcGFjZSBzb3VyY2VQaW5zT3JpZ2luWCBzb3VyY2VQaW5zT3JpZ2luT2Zmc2V0IG4gc291cmNlUGluc09yaWdpbiBzb3VyY2VQaW5zIHNvdXJjZU1ldDBQaW5zIHNvdXJjZU1ldDBEcmF3aW5nIHNvdXJjZU1ldDFEcmF3aW5nIGRyYWluUGluc1NwYWNlIGRyYWluUGluc09yaWdpblggZHJhaW5QaW5zT3JpZ2luT2Zmc2V0IGRyYWluUGluc09yaWdpbiBkcmFpblBpbnMgZHJhaW5NZXQwUGlucyBmbGFyZVkgb2RkZmxhcmVHYXRlUHRzIHhvMCB4bzIgeG80IGV2ZW5mbGFyZUdhdGVQdHMgeGUwIHhlMiB4ZTYgcG9pbnRMaXN0MSBmaXJzdEdhdGVEcmF3aW5nIGZsYXJlR2F0ZVB0cyB4MCB4MiB4NiB4OCBvZGRHYXRlT2Zmc2V0IG9kZEdhdGVEcmF3aW5nIHBvaW50TGlzdDIgZXZlbkdhdGVPZmZzZXQgZXZlbkdhdGVEcmF3aW5nIG9kZFBHYXRlRHJhd2luZyBldmVuUEdhdGVEcmF3aW5nIGZldERpZmZ1c2lvblhkaW0gZmV0RGlmZnVzaW9uIGZpcnN0U291cmNlVGFwIGZpcnN0U291cmNlVGFwTWV0MCBmaXJzdFNvdXJjZVRhcE1ldDEgZmlyc3RTb3VyY2VUYXBJbXAgbGFzdFNvdXJjZVRhcCBsYXN0U291cmNlVGFwTWV0MCBsYXN0U291cmNlVGFwTWV0MSBmZXREaWZmSW1wIGxhc3RTb3VyY2VUYXBJbXAgd2VsbExheWVyRHJhd2luZyByaW5nQ29udGFjdDBJbmZvSCByaW5nQ29udGFjdDBMYXllckggcmluZ0NvbnRhY3QwV2lkdGhIIHJpbmdDb250YWN0MFNwYWNlSCByaW5nQ29udGFjdDBDb2xzSCByaW5nTWV0MExheWVySCByaW5nTWV0MENvbnQwRW5jSCByaW5nTWV0MEluQmV2ZWxIIHJpbmdNZXQwT3V0QmV2ZWxIIHJpbmdDb250YWN0MUluZm9IIHJpbmdDb250YWN0MUxheWVySCByaW5nQ29udGFjdDFXaWR0aEggcmluZ0NvbnRhY3QxU3BhY2VIIHJpbmdDb250YWN0MUNvbHNIIHJpbmdNZXQxTGF5ZXJIIHJpbmdNZXQxQ29udDFFbmNIIHJpbmdNZXQxSW5CZXZlbEggcmluZ01ldDFPdXRCZXZlbEggcmluZ0NvbnRhY3QwSW5mb1YgcmluZ0NvbnRhY3QwTGF5ZXJWIHJpbmdDb250YWN0MFdpZHRoViByaW5nQ29udGFjdDBTcGFjZVYgcmluZ0NvbnRhY3QwQ29sc1YgcmluZ01ldDBMYXllclYgcmluZ01ldDBDb250MEVuY1YgcmluZ01ldDBJbkJldmVsViByaW5nTWV0ME91dEJldmVsViByaW5nQ29udGFjdDFJbmZvViByaW5nQ29udGFjdDFMYXllclYgcmluZ0NvbnRhY3QxV2lkdGhWIHJpbmdDb250YWN0MVNwYWNlViByaW5nQ29udGFjdDFDb2xzViByaW5nTWV0MUxheWVyViByaW5nTWV0MUNvbnQxRW5jViByaW5nTWV0MUluQmV2ZWxWIHJpbmdNZXQxT3V0QmV2ZWxWIHJpbmdDb250YWN0MFBpdGNoSCByaW5nQ29udGFjdDBQaXRjaFYgaW5uZXJSaW5nV2lkdGhIIGlubmVyUmluZ1dpZHRoViBpbm5lclJpbmdMZW5ndGhMUiBpbm5lclJpbmdMZW5ndGhUQiByaW5nQ29udGFjdDFQaXRjaEggcmluZ0NvbnRhY3QxUGl0Y2hWIGlubmVyTWV0MVJpbmdXaWR0aEggaW5uZXJNZXQxUmluZ1dpZHRoViBsZWZ0SW5uZXJSaW5nIGxlZnRJbm5lclJpbmdJbXAgbGVmdElubmVyUmluZ01ldDAgcmlnaHRJbm5lclJpbmcgcmlnaHRJbm5lclJpbmdJbXAgcmlnaHRJbm5lclJpbmdNZXQwIGxvd2VySW5uZXJSaW5nIGxvd2VySW5uZXJSaW5nSW1wIGxvd2VySW5uZXJSaW5nTWV0MCB1cHBlcklubmVyUmluZyB1cHBlcklubmVyUmluZ0ltcCB1cHBlcklubmVyUmluZ01ldDAgbGVmdElubmVyUmluZ01ldDEgcmlnaHRJbm5lclJpbmdNZXQxIGxvd2VySW5uZXJSaW5nTWV0MSB1cHBlcklubmVyUmluZ01ldDEgaW5uZXJSaW5nTWV0MVB0cyBpbm5lclJpbmdXaWR0aERpZmZIIGlubmVyUmluZ1dpZHRoRGlmZlYgaG9sZURpbVggaG9sZURpbVkgeDJNZXQxIHgzTWV0MSB4NE1ldDEgeDlNZXQxIHgxME1ldDEgeDExTWV0MSB4MTVNZXQxIHkxTWV0MSB5Mk1ldDEgeTZNZXQxIHk4TWV0MSB5MTJNZXQxIGlubmVyUmluZ01ldDFQb2ludHMgaW5uZXJSaW5nTWV0MUxheWVyIGh2TGF5ZXJEcmF3aW5nIHdlbGxMYXllcldpZHRoIHdlbGxMYXllckxlbmd0aCByaW5nQ29udGFjdDBJbmZvIHJpbmdDb250YWN0MExheWVyIHJpbmdDb250YWN0MFdpZHRoIHJpbmdDb250YWN0MFNwYWNlIHJpbmdDb250YWN0MENvbHMgcmluZ01ldDBMYXllciByaW5nTWV0MENvbnQwRW5jIHJpbmdNZXQwSW5CZXZlbCByaW5nTWV0ME91dEJldmVsIHJpbmdDb250YWN0MUluZm8gcmluZ0NvbnRhY3QxTGF5ZXIgcmluZ0NvbnRhY3QxV2lkdGggcmluZ0NvbnRhY3QxU3BhY2UgcmluZ0NvbnRhY3QxQ29scyByaW5nTWV0MUxheWVyIHJpbmdNZXQxQ29udDFFbmMgcmluZ01ldDFJbkJldmVsIHJpbmdNZXQxT3V0QmV2ZWwgcmluZ0NvbnRhY3QwUGl0Y2ggb3V0ZXJSaW5nV2lkdGggb3V0ZXJSaW5nTGVuZ3RoTFIgb3V0ZXJSaW5nTGVuZ3RoVEIgcmluZ0NvbnRhY3QxUGl0Y2ggb3V0ZXJNZXQxUmluZ1dpZHRoIGxlZnRPdXRlclJpbmcgbGVmdE91dGVyUmluZ0ltcCBsZWZ0T3V0ZXJSaW5nV2VsbCBsZWZ0T3V0ZXJSaW5nTWV0MCByaWdodE91dGVyUmluZyByaWdodE91dGVyUmluZ0ltcCByaWdodE91dGVyUmluZ1dlbGwgcmlnaHRPdXRlclJpbmdNZXQwIGxvd2VyT3V0ZXJSaW5nIGxvd2VyT3V0ZXJSaW5nSW1wIGxvd2VyT3V0ZXJSaW5nV2VsbCBsb3dlck91dGVyUmluZ01ldDAgdXBwZXJPdXRlclJpbmcgdXBwZXJPdXRlclJpbmdJbXAgdXBwZXJPdXRlclJpbmdXZWxsIHVwcGVyT3V0ZXJSaW5nTWV0MCBsZWZ0T3V0ZXJSaW5nTWV0MSByaWdodE91dGVyUmluZ01ldDEgbG93ZXJPdXRlclJpbmdNZXQxIHVwcGVyT3V0ZXJSaW5nTWV0MSBvdXRlclJpbmdNZXQxUHRzIG91dGVyUmluZ1dpZHRoRGlmZiBvdXRlclJpbmdNZXQxUG9pbnRzIG91dGVyUmluZ01ldDFMYXllciBpZExheWVyV2lkdGggaWRMYXllckxlbmd0aCBpZExheWVyRHJhd2luZyBsZWZ0WENvb3JkIHJpZ2h0WENvb3JkIGxhYmVsWUNvb3JkKQAoKGJ1dHRpbmdUYXAgIkZBTFNFIikgKHcgMC4wKSAobCAwLjApIChtIDApIChpbm5lclJpbmdGZXRFeHRyYVJpZ2h0U3BhY2UgMC4wKSAoaW5uZXJSaW5nRmV0RXh0cmFMZWZ0U3BhY2UgMC4wKSAoaW5uZXJSaW5nRmV0RXh0cmFUb3BTcGFjZSAwLjApIChpbm5lclJpbmdGZXRFeHRyYUJvdFNwYWNlIDAuMCkgKGh2TW9kZSBuaWwpIChyaW5ncyAiQm90aCIpIChyaW5nc01ldDFPZmYgbmlsKSAodXNlck91dGVyUmluZ1dpZHRoIDAuMCkgKGhzcGljZU1vZGVsIG5pbCkgKGhzcGljZU1vZGVsQ2hvaWNlcyBuaWwpIChzcmNHYXRlQ29udGFjdFNwYWNlIDAuMCkgKGRybkdhdGVDb250YWN0U3BhY2VQYXJhbXMgbmlsKSAoZHJuR2F0ZUNvbnRhY3RTcGFjZVZhbHVlIG5pbCkgKGRybkdhdGVDb250YWN0U3BhY2VOYW1lIG5pbCkpACgoZGlmZkxheWVyICJ5MCIpIChnYXRlTGF5ZXIgInkxIikgKHBnYXRlTGF5ZXIgInkyIikgKHdlbGxMYXllciBuaWwpIChkaWZmSW1wbGFudCBuaWwpIChkaWZmSW1wRW5jIDAuMCkgKHRhcExheWVyICJ5MiIpICh0YXBJbXBsYW50IG5pbCkgKHRhcEltcEVuYyAwLjApIChpZExheWVyIG5pbCkgKGh2TGF5ZXIgbmlsKSAoaHZXZWxsRGlmZlRhcEVuYyAwLjApIChodkxheWVyRGlmZlRhcEVuYyAwLjApIChmbGFyZUluRGlmZiAwLjApIChmbGFyZU91dERpZmYgMC4wKSAoZmxhcmVFeHQgMC4wKSAoZHJuSW50ZXJjb25uZWN0IG5pbCkgKHNyY0ludGVyY29ubmVjdCBuaWwpIChkaWZmQ29udGFjdDBZZW5jIDAuMCkgKGRpZmZDb250YWN0MFhlbmMgMC4wKSAoSW5uZXJSaW5nSW50ZXJjb25uZWN0SG9yaXogbmlsKSAoSW5uZXJSaW5nSW50ZXJjb25uZWN0VmVydCBuaWwpIChPdXRlclJpbmdJbnRlcmNvbm5lY3QgbmlsKSAoYnV0dGluZ1RhcFdpZHRoIDAuMCkgKGJ1dHRpbmdUYXBDb250MFhlbmMgMC4wKSAoZmV0RGlmZklubmVyUmluZ1NwYWNlIDAuMCkgKE91dGVySW5uZXJSaW5nU3BhY2UgMC4wKSAobW9zVHlwZSAibm1vcyIpIChsYWJlbExheWVyIGxpc3QoInRleHQiICJkcmF3aW5nIikpIChsYWJlbFdpZHRoIDEuMCkgKGV2ZW5Pbmx5ICJUUlVFIikgKHNpbmdsZUZsYXJlICJGQUxTRSIpIChtaW5Jbm5lclJpbmdGZXRFeHRyYVJpZ2h0U3BhY2UgMC4wKSAobWluSW5uZXJSaW5nRmV0RXh0cmFMZWZ0U3BhY2UgMC4wKSAobWluSW5uZXJSaW5nRmV0RXh0cmFUb3BTcGFjZSAwLjApIChtaW5Jbm5lclJpbmdGZXRFeHRyYUJvdFNwYWNlIDAuMCkgKG1pbmltdW1NIDApIChzcmNHYXRlQ29udGFjdFNwYWNlTWluIDAuMCkgKHNyY0dhdGVDb250YWN0U3BhY2VNYXggMC4wKSkAKGlmKCgodXNlU2Vjb25kTWV0YWwgPT0gdCkgfHwgKHVzZVNlY29uZE1ldGFsID09ICJUUlVFIikpIHRoZW4gKHVzZVNlY29uZE1ldGFsID0gdCkgZWxzZSAodXNlU2Vjb25kTWV0YWwgPSBuaWwpKSB1bmxlc3ModXNlUGNlbGxzIChkaW9kZUFyZWEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkxheWVyID93aWR0aCB3aWR0aCA/bGVuZ3RoIGxlbmd0aCkpIChyb2RBbGlnbiA/YWxpZ25PYmogZGlvZGVBcmVhID9hbGlnbkhhbmRsZSAiY0MiID9yZWZQb2ludCBsaXN0KDAgMCkpIChkaW9kZUltcGxhbnQgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkltcGxhbnQgP2Zyb21PYmogZGlvZGVBcmVhID9zaXplIGRpZmZJbXBFbmMpKSAodGFwV2lkdGggPSBtYXgodGFwV2lkdGggKCgyICogdGFwRW5jVmlhMVgpICsgdmlhMVNpemUpKSkgKFVMcmluZyA9IGxpc3QoKC0gKCh0YXBXaWR0aCAvIDIpICsgKHdpZHRoIC8gMikgKyBtYXgodXNlckRlZlRhcERpZmZTcGFjZSB0YXBSaW5nRGlmZlNwYWNpbmcgKGRpZmZJbXBFbmMgKyB0YXBSaW5nSW1wRW5jKSkpKSAoKHRhcFdpZHRoIC8gMikgKyAobGVuZ3RoIC8gMikgKyBtYXgodXNlckRlZlRhcERpZmZTcGFjZSB0YXBSaW5nRGlmZlNwYWNpbmcgKGRpZmZJbXBFbmMgKyB0YXBSaW5nSW1wRW5jKSkpKSkgKFVScmluZyA9IGxpc3QoKC0gY2FyKFVMcmluZykpIGNhZHIoVUxyaW5nKSkpIChCTHJpbmcgPSBsaXN0KGNhcihVTHJpbmcpICgtIGNhZHIoVUxyaW5nKSkpKSAoQlJyaW5nID0gbGlzdCgoLSBjYXIoVUxyaW5nKSkgKC0gY2FkcihVTHJpbmcpKSkpIChyaW5nRW5kX3RhcFJpbmcgPSBsaXN0KGNhcihVTHJpbmcpIChjYWRyKFVMcmluZykgKyAodGFwV2lkdGggLyAyKSkpKSAoVUxyaW5nX3RhcFJpbmcgPSBsaXN0KCgodGFwV2lkdGggLyAyKSArIGNhcihVTHJpbmcpKSBjYWRyKFVMcmluZykpKSAodGFwUmluZyA9IChyb2RDcmVhdGVQYXRoID9sYXllciB0YXBSaW5nTGF5ZXIgP3dpZHRoIHRhcFdpZHRoID9qdXN0aWZpY2F0aW9uICJjZW50ZXIiID9wdHMgbGlzdChVTHJpbmdfdGFwUmluZyBVUnJpbmcgQlJyaW5nIEJMcmluZyByaW5nRW5kX3RhcFJpbmcpKSkgKFVMcmluZ190YXBJbXBSaW5nID0gbGlzdCgoKCh0YXBXaWR0aCArICgyICogdGFwUmluZ0ltcEVuYykpIC8gMikgKyBjYXIoVUxyaW5nKSkgY2FkcihVTHJpbmcpKSkgKHJpbmdFbmRfdGFwSW1wUmluZyA9IGxpc3QoY2FyKFVMcmluZykgKGNhZHIoVUxyaW5nKSArICgodGFwV2lkdGggKyAoMiAqIHRhcFJpbmdJbXBFbmMpKSAvIDIpKSkpICh0YXBJbXBSaW5nID0gKHJvZENyZWF0ZVBhdGggP2xheWVyIHRhcFJpbmdJbXBsYW50ID93aWR0aCAodGFwV2lkdGggKyAoMiAqIHRhcFJpbmdJbXBFbmMpKSA/anVzdGlmaWNhdGlvbiAiY2VudGVyIiA/cHRzIGxpc3QoVUxyaW5nX3RhcEltcFJpbmcgVVJyaW5nIEJScmluZyBCTHJpbmcgcmluZ0VuZF90YXBJbXBSaW5nKSkpIChyb2RBc3NpZ25IYW5kbGVUb1BhcmFtZXRlciA/cGFyYW1ldGVyICJsZW5ndGgiID9yb2RPYmogdGFwSW1wUmluZyA/aGFuZGxlTmFtZSBsaXN0KCJsTCIgImNMIiAidUwiICJsUiIgImNSIiAidVIiICJ1TCIgInVDIiAidVIiICJsTCIgImxDIiAibFIiKSA/ZGlzcGxheU5hbWUgImFyZWEiID9kaXNwbGF5RXhwcmVzc2lvbiAid2lkdGggKiBsZW5ndGgiID9zdHJldGNoRGlyICJ5IiA/c3RyZXRjaFR5cGUgInJlbGF0aXZlIikgKHJvZEFzc2lnbkhhbmRsZVRvUGFyYW1ldGVyID9wYXJhbWV0ZXIgIndpZHRoIiA/cm9kT2JqIHRhcEltcFJpbmcgP2hhbmRsZU5hbWUgbGlzdCgibEwiICJjTCIgInVMIiAibFIiICJjUiIgInVSIiAidUwiICJ1QyIgInVSIiAibEwiICJsQyIgImxSIikgP3N0cmV0Y2hEaXIgIngiID9zdHJldGNoVHlwZSAicmVsYXRpdmUiKSAoVUxyaW5nX21ldDFSaW5nID0gbGlzdCgoKCgoMiAqIG1ldDFFbmNWaWExWCkgKyB2aWExU2l6ZSkgLyAyKSArIGNhcihVTHJpbmcpKSBjYWRyKFVMcmluZykpKSAocmluZ0VuZF9tZXQxUmluZyA9IGxpc3QoY2FyKFVMcmluZykgKGNhZHIoVUxyaW5nKSArICgoKDIgKiBtZXQxRW5jVmlhMVgpICsgdmlhMVNpemUpIC8gMikpKSkgKHRhcFJpbmdNZXQxID0gKHJvZENyZWF0ZVBhdGggP2xheWVyIG1ldDFMYXllciA/d2lkdGggKCgyICogbWV0MUVuY1ZpYTFYKSArIHZpYTFTaXplKSA/anVzdGlmaWNhdGlvbiAiY2VudGVyIiA/cHRzIGxpc3QoVUxyaW5nX21ldDFSaW5nIFVScmluZyBCUnJpbmcgQkxyaW5nIHJpbmdFbmRfbWV0MVJpbmcpID9zdWJSZWN0IGxpc3QobGlzdCg/bGF5ZXIgdmlhMUxheWVyID93aWR0aCB2aWExU2l6ZSA/bGVuZ3RoIHZpYTFTaXplID9iZWdpbk9mZnNldCAoLSB2aWExU3BhY2luZykgP2VuZFNlZ09mZnNldCB2aWExU3BhY2luZyA/c3BhY2UgdmlhMVNwYWNpbmcgP2dhcCAibWluaW11bSIpKSkpIHdoZW4oKGxhYmVsTGF5ZXIgJiYgbGFiZWxUZXh0KSAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoY2FyKFVMcmluZ19tZXQxUmluZykgLSAodmlhMVNpemUgLyAyLjApKSAodmlhMVNpemUgLyAyLjApKSBsYWJlbFRleHQgImNlbnRlckNlbnRlciIgIlIwIiAic3RpY2siIGxhYmVsV2lkdGgpKSAobWV0MUNvbkNvbHVtbnMgPSAoZmxvb3IgKCgod2lkdGggLSAoMiAqIGRpZmZFbmNWaWExWCkpICsgdmlhMVNwYWNpbmcpIC8gKHZpYTFTcGFjaW5nICsgdmlhMVNpemUpKSkpIChtZXQxQ29uUm93cyA9IChmbG9vciAoKChsZW5ndGggLSAoMiAqIGRpZmZFbmNWaWExWSkpICsgdmlhMVNwYWNpbmcpIC8gKHZpYTFTcGFjaW5nICsgdmlhMVNpemUpKSkpIChtZXQxV2lkdGggPSAoKG1ldDFDb25Db2x1bW5zICogdmlhMVNpemUpICsgKHZpYTFTcGFjaW5nICogKG1ldDFDb25Db2x1bW5zIC0gMSkpICsgKDIgKiBtZXQxRW5jVmlhMVgpKSkgKG1ldDFMZW5ndGggPSAoKG1ldDFDb25Sb3dzICogdmlhMVNpemUpICsgKHZpYTFTcGFjaW5nICogKG1ldDFDb25Sb3dzIC0gMSkpICsgKDIgKiBtZXQxRW5jVmlhMVkpKSkgKGRpZmZNZXQxID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDFMYXllciA/d2lkdGggbWV0MVdpZHRoID9sZW5ndGggbWV0MUxlbmd0aCA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgdmlhMUxheWVyID93aWR0aCB2aWExU2l6ZSA/bGVuZ3RoIHZpYTFTaXplID9zcGFjZVggdmlhMVNwYWNpbmcgP3NwYWNlWSB2aWExU3BhY2luZyA/bG93ZXJMZWZ0T2Zmc2V0WCBtZXQxRW5jVmlhMVggP2xvd2VyTGVmdE9mZnNldFkgbWV0MUVuY1ZpYTFZID9nYXAgIm1pbmltdW0iKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGRpZmZNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZQb2ludCBsaXN0KDAgMCkpIGlmKHVzZVNlY29uZE1ldGFsIHRoZW4gaWYoKHNlY29uZE1ldGFsTGVuZ3RoIDwgKCgyICogbWV0MkVuY1ZpYTJZKSArIHZpYTJTaXplKSkgdGhlbiAoc2Vjb25kTWV0YWxMZW5ndGggPSAoKDIgKiBtZXQyRW5jVmlhMlkpICsgdmlhMlNpemUpKSkgKG1ldDJDb25MZW5ndGggPSBtaW4oKHNlY29uZE1ldGFsTGVuZ3RoIC0gKDIgKiBtZXQyRW5jVmlhMlkpKSAobWV0MUxlbmd0aCAtICgyICogbWV0MUVuY1ZpYTJZKSkpKSAobWV0MkNvblJvd3MgPSAoZmxvb3IgKChtZXQyQ29uTGVuZ3RoICsgdmlhMlNwYWNpbmcpIC8gKHZpYTJTcGFjaW5nICsgdmlhMlNpemUpKSkpIChtZXQyQ29uTGVuZ3RoRGlmZiA9ICgoc2Vjb25kTWV0YWxMZW5ndGggLSAoKG1ldDJDb25Sb3dzICogdmlhMlNpemUpICsgKHZpYTJTcGFjaW5nICogKG1ldDJDb25Sb3dzIC0gMSkpKSkgLyAyKSkgKGRpZmZNZXQyQ29uID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDJMYXllciA/d2lkdGggKCgyICogbWV0MkVuY1ZpYTJYKSArIHZpYTJTaXplKSA/bGVuZ3RoIHNlY29uZE1ldGFsTGVuZ3RoID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciB2aWEyTGF5ZXIgP3dpZHRoIHZpYTJTaXplID9sZW5ndGggdmlhMlNpemUgP3NwYWNlWCB2aWEyU3BhY2luZyA/c3BhY2VZIHZpYTJTcGFjaW5nID9nYXAgIm1pbmltdW0iID9sb3dlckxlZnRPZmZzZXRYIG1ldDJFbmNWaWEyWCA/bG93ZXJMZWZ0T2Zmc2V0WSBtZXQyQ29uTGVuZ3RoRGlmZiA/dXBwZXJSaWdodE9mZnNldFkgKC0gbWV0MkNvbkxlbmd0aERpZmYpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGRpZmZNZXQyQ29uID9yZWZQb2ludCBsaXN0KDAgMCkpKSkgd2hlbih1c2VQY2VsbHMgKGRpZmZDZWxsSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZGlmZkNlbGwgInN5bWJvbGljIiBuaWwgInJuIikpICh3T3ZlcjIgPSAoKGZsb29yICgod2lkdGggLyAyKSAvIHNuYXBHcmlkKSkgKiBzbmFwR3JpZCkpIChsT3ZlcjIgPSAoKGZsb29yICgobGVuZ3RoIC8gMikgLyBzbmFwR3JpZCkpICogc25hcEdyaWQpKSAod0FkanVzdCA9ICgtICgod2lkdGggLyAyKSAtIHdPdmVyMikpKSAobEFkanVzdCA9ICgtICgobGVuZ3RoIC8gMikgLSBsT3ZlcjIpKSkgaWYoKG1heERkbGlXaWR0aCA8ICgoMiAqIG1heERkbGlFeHRlbnNpb24pICsgd2lkdGgpKSB0aGVuIChiaWdTaWRlWSA9IG1pbih3aWR0aCAoKGZsb29yIChzcXJ0KG1heERkbGlXaWR0aCkgLyBzbmFwR3JpZCkpICogc25hcEdyaWQpKSkgKG51bVkgPSAoZmxvb3IgKChtaW5MaXRyRW5kU3BhY2luZyArIHdpZHRoKSAvIChtaW5MaXRyRW5kU3BhY2luZyArIGJpZ1NpZGVZKSkpKSAocmVtYWluZGVyWSA9ICh3aWR0aCAtIChudW1ZICogKGJpZ1NpZGVZICsgbWluTGl0ckVuZFNwYWNpbmcpKSkpIChzaGlmdEFkanVzdFkgPSAwKSBpZigocmVtYWluZGVyWSA8PSBtaW5SZW1haW5kZXJZKSB0aGVuIChzaGlmdEFkanVzdFkgPSAoKG1pbkxpdHJFbmRTcGFjaW5nICsgcmVtYWluZGVyWSkgLyAyKSkgKHNoaWZ0QWRqdXN0WSA9ICgoZmxvb3IgKHNoaWZ0QWRqdXN0WSAvIHNuYXBHcmlkKSkgKiBzbmFwR3JpZCkpKSAob2Zmc2V0WCA9ICgtIChsT3ZlcjIgLSAoMiAqIGxBZGp1c3QpKSkpIChvZmZzZXRZID0gKC0gKHdPdmVyMiAtIHNoaWZ0QWRqdXN0WSAtICgyICogd0FkanVzdCkpKSkgZm9yKHlDb3VudCAxIG51bVkgKGN1cnJlbnRZID0gKCh5Q291bnQgLSAxKSAqIChtaW5MaXRyRW5kU3BhY2luZyArIGJpZ1NpZGVZKSkpIGlmKCgoeUNvdW50ID09IG51bVkpICYmIChyZW1haW5kZXJZID4gbWluUmVtYWluZGVyWSkpIHRoZW4gKGluc3ROYW1lID0gc3ByaW50ZihuaWwgInJlbWFpbmRlckZpbGxZXyVkIiB5Q291bnQpKSAoZGlmZkFyZWEgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBkaWZmQ2VsbElkIGluc3ROYW1lIChvZmZzZXRYOigoY3VycmVudFkgKyBiaWdTaWRlWSArIG1pbkxpdHJFbmRTcGFjaW5nKSArIG9mZnNldFkpKSAiUjAiIDEgbGlzdChsaXN0KCJ3bERyaXZlbiIgImJvb2xlYW4iIHQpIGxpc3QoIlciICJmbG9hdCIgcmVtYWluZGVyWSkgbGlzdCgiTCIgImZsb2F0IiBsZW5ndGgpKSkpKSAoaW5zdE5hbWUgPSBzcHJpbnRmKG5pbCAiZGlmZl8lZCIgeUNvdW50KSkgKGRpZmZBcmVhID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgZGlmZkNlbGxJZCBpbnN0TmFtZSAob2Zmc2V0WDooY3VycmVudFkgKyBvZmZzZXRZKSkgIlIwIiAxIGxpc3QobGlzdCgid2xEcml2ZW4iICJib29sZWFuIiB0KSBsaXN0KCJXIiAiZmxvYXQiIGJpZ1NpZGVZKSBsaXN0KCJMIiAiZmxvYXQiIGxlbmd0aCkpKSkpIChmaWxsQXJlYSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmTGF5ZXIgP3dpZHRoIGxlbmd0aCA/bGVuZ3RoIHdpZHRoKSkgKHJvZEFsaWduID9hbGlnbk9iaiBmaWxsQXJlYSA/YWxpZ25IYW5kbGUgImNDIiA/cmVmUG9pbnQgbGlzdChsQWRqdXN0IHdBZGp1c3QpKSAoZmlsbEFyZWFJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkltcGxhbnQgP2Zyb21PYmogZmlsbEFyZWEgP3NpemUgZGlmZkltcEVuYykpIChyb2RBbGlnbiA/YWxpZ25PYmogZmlsbEFyZWFJbXAgP2FsaWduSGFuZGxlICJjQyIgP3JlZlBvaW50IGxpc3QobEFkanVzdCB3QWRqdXN0KSkgd2hlbih2aWExQ29uTGF5ZXIgKG51bVZpYTFDb24gPSAoZmxvb3IgKCh2aWExQ29uU3BhY2luZyArIGxlbmd0aCkgLyAodmlhMUNvbldpZHRoICsgdmlhMUNvblNwYWNpbmcpKSkpICh2aWExQ29uQXJyYXlXaWR0aCA9ICgobnVtVmlhMUNvbiAqIHZpYTFDb25XaWR0aCkgKyAoKG51bVZpYTFDb24gLSAxKSAqIHZpYTFDb25TcGFjaW5nKSkpICh2aWExQ29uQXJyYXlPZmZzZXQgPSAoLSAoKHZpYTFDb25BcnJheVdpZHRoIC8gMikgLSAoKGZsb29yICgodmlhMUNvbkFycmF5V2lkdGggLyAyKSAvIHNuYXBHcmlkKSkgKiBzbmFwR3JpZCkpKSkgKHZpYTFDb25BcnJheSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmTGF5ZXIgP3dpZHRoIHZpYTFDb25BcnJheVdpZHRoID9sZW5ndGggd2lkdGggP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHZpYTFDb25MYXllciA/d2lkdGggdmlhMUNvbldpZHRoID9sZW5ndGggd2lkdGggP3NwYWNlWCB2aWExQ29uU3BhY2luZyA/c3BhY2VZIHZpYTFDb25TcGFjaW5nID9nYXAgIm1pbmltdW0iKSkpKSAodmlhMUNvbk9mZnNldCA9ICgtICgodmlhMUNvbkFycmF5V2lkdGggLSBsZW5ndGgpIC8gMikpKSAocm9kQWxpZ24gP2FsaWduT2JqIHZpYTFDb25BcnJheSA/YWxpZ25IYW5kbGUgImNDIiA/cmVmUG9pbnQgbGlzdCgoMiAqIGxBZGp1c3QpIHdBZGp1c3QpKSkgZWxzZSAoZGlmZkFyZWEgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBkaWZmQ2VsbElkICJpMCIgKDA6MCkgIlIwIiAxIGxpc3QobGlzdCgid2xEcml2ZW4iICJib29sZWFuIiB0KSBsaXN0KCJXIiAiZmxvYXQiIHdpZHRoKSBsaXN0KCJMIiAiZmxvYXQiIGxlbmd0aCkpKSkgKGRpZmZBcmVhUm9kID0gKHJvZEdldE9iaiBkaWZmQXJlYSkpIChyb2RBbGlnbiA/YWxpZ25PYmogZGlmZkFyZWFSb2QgP3JlZlBvaW50IGxpc3QobEFkanVzdCB3QWRqdXN0KSkpIChndWFyZFJpbmdDZWxsSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZ3VhcmRSaW5nQ2VsbCAic3ltYm9saWMiIG5pbCAicm4iKSkgKGd1YXJkUmluZyA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGd1YXJkUmluZ0NlbGxJZCAiaTEiICgwOjApICJSMCIgMSBsaXN0KGxpc3QoImlubmVyUmluZyIgInN0cmluZyIgInBUYXAiKSBsaXN0KCJpbm5lclJpbmdNZXQiICJzdHJpbmciICJERExJIikgbGlzdCgiVyIgImZsb2F0IiAoKDIgKiB0YXBSaW5nRGlmZlNwYWNpbmcpICsgd2lkdGgpKSBsaXN0KCJMIiAiZmxvYXQiICgoMiAqIHRhcFJpbmdEaWZmU3BhY2luZykgKyBsZW5ndGgpKSkpKSAoZ3VhcmRSaW5nUm9kID0gKHJvZEdldE9iaiBndWFyZFJpbmcpKSAocm9kQWxpZ24gP2FsaWduT2JqIGd1YXJkUmluZ1JvZCA/cmVmUG9pbnQgbGlzdChsQWRqdXN0IHdBZGp1c3QpKSBpZih1c2VTZWNvbmRNZXRhbCB0aGVuIChtZXRhbFJlY3QgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MUxheWVyID93aWR0aCBtYXgoKHZpYTFTaXplICsgKDIgKiBtZXQxRW5jVmlhMVkpKSBzZWNvbmRNZXRhbExlbmd0aCkgP2xlbmd0aCAodmlhMVNpemUgKyAoMiAqIG1ldDFFbmNWaWExWCkpID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciB2aWExTGF5ZXIgP3dpZHRoIHZpYTFTaXplID9sZW5ndGggdmlhMVNpemUgP3NwYWNlWCB2aWExU3BhY2luZyA/c3BhY2VZIHZpYTFTcGFjaW5nID9nYXAgIm1pbmltdW0iID9sb3dlckxlZnRPZmZzZXRYIG1ldDFFbmNWaWExWSA/bG93ZXJMZWZ0T2Zmc2V0WSBtZXQxRW5jVmlhMVggP3VwcGVyUmlnaHRPZmZzZXRYICgtIG1ldDFFbmNWaWExWSkgP3VwcGVyUmlnaHRPZmZzZXRZICgtIG1ldDFFbmNWaWExWCkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbWV0YWxSZWN0ID9yZWZQb2ludCBsaXN0KG1ldDFPZmZzZXRYIG1ldDFPZmZzZXRZKSkgKHJvZEFzc2lnbkhhbmRsZVRvUGFyYW1ldGVyID9wYXJhbWV0ZXIgIm1ldDFPZmZzZXRZIiA/cm9kT2JqIG1ldGFsUmVjdCA/aGFuZGxlTmFtZSBsaXN0KCJsTCIgImNMIiAidUwiICJsUiIgImNSIiAidVIiICJ1TCIgInVDIiAidVIiICJsTCIgImxDIiAibFIiKSA/ZGlzcGxheU5hbWUgIm1ldGFsIHktb2Zmc2V0IiA/ZGlzcGxheUV4cHJlc3Npb24gIm1ldDFPZmZzZXRZIiA/c3RyZXRjaERpciAieSIgP3N0cmV0Y2hUeXBlICJhYnNvbHV0ZSIpIChyb2RBc3NpZ25IYW5kbGVUb1BhcmFtZXRlciA/cGFyYW1ldGVyICJtZXQxT2Zmc2V0WCIgP3JvZE9iaiBtZXRhbFJlY3QgP2hhbmRsZU5hbWUgbGlzdCgibEwiICJjTCIgInVMIiAibFIiICJjUiIgInVSIiAidUwiICJ1QyIgInVSIiAibEwiICJsQyIgImxSIikgP2Rpc3BsYXlOYW1lICJtZXRhbCB4LW9mZnNldCIgP2Rpc3BsYXlFeHByZXNzaW9uICJtZXQxT2Zmc2V0WCIgP3N0cmV0Y2hEaXIgIngiID9zdHJldGNoVHlwZSAiYWJzb2x1dGUiKSkgKHJvZEFzc2lnbkhhbmRsZVRvUGFyYW1ldGVyID9wYXJhbWV0ZXIgIndpZHRoIiA/cm9kT2JqIGd1YXJkUmluZ1JvZCA/aGFuZGxlTmFtZSBsaXN0KCJsTCIgImNMIiAidUwiICJsUiIgImNSIiAidVIiICJ1TCIgInVDIiAidVIiICJsTCIgImxDIiAibFIiKSA/ZGlzcGxheU5hbWUgImFyZWEiID9kaXNwbGF5RXhwcmVzc2lvbiAid2lkdGggKiBsZW5ndGgiID9zdHJldGNoRGlyICJ5IiA/c3RyZXRjaFR5cGUgInJlbGF0aXZlIikgKHJvZEFzc2lnbkhhbmRsZVRvUGFyYW1ldGVyID9wYXJhbWV0ZXIgImxlbmd0aCIgP3JvZE9iaiBndWFyZFJpbmdSb2QgP2hhbmRsZU5hbWUgbGlzdCgibEwiICJjTCIgInVMIiAibFIiICJjUiIgInVSIiAidUwiICJ1QyIgInVSIiAibEwiICJsQyIgImxSIikgP3N0cmV0Y2hEaXIgIngiID9zdHJldGNoVHlwZSAicmVsYXRpdmUiKSkpAChkaWZmTGF5ZXIgZGlmZkltcGxhbnQgZGlmZkltcEVuYyB0YXBSaW5nTGF5ZXIgdGFwUmluZ0ltcGxhbnQgdGFwUmluZ0ltcEVuYyB0YXBXaWR0aCB0YXBSaW5nRGlmZlNwYWNpbmcgdmlhMUxheWVyIHZpYTFTaXplIHZpYTFTcGFjaW5nIHZpYTFDb25MYXllciB2aWExQ29uV2lkdGggdmlhMUNvblNwYWNpbmcgdGFwRW5jVmlhMVggdGFwRW5jVmlhMVkgZGlmZkVuY1ZpYTFYIGRpZmZFbmNWaWExWSBtZXQxTGF5ZXIgbWV0MUVuY1ZpYTFYIG1ldDFFbmNWaWExWSBtZXQxRW5jVmlhMlggbWV0MUVuY1ZpYTJZIHZpYTJMYXllciB2aWEyU2l6ZSB2aWEyU3BhY2luZyBtZXQyTGF5ZXIgbWV0MkVuY1ZpYTJYIG1ldDJFbmNWaWEyWSB1c2VQY2VsbHMgZ3VhcmRSaW5nQ2VsbCBkaWZmQ2VsbCBtYXhEZGxpV2lkdGggbWluRGRsaVNwYWNpbmcgbWluTGl0ckVuZFNwYWNpbmcgbWF4RGRsaUV4dGVuc2lvbiBzZWNvbmRNZXRhbENlbGwgc25hcEdyaWQgbWluUmVtYWluZGVyWCBtaW5SZW1haW5kZXJZIGxhYmVsTGF5ZXIgbGFiZWxXaWR0aCBsYWJlbFRleHQgbGVuZ3RoIHdpZHRoIHNlY29uZE1ldGFsTGVuZ3RoIHVzZVNlY29uZE1ldGFsIG1ldDFPZmZzZXRZIG1ldDFPZmZzZXRYIHVzZXJEZWZUYXBEaWZmU3BhY2UgZGlvZGVBcmVhIGRpb2RlSW1wbGFudCBVTHJpbmcgVVJyaW5nIEJMcmluZyBCUnJpbmcgcmluZ0VuZF90YXBSaW5nIFVMcmluZ190YXBSaW5nIHRhcFJpbmcgVUxyaW5nX3RhcEltcFJpbmcgcmluZ0VuZF90YXBJbXBSaW5nIHRhcEltcFJpbmcgVUxyaW5nX21ldDFSaW5nIHJpbmdFbmRfbWV0MVJpbmcgdGFwUmluZ01ldDEgbWV0MUNvbkNvbHVtbnMgbWV0MUNvblJvd3MgbWV0MVdpZHRoIG1ldDFMZW5ndGggZGlmZk1ldDEgbWV0MkNvbkxlbmd0aCBtZXQyQ29uUm93cyBtZXQyQ29uTGVuZ3RoRGlmZiBkaWZmTWV0MkNvbiBkaWZmQ2VsbElkIHdPdmVyMiBsT3ZlcjIgd0FkanVzdCBsQWRqdXN0IGJpZ1NpZGVZIG51bVkgcmVtYWluZGVyWSBzaGlmdEFkanVzdFkgb2Zmc2V0WCBvZmZzZXRZIHlDb3VudCBjdXJyZW50WSBpbnN0TmFtZSBkaWZmQXJlYSBmaWxsQXJlYSBmaWxsQXJlYUltcCBudW1WaWExQ29uIHZpYTFDb25BcnJheVdpZHRoIHZpYTFDb25BcnJheU9mZnNldCB2aWExQ29uQXJyYXkgdmlhMUNvbk9mZnNldCBkaWZmQXJlYVJvZCBndWFyZFJpbmdDZWxsSWQgZ3VhcmRSaW5nIGd1YXJkUmluZ1JvZCBtZXRhbFJlY3QpAChsZW5ndGgoMS4wKSAod2lkdGggMS4wKSAoc2Vjb25kTWV0YWxMZW5ndGggMS4wKSAodXNlU2Vjb25kTWV0YWwgIkZBTFNFIikgKG1ldDFPZmZzZXRZIDAuMCkgKG1ldDFPZmZzZXRYIDAuMCkgKHVzZXJEZWZUYXBEaWZmU3BhY2UgMC4wKSkAKChkaWZmTGF5ZXIgImhpbGl0ZSIpIChkaWZmSW1wbGFudCAiaGlsaXRlIikgKGRpZmZJbXBFbmMgMC4wKSAodGFwUmluZ0xheWVyICJoaWxpdGUiKSAodGFwUmluZ0ltcGxhbnQgImhpbGl0ZSIpICh0YXBSaW5nSW1wRW5jIDAuMCkgKHRhcFdpZHRoIDAuMCkgKHRhcFJpbmdEaWZmU3BhY2luZyAwLjApICh2aWExTGF5ZXIgbmlsKSAodmlhMVNpemUgMC4wKSAodmlhMVNwYWNpbmcgMC4wKSAodmlhMUNvbkxheWVyIG5pbCkgKHZpYTFDb25XaWR0aCAwLjApICh2aWExQ29uU3BhY2luZyAwLjApICh0YXBFbmNWaWExWCAwLjApICh0YXBFbmNWaWExWSAwLjApIChkaWZmRW5jVmlhMVggMC4wKSAoZGlmZkVuY1ZpYTFZIDAuMCkgKG1ldDFMYXllciAiaGlsaXRlIikgKG1ldDFFbmNWaWExWCAwLjApIChtZXQxRW5jVmlhMVkgMC4wKSAobWV0MUVuY1ZpYTJYIDAuMCkgKG1ldDFFbmNWaWEyWSAwLjApICh2aWEyTGF5ZXIgImhpbGl0ZSIpICh2aWEyU2l6ZSAwLjApICh2aWEyU3BhY2luZyAwLjApIChtZXQyTGF5ZXIgbmlsKSAobWV0MkVuY1ZpYTJYIDAuMCkgKG1ldDJFbmNWaWEyWSAwLjApICh1c2VQY2VsbHMgbmlsKSAoZ3VhcmRSaW5nQ2VsbCBuaWwpIChkaWZmQ2VsbCBuaWwpIChtYXhEZGxpV2lkdGggMC4wKSAobWluRGRsaVNwYWNpbmcgMC4wKSAobWluTGl0ckVuZFNwYWNpbmcgMC4wKSAobWF4RGRsaUV4dGVuc2lvbiAwLjApIChzZWNvbmRNZXRhbENlbGwgbmlsKSAoc25hcEdyaWQgMC4wKSAobWluUmVtYWluZGVyWCAwLjApIChtaW5SZW1haW5kZXJZIDAuMCkgKGxhYmVsTGF5ZXIgbmlsKSAobGFiZWxXaWR0aCAxLjApIChsYWJlbFRleHQgbmlsKSkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACh3aGVuKCgoaHNwaWNlTW9kZWxDaG9pY2VzICE9IG5pbCkgJiYgIW1lbWJlcihoc3BpY2VNb2RlbCBoc3BpY2VNb2RlbENob2ljZXMpKSBlcnJvcigibU1vZGVsRmV0Q2xhc3M6IGhzcGljZU1vZGVsICglcykgaXMgbm90IGEgbWVtYmVyIG9mIHRoZSBtb2RlbCBjaG9pY2VzXG4iIGhzcGljZU1vZGVsKSBlcnJvcigibU1vZGVsRmV0Q2xhc3M6IGlmIHRoaXMgd2FzIHBsYWNlZCBieSBHZW5lcmF0ZSBGcm9tIFNvdXJjZSB5b3Ugd2lsbCBuZWVkIHRvIG1hbnVhbGx5IHBsYWNlIHRoaXMgY2VsbFxuIiBoc3BpY2VNb2RlbCkpIChkaWZmSW1wYW50T1JsYXllciA9IGxpc3QoImdyaWQiICJkcmF3aW5nIikpIGlmKCh3ZWxsTGF5ZXIgJiYgZGlmZkltcGxhbnQpIHRoZW4gKE9SbGF5ZXJTaXplID0gKGRpZmZJbXBFbmMgLSB3ZWxsRW5jRGlmZikpIGVsc2UgKE9SbGF5ZXJTaXplID0gMC4wKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGxpc3QoKSkgKGNyZWF0ZWRJbXBsYW50RGlmZiA9IGxpc3QoKSkgKHNlY0lkTGF5ZXJzVGFibGUgPSBsaXN0KGxpc3QoIm5vbmUiIGxpc3QoMC4wIDAuMCAwLjApKSkpICh3ZWxsRW5jWURpZmYgPSAwLjApIHdoZW4oKHdlbGxMYXllcldpZHRoICE9IDAuMCkgKHdlbGxXaWR0aCA9ICgobWF4KHdlbGxFbmNEaWZmIHdlbGxFbmNUYXApICogMikgKyB3KSkgaWYoKHdlbGxXaWR0aCA8IHdlbGxMYXllcldpZHRoKSB0aGVuICh3ZWxsRW5jWURpZmYgPSBhYnMoKG1heCh3ZWxsRW5jRGlmZiB3ZWxsRW5jVGFwKSAtICgod2VsbExheWVyV2lkdGggLSB3KSAvIDIpKSkpKSkgaWYoKChpbXBsYW50ID09IHQpIHx8IChpbXBsYW50ID09ICJUUlVFIikpIHRoZW4gKGltcGxhbnQgPSB0KSBlbHNlIChpbXBsYW50ID0gbmlsKSkgaWYoKCFpZExheWVyc1RhYmxlIHx8IChpZExheWVyc1RhYmxlID09ICJub25lIikgfHwgKGlkTGF5ZXJzVGFibGUgPT0gIm5pbCIpIHx8IChpZExheWVyc1RhYmxlID09ICJGQUxTRSIpKSB0aGVuIChpZExheWVyID0gbmlsKSBlbHNlIChpZExheWVyID0gdCkpIGlmKChsaXN0cChpZExheWVyc1RhYmxlKSAmJiAoY2FhcihpZExheWVyc1RhYmxlKSA9PSAibm9uZSIpKSAoaWRMYXllciA9IG5pbCkpIGlmKCghc3JjU2VjSWRMYXllcnNUYWJsZSB8fCAoc3JjU2VjSWRMYXllcnNUYWJsZSA9PSAibm9uZSIpIHx8IChzcmNTZWNJZExheWVyc1RhYmxlID09ICJuaWwiKSB8fCAoc3JjU2VjSWRMYXllcnNUYWJsZSA9PSAiRkFMU0UiKSkgdGhlbiAoc3JjU2VjSWRMYXllciA9IG5pbCkgZWxzZSAoc3JjU2VjSWRMYXllciA9IHQpKSBpZigobGlzdHAoc3JjU2VjSWRMYXllcnNUYWJsZSkgJiYgKGNhYXIoc3JjU2VjSWRMYXllcnNUYWJsZSkgPT0gIm5vbmUiKSkgKHNyY1NlY0lkTGF5ZXIgPSBuaWwpKSBpZigoIWRyblNlY0lkTGF5ZXJzVGFibGUgfHwgKGRyblNlY0lkTGF5ZXJzVGFibGUgPT0gIm5vbmUiKSB8fCAoZHJuU2VjSWRMYXllcnNUYWJsZSA9PSAibmlsIikgfHwgKGRyblNlY0lkTGF5ZXJzVGFibGUgPT0gIkZBTFNFIikpIHRoZW4gKGRyblNlY0lkTGF5ZXIgPSBuaWwpIGVsc2UgKGRyblNlY0lkTGF5ZXIgPSB0KSkgaWYoKGxpc3RwKGRyblNlY0lkTGF5ZXJzVGFibGUpICYmIChjYWFyKGRyblNlY0lkTGF5ZXJzVGFibGUpID09ICJub25lIikpIChkcm5TZWNJZExheWVyID0gbmlsKSkgaWYoKChzb3VyY2VGaXJzdCA9PSB0KSB8fCAoc291cmNlRmlyc3QgPT0gIlRSVUUiKSkgdGhlbiAoc291cmNlRmlyc3QgPSB0KSBlbHNlIChzb3VyY2VGaXJzdCA9IG5pbCkpIGlmKCgoZ2F0ZUltcGxhbnQgPT0gdCkgfHwgKGdhdGVJbXBsYW50ID09ICJUUlVFIikpIHRoZW4gKGdhdGVJbXBsYW50ID0gdCkgZWxzZSAoZ2F0ZUltcGxhbnQgPSBuaWwpKSBpZigoKG1hbnVhbExPRCA9PSB0KSB8fCAobWFudWFsTE9EID09ICJUUlVFIikpIHRoZW4gKG1hbnVhbExPRCA9IHQpIGVsc2UgKG1hbnVhbExPRCA9IG5pbCkpIGlmKChnYXRlRXh0IDwgMC4wKSBlcnJvcigibU1vZGVsRmV0Q2xhc3M6IGdhdGVFeHQgKCVnKSBtdXN0IGJlID4gMFxuIiBnYXRlRXh0KSkgKGdOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiZyIpKSAoZGJDcmVhdGVUZXJtIGdOZXQgImciICJpbnB1dCIpIChzTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgInMiKSkgKGRiQ3JlYXRlVGVybSBzTmV0ICJzIiAiaW5wdXRPdXRwdXQiKSAoZE5ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJkIikpIChkYkNyZWF0ZVRlcm0gZE5ldCAiZCIgImlucHV0T3V0cHV0IikgKGJOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiYiIpKSAoZGJDcmVhdGVUZXJtIGJOZXQgImIiICJpbnB1dE91dHB1dCIpIGlmKHNvdXJjZUZpcnN0IHRoZW4gKGNOZXQgPSBzTmV0KSAobmV0TCA9ICJTIikgKHNlY0lkTGF5ZXIgPSBzcmNTZWNJZExheWVyKSB3aGVuKHNlY0lkTGF5ZXIgKHNlY0lkTGF5ZXJzVGFibGUgPSBzcmNTZWNJZExheWVyc1RhYmxlKSkgZWxzZSAoY05ldCA9IGROZXQpIChuZXRMID0gIkQiKSAoc2VjSWRMYXllciA9IGRyblNlY0lkTGF5ZXIpIHdoZW4oc2VjSWRMYXllciAoc2VjSWRMYXllcnNUYWJsZSA9IGRyblNlY0lkTGF5ZXJzVGFibGUpKSkgd2hlbigobSA8IDEpIChtID0gMSkpIHdoZW4oKGZpcnN0Q29udGFjdCAhPSAiIikgKGNvbnRhY3RGID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGZpcnN0Q29udGFjdCAic3ltYm9saWMiIG5pbCAicm4iKSkpIHdoZW4oKGxhc3RDb250YWN0ICE9ICIiKSAoY29udGFjdEwgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgbGFzdENvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpKSB3aGVuKChzaGFyZWREcmFpbiAhPSAiIikgKGNvbnRhY3REID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIHNoYXJlZERyYWluICJzeW1ib2xpYyIgbmlsICJybiIpKSkgd2hlbigoc2hhcmVkU291cmNlICE9ICIiKSAoY29udGFjdFMgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgc2hhcmVkU291cmNlICJzeW1ib2xpYyIgbmlsICJybiIpKSkgd2hlbihsb2RFbmFibGVkIHVubGVzcygoZmlyc3RDb250YWN0ID09ICIiKSB3aGVuKCgoY29udGFjdEZ+PnRhcExheWVyQmJveCkgPT0gbmlsKSAoY29udGFjdEZMZW5ndGggPSAoY2FhZHIoKGNvbnRhY3RGfj5kaWZmTGF5ZXJCYm94KSkgLSBjYWFyKChjb250YWN0Rn4+ZGlmZkxheWVyQmJveCkpKSkpIHVubGVzcygoKGNvbnRhY3RGfj50YXBMYXllckJib3gpID09IG5pbCkgKGNvbnRhY3RGTGVuZ3RoID0gKG1heChjYWFkcigoY29udGFjdEZ+PmRpZmZMYXllckJib3gpKSBjYWFkcigoY29udGFjdEZ+PnRhcExheWVyQmJveCkpKSAtIG1pbihjYWFyKChjb250YWN0Rn4+ZGlmZkxheWVyQmJveCkpIGNhYXIoKGNvbnRhY3RGfj50YXBMYXllckJib3gpKSkpKSkpIHdoZW4oKGZpcnN0Q29udGFjdCA9PSAiIikgKGNvbnRhY3RGTGVuZ3RoID0gZGlmZkV4dCkpIHVubGVzcygobGFzdENvbnRhY3QgPT0gIiIpIHdoZW4oKChjb250YWN0TH4+dGFwTGF5ZXJCYm94KSA9PSBuaWwpIChjb250YWN0TExlbmd0aCA9IChjYWFkcigoY29udGFjdEx+PmRpZmZMYXllckJib3gpKSAtIGNhYXIoKGNvbnRhY3RMfj5kaWZmTGF5ZXJCYm94KSkpKSkgdW5sZXNzKCgoY29udGFjdEx+PnRhcExheWVyQmJveCkgPT0gbmlsKSAoY29udGFjdExMZW5ndGggPSAobWF4KGNhYWRyKChjb250YWN0TH4+ZGlmZkxheWVyQmJveCkpIGNhYWRyKChjb250YWN0TH4+dGFwTGF5ZXJCYm94KSkpIC0gbWluKGNhYXIoKGNvbnRhY3RMfj5kaWZmTGF5ZXJCYm94KSkgY2FhcigoY29udGFjdEx+PnRhcExheWVyQmJveCkpKSkpKSkgd2hlbigobGFzdENvbnRhY3QgPT0gIiIpIChjb250YWN0TExlbmd0aCA9IGRpZmZFeHQpKSB1bmxlc3MoKHNoYXJlZERyYWluID09ICIiKSB3aGVuKCgoY29udGFjdER+PnRhcExheWVyQmJveCkgPT0gbmlsKSAoY29udGFjdERMZW5ndGggPSAoY2FhZHIoKGNvbnRhY3REfj5kaWZmTGF5ZXJCYm94KSkgLSBjYWFyKChjb250YWN0RH4+ZGlmZkxheWVyQmJveCkpKSkpIHVubGVzcygoKGNvbnRhY3REfj50YXBMYXllckJib3gpID09IG5pbCkgKGNvbnRhY3RETGVuZ3RoID0gKG1heChjYWFkcigoY29udGFjdER+PmRpZmZMYXllckJib3gpKSBjYWFkcigoY29udGFjdER+PnRhcExheWVyQmJveCkpKSAtIG1pbihjYWFyKChjb250YWN0RH4+ZGlmZkxheWVyQmJveCkpIGNhYXIoKGNvbnRhY3REfj50YXBMYXllckJib3gpKSkpKSkpIHdoZW4oKHNoYXJlZERyYWluID09ICIiKSAoY29udGFjdERMZW5ndGggPSBnYXRldG9nYXRlU3BhY2luZykpIHVubGVzcygoc2hhcmVkU291cmNlID09ICIiKSB3aGVuKCgoY29udGFjdFN+PnRhcExheWVyQmJveCkgPT0gbmlsKSAoY29udGFjdFNMZW5ndGggPSAoY2FhZHIoKGNvbnRhY3RTfj5kaWZmTGF5ZXJCYm94KSkgLSBjYWFyKChjb250YWN0U34+ZGlmZkxheWVyQmJveCkpKSkpIHVubGVzcygoKGNvbnRhY3RTfj50YXBMYXllckJib3gpID09IG5pbCkgKGNvbnRhY3RTTGVuZ3RoID0gKG1heChjYWFkcigoY29udGFjdFN+PmRpZmZMYXllckJib3gpKSBjYWFkcigoY29udGFjdFN+PnRhcExheWVyQmJveCkpKSAtIG1pbihjYWFyKChjb250YWN0U34+ZGlmZkxheWVyQmJveCkpIGNhYXIoKGNvbnRhY3RTfj50YXBMYXllckJib3gpKSkpKSkpIHdoZW4oKHNoYXJlZFNvdXJjZSA9PSAiIikgKGNvbnRhY3RTTGVuZ3RoID0gZ2F0ZXRvZ2F0ZVNwYWNpbmcpKSkgKHZpYTFYQ3JkRiA9IGlmKChjb250YWN0Rn4+YkJveFZpYTEpIGFicyhjYWFyKChjb250YWN0Rn4+YkJveFZpYTEpKSkgbmlsKSkgKGxheWVyMlhDcmRGID0gaWYoKGNvbnRhY3RGfj5iQm94TGF5ZXIyKSBhYnMoY2FhcigoY29udGFjdEZ+PmJCb3hMYXllcjIpKSkgbmlsKSkgKHZpYTJYQ3JkRiA9IGlmKChjb250YWN0Rn4+YkJveFZpYTIpIGFicyhjYWFyKChjb250YWN0Rn4+YkJveFZpYTIpKSkgbmlsKSkgKGxheWVyM1hDcmRGID0gaWYoKGNvbnRhY3RGfj5iQm94TGF5ZXIzKSBhYnMoY2FhcigoY29udGFjdEZ+PmJCb3hMYXllcjMpKSkgbmlsKSkgKGxheWVyMVhDcmRGID0gaWYoKGNvbnRhY3RGfj5kaWZmTGF5ZXJCYm94KSBhYnMoY2FhcigoY29udGFjdEZ+PmRpZmZMYXllckJib3gpKSkgbmlsKSkgKHZpYTFYQ3JkTCA9IGlmKChjb250YWN0TH4+YkJveFZpYTEpIGFicyhjYWFyKChjb250YWN0TH4+YkJveFZpYTEpKSkgbmlsKSkgKGxheWVyMlhDcmRMID0gaWYoKGNvbnRhY3RMfj5iQm94TGF5ZXIyKSBhYnMoY2FhcigoY29udGFjdEx+PmJCb3hMYXllcjIpKSkgbmlsKSkgKHZpYTJYQ3JkTCA9IGlmKChjb250YWN0TH4+YkJveFZpYTIpIGFicyhjYWFyKChjb250YWN0TH4+YkJveFZpYTIpKSkgbmlsKSkgKGxheWVyM1hDcmRMID0gaWYoKGNvbnRhY3RMfj5iQm94TGF5ZXIzKSBhYnMoY2FhcigoY29udGFjdEx+PmJCb3hMYXllcjMpKSkgbmlsKSkgKGxheWVyMVhDcmRMID0gaWYoKGNvbnRhY3RMfj5kaWZmTGF5ZXJCYm94KSBhYnMoY2FhcigoY29udGFjdEx+PmRpZmZMYXllckJib3gpKSkgbmlsKSkgKHZpYTFYQ3JkUyA9IGlmKChjb250YWN0U34+YkJveFZpYTEpIGFicyhjYWFyKChjb250YWN0U34+YkJveFZpYTEpKSkgbmlsKSkgKGxheWVyMlhDcmRTID0gaWYoKGNvbnRhY3RTfj5iQm94TGF5ZXIyKSBhYnMoY2FhcigoY29udGFjdFN+PmJCb3hMYXllcjIpKSkgbmlsKSkgKHZpYTJYQ3JkUyA9IGlmKChjb250YWN0U34+YkJveFZpYTIpIGFicyhjYWFyKChjb250YWN0U34+YkJveFZpYTIpKSkgbmlsKSkgKGxheWVyM1hDcmRTID0gaWYoKGNvbnRhY3RTfj5iQm94TGF5ZXIzKSBhYnMoY2FhcigoY29udGFjdFN+PmJCb3hMYXllcjMpKSkgbmlsKSkgKGxheWVyMVhDcmRTID0gaWYoKGNvbnRhY3RTfj5kaWZmTGF5ZXJCYm94KSBhYnMoY2FhcigoY29udGFjdFN+PmRpZmZMYXllckJib3gpKSkgbmlsKSkgKHZpYTFYQ3JkRCA9IGlmKChjb250YWN0RH4+YkJveFZpYTEpIGFicyhjYWFyKChjb250YWN0RH4+YkJveFZpYTEpKSkgbmlsKSkgKGxheWVyMlhDcmREID0gaWYoKGNvbnRhY3REfj5iQm94TGF5ZXIyKSBhYnMoY2FhcigoY29udGFjdER+PmJCb3hMYXllcjIpKSkgbmlsKSkgKHZpYTJYQ3JkRCA9IGlmKChjb250YWN0RH4+YkJveFZpYTIpIGFicyhjYWFyKChjb250YWN0RH4+YkJveFZpYTIpKSkgbmlsKSkgKGxheWVyM1hDcmREID0gaWYoKGNvbnRhY3REfj5iQm94TGF5ZXIzKSBhYnMoY2FhcigoY29udGFjdER+PmJCb3hMYXllcjMpKSkgbmlsKSkgKGxheWVyMVhDcmREID0gaWYoKGNvbnRhY3REfj5kaWZmTGF5ZXJCYm94KSBhYnMoY2FhcigoY29udGFjdER+PmRpZmZMYXllckJib3gpKSkgbmlsKSkgaWYoKGxheWVyMVhDcmRGICYmIHZpYTFYQ3JkRikgdGhlbiAodmlhMUVuY0YgPSBhYnMoKGxheWVyMVhDcmRGIC0gdmlhMVhDcmRGKSkpKSBpZigobGF5ZXIxWENyZEYgJiYgdmlhMlhDcmRGKSB0aGVuICh2aWEyRW5jRiA9IGFicygobGF5ZXIxWENyZEYgLSB2aWEyWENyZEYpKSkpIGlmKChsYXllcjFYQ3JkRiAmJiBsYXllcjJYQ3JkRikgdGhlbiAobGF5ZXIyRW5jRiA9IGFicygobGF5ZXIxWENyZEYgLSBsYXllcjJYQ3JkRikpKSkgaWYoKGxheWVyMVhDcmRGICYmIGxheWVyM1hDcmRGKSB0aGVuIChsYXllcjNFbmNGID0gYWJzKChsYXllcjFYQ3JkRiAtIGxheWVyM1hDcmRGKSkpKSBpZigobGF5ZXIxWENyZEwgJiYgdmlhMVhDcmRMKSB0aGVuICh2aWExRW5jTCA9IGFicygobGF5ZXIxWENyZEwgLSB2aWExWENyZEwpKSkpIGlmKChsYXllcjFYQ3JkTCAmJiB2aWEyWENyZEwpIHRoZW4gKHZpYTJFbmNMID0gYWJzKChsYXllcjFYQ3JkTCAtIHZpYTJYQ3JkTCkpKSkgaWYoKGxheWVyMVhDcmRMICYmIGxheWVyMlhDcmRMKSB0aGVuIChsYXllcjJFbmNMID0gYWJzKChsYXllcjFYQ3JkTCAtIGxheWVyMlhDcmRMKSkpKSBpZigobGF5ZXIxWENyZEwgJiYgbGF5ZXIzWENyZEwpIHRoZW4gKGxheWVyM0VuY0wgPSBhYnMoKGxheWVyMVhDcmRMIC0gbGF5ZXIzWENyZEwpKSkpIGlmKChsYXllcjFYQ3JkUyAmJiB2aWExWENyZFMpIHRoZW4gKHZpYTFFbmNTID0gYWJzKChsYXllcjFYQ3JkUyAtIHZpYTFYQ3JkUykpKSkgaWYoKGxheWVyMVhDcmRTICYmIHZpYTJYQ3JkUykgdGhlbiAodmlhMkVuY1MgPSBhYnMoKGxheWVyMVhDcmRTIC0gdmlhMlhDcmRTKSkpKSBpZigobGF5ZXIxWENyZFMgJiYgbGF5ZXIyWENyZFMpIHRoZW4gKGxheWVyMkVuY1MgPSBhYnMoKGxheWVyMVhDcmRTIC0gbGF5ZXIyWENyZFMpKSkpIGlmKChsYXllcjFYQ3JkUyAmJiBsYXllcjNYQ3JkUykgdGhlbiAobGF5ZXIzRW5jUyA9IGFicygobGF5ZXIxWENyZFMgLSBsYXllcjNYQ3JkUykpKSkgaWYoKGxheWVyMVhDcmREICYmIHZpYTFYQ3JkRCkgdGhlbiAodmlhMUVuY0QgPSBhYnMoKGxheWVyMVhDcmREIC0gdmlhMVhDcmREKSkpKSBpZigobGF5ZXIxWENyZEQgJiYgdmlhMlhDcmREKSB0aGVuICh2aWEyRW5jRCA9IGFicygobGF5ZXIxWENyZEQgLSB2aWEyWENyZEQpKSkpIGlmKChsYXllcjFYQ3JkRCAmJiBsYXllcjJYQ3JkRCkgdGhlbiAobGF5ZXIyRW5jRCA9IGFicygobGF5ZXIxWENyZEQgLSBsYXllcjJYQ3JkRCkpKSkgaWYoKGxheWVyMVhDcmREICYmIGxheWVyM1hDcmREKSB0aGVuIChsYXllcjNFbmNEID0gYWJzKChsYXllcjFYQ3JkRCAtIGxheWVyM1hDcmREKSkpKSBpZigodmlhMUVuY0YgJiYgdmlhMUVuY0wpIHRoZW4gKHZpYTFTcGFjZUZMID0gKHZpYTFFbmNGICsgdmlhMUVuY0wgKyBsKSkgKHZpYTFPZmZTZXRGTCA9ICh2aWExTWluU3BhY2UgLSB2aWExU3BhY2VGTCkpIGVsc2UgKHZpYTFPZmZTZXRGTCA9IDAuMCkpIGlmKCh2aWEyRW5jRiAmJiB2aWEyRW5jTCkgdGhlbiAodmlhMlNwYWNlRkwgPSAodmlhMkVuY0YgKyB2aWEyRW5jTCArIGwpKSAodmlhMk9mZlNldEZMID0gKHZpYTJNaW5TcGFjZSAtIHZpYTJTcGFjZUZMKSkgZWxzZSAodmlhMk9mZlNldEZMID0gMC4wKSkgaWYoKGxheWVyM0VuY0YgJiYgbGF5ZXIzRW5jTCkgdGhlbiAobGF5ZXIzU3BhY2VGTCA9IChsYXllcjNFbmNGICsgbGF5ZXIzRW5jTCArIGwpKSAobGF5ZXIzT2ZmU2V0RkwgPSAobGF5ZXIzTWluU3BhY2UgLSBsYXllcjNTcGFjZUZMKSkgZWxzZSAobGF5ZXIzT2ZmU2V0RkwgPSAwLjApKSBpZigobGF5ZXIyRW5jRiAmJiBsYXllcjJFbmNMKSB0aGVuIChsYXllcjJTcGFjZUZMID0gKGxheWVyMkVuY0YgKyBsYXllcjJFbmNMICsgbCkpIChsYXllcjJPZmZTZXRGTCA9IChsYXllcjJNaW5TcGFjZSAtIGxheWVyMlNwYWNlRkwpKSBlbHNlIChsYXllcjJPZmZTZXRGTCA9IDAuMCkpIGlmKCh2aWExRW5jRiAmJiB2aWExRW5jUykgdGhlbiAodmlhMVNwYWNlRlMgPSAodmlhMUVuY0YgKyB2aWExRW5jUyArIGwpKSAodmlhMU9mZlNldEZTID0gKHZpYTFNaW5TcGFjZSAtIHZpYTFTcGFjZUZTKSkgZWxzZSAodmlhMU9mZlNldEZTID0gMC4wKSkgaWYoKHZpYTJFbmNGICYmIHZpYTJFbmNTKSB0aGVuICh2aWEyU3BhY2VGUyA9ICh2aWEyRW5jRiArIHZpYTJFbmNTICsgbCkpICh2aWEyT2ZmU2V0RlMgPSAodmlhMk1pblNwYWNlIC0gdmlhMlNwYWNlRlMpKSBlbHNlICh2aWEyT2ZmU2V0RlMgPSAwLjApKSBpZigobGF5ZXIzRW5jRiAmJiBsYXllcjNFbmNTKSB0aGVuIChsYXllcjNTcGFjZUZTID0gKGxheWVyM0VuY0YgKyBsYXllcjNFbmNTICsgbCkpIChsYXllcjNPZmZTZXRGUyA9IChsYXllcjNNaW5TcGFjZSAtIGxheWVyM1NwYWNlRlMpKSBlbHNlIChsYXllcjNPZmZTZXRGUyA9IDAuMCkpIGlmKChsYXllcjJFbmNGICYmIGxheWVyMkVuY1MpIHRoZW4gKGxheWVyMlNwYWNlRlMgPSAobGF5ZXIyRW5jRiArIGxheWVyMkVuY1MgKyBsKSkgKGxheWVyMk9mZlNldEZTID0gKGxheWVyMk1pblNwYWNlIC0gbGF5ZXIyU3BhY2VGUykpIGVsc2UgKGxheWVyMk9mZlNldEZTID0gMC4wKSkgaWYoKHZpYTFFbmNGICYmIHZpYTFFbmNEKSB0aGVuICh2aWExU3BhY2VGRCA9ICh2aWExRW5jRiArIHZpYTFFbmNEICsgbCkpICh2aWExT2ZmU2V0RkQgPSAodmlhMU1pblNwYWNlIC0gdmlhMVNwYWNlRkQpKSBlbHNlICh2aWExT2ZmU2V0RkQgPSAwLjApKSBpZigodmlhMkVuY0YgJiYgdmlhMkVuY0QpIHRoZW4gKHZpYTJTcGFjZUZEID0gKHZpYTJFbmNGICsgdmlhMkVuY0QgKyBsKSkgKHZpYTJPZmZTZXRGRCA9ICh2aWEyTWluU3BhY2UgLSB2aWEyU3BhY2VGRCkpIGVsc2UgKHZpYTJPZmZTZXRGRCA9IDAuMCkpIGlmKChsYXllcjNFbmNGICYmIGxheWVyM0VuY0QpIHRoZW4gKGxheWVyM1NwYWNlRkQgPSAobGF5ZXIzRW5jRiArIGxheWVyM0VuY0QgKyBsKSkgKGxheWVyM09mZlNldEZEID0gKGxheWVyM01pblNwYWNlIC0gbGF5ZXIzU3BhY2VGRCkpIGVsc2UgKGxheWVyM09mZlNldEZEID0gMC4wKSkgaWYoKGxheWVyMkVuY0YgJiYgbGF5ZXIyRW5jRCkgdGhlbiAobGF5ZXIyU3BhY2VGRCA9IChsYXllcjJFbmNGICsgbGF5ZXIyRW5jRCArIGwpKSAobGF5ZXIyT2ZmU2V0RkQgPSAobGF5ZXIyTWluU3BhY2UgLSBsYXllcjJTcGFjZUZEKSkgZWxzZSAobGF5ZXIyT2ZmU2V0RkQgPSAwLjApKSBpZigodmlhMUVuY0wgJiYgdmlhMUVuY1MpIHRoZW4gKHZpYTFTcGFjZUxTID0gKHZpYTFFbmNMICsgdmlhMUVuY1MgKyBsKSkgKHZpYTFPZmZTZXRMUyA9ICh2aWExTWluU3BhY2UgLSB2aWExU3BhY2VMUykpIGVsc2UgKHZpYTFPZmZTZXRMUyA9IDAuMCkpIGlmKCh2aWEyRW5jTCAmJiB2aWEyRW5jUykgdGhlbiAodmlhMlNwYWNlTFMgPSAodmlhMkVuY0wgKyB2aWEyRW5jUyArIGwpKSAodmlhMk9mZlNldExTID0gKHZpYTJNaW5TcGFjZSAtIHZpYTJTcGFjZUxTKSkgZWxzZSAodmlhMk9mZlNldExTID0gMC4wKSkgaWYoKGxheWVyM0VuY0wgJiYgbGF5ZXIzRW5jUykgdGhlbiAobGF5ZXIzU3BhY2VMUyA9IChsYXllcjNFbmNMICsgbGF5ZXIzRW5jUyArIGwpKSAobGF5ZXIzT2ZmU2V0TFMgPSAobGF5ZXIzTWluU3BhY2UgLSBsYXllcjNTcGFjZUxTKSkgZWxzZSAobGF5ZXIzT2ZmU2V0TFMgPSAwLjApKSBpZigobGF5ZXIyRW5jTCAmJiBsYXllcjJFbmNTKSB0aGVuIChsYXllcjJTcGFjZUxTID0gKGxheWVyMkVuY0wgKyBsYXllcjJFbmNTICsgbCkpIChsYXllcjJPZmZTZXRMUyA9IChsYXllcjJNaW5TcGFjZSAtIGxheWVyMlNwYWNlTFMpKSBlbHNlIChsYXllcjJPZmZTZXRMUyA9IDAuMCkpIGlmKCh2aWExRW5jTCAmJiB2aWExRW5jRCkgdGhlbiAodmlhMVNwYWNlTEQgPSAodmlhMUVuY0wgKyB2aWExRW5jRCArIGwpKSAodmlhMU9mZlNldExEID0gKHZpYTFNaW5TcGFjZSAtIHZpYTFTcGFjZUxEKSkgZWxzZSAodmlhMU9mZlNldExEID0gMC4wKSkgaWYoKHZpYTJFbmNMICYmIHZpYTJFbmNEKSB0aGVuICh2aWEyU3BhY2VMRCA9ICh2aWEyRW5jTCArIHZpYTJFbmNEICsgbCkpICh2aWEyT2ZmU2V0TEQgPSAodmlhMk1pblNwYWNlIC0gdmlhMlNwYWNlTEQpKSBlbHNlICh2aWEyT2ZmU2V0TEQgPSAwLjApKSBpZigobGF5ZXIzRW5jTCAmJiBsYXllcjNFbmNEKSB0aGVuIChsYXllcjNTcGFjZUxEID0gKGxheWVyM0VuY0wgKyBsYXllcjNFbmNEICsgbCkpIChsYXllcjNPZmZTZXRMRCA9IChsYXllcjNNaW5TcGFjZSAtIGxheWVyM1NwYWNlTEQpKSBlbHNlIChsYXllcjNPZmZTZXRMRCA9IDAuMCkpIGlmKChsYXllcjJFbmNMICYmIGxheWVyMkVuY0QpIHRoZW4gKGxheWVyMlNwYWNlTEQgPSAobGF5ZXIyRW5jTCArIGxheWVyMkVuY0QgKyBsKSkgKGxheWVyMk9mZlNldExEID0gKGxheWVyMk1pblNwYWNlIC0gbGF5ZXIyU3BhY2VMRCkpIGVsc2UgKGxheWVyMk9mZlNldExEID0gMC4wKSkgaWYoKHZpYTFFbmNTICYmIHZpYTFFbmNEKSB0aGVuICh2aWExU3BhY2VTRCA9ICh2aWExRW5jUyArIHZpYTFFbmNEICsgbCkpICh2aWExT2ZmU2V0U0QgPSAodmlhMU1pblNwYWNlIC0gdmlhMVNwYWNlU0QpKSBlbHNlICh2aWExT2ZmU2V0U0QgPSAwLjApKSBpZigodmlhMkVuY1MgJiYgdmlhMkVuY0QpIHRoZW4gKHZpYTJTcGFjZVNEID0gKHZpYTJFbmNTICsgdmlhMkVuY0QgKyBsKSkgKHZpYTJPZmZTZXRTRCA9ICh2aWEyTWluU3BhY2UgLSB2aWEyU3BhY2VTRCkpIGVsc2UgKHZpYTJPZmZTZXRTRCA9IDAuMCkpIGlmKChsYXllcjNFbmNTICYmIGxheWVyM0VuY0QpIHRoZW4gKGxheWVyM1NwYWNlU0QgPSAobGF5ZXIzRW5jUyArIGxheWVyM0VuY0QgKyBsKSkgKGxheWVyM09mZlNldFNEID0gKGxheWVyM01pblNwYWNlIC0gbGF5ZXIzU3BhY2VTRCkpIGVsc2UgKGxheWVyM09mZlNldFNEID0gMC4wKSkgaWYoKGxheWVyMkVuY1MgJiYgbGF5ZXIyRW5jRCkgdGhlbiAobGF5ZXIyU3BhY2VTRCA9IChsYXllcjJFbmNTICsgbGF5ZXIyRW5jRCArIGwpKSAobGF5ZXIyT2ZmU2V0U0QgPSAobGF5ZXIyTWluU3BhY2UgLSBsYXllcjJTcGFjZVNEKSkgZWxzZSAobGF5ZXIyT2ZmU2V0U0QgPSAwLjApKSBpZigobSA9PSAxKSB0aGVuIChtYXhPZmZTZXQgPSBtYXgodmlhMU9mZlNldEZMIHZpYTJPZmZTZXRGTCBsYXllcjJPZmZTZXRGTCBsYXllcjNPZmZTZXRGTCAwLjApKSBlbHNlIGlmKChtID09IDIpIHRoZW4gaWYoc291cmNlRmlyc3QgdGhlbiAobWF4T2ZmU2V0ID0gbWF4KHZpYTFPZmZTZXRGRCB2aWEyT2ZmU2V0RkQgbGF5ZXIyT2ZmU2V0RkQgbGF5ZXIzT2ZmU2V0RkQgdmlhMU9mZlNldExEIHZpYTJPZmZTZXRMRCBsYXllcjJPZmZTZXRMRCBsYXllcjNPZmZTZXRMRCAwLjApKSBlbHNlIChtYXhPZmZTZXQgPSBtYXgodmlhMU9mZlNldEZTIHZpYTJPZmZTZXRGUyBsYXllcjJPZmZTZXRGUyBsYXllcjNPZmZTZXRGUyB2aWExT2ZmU2V0TFMgdmlhMk9mZlNldExTIGxheWVyMk9mZlNldExTIGxheWVyM09mZlNldExTIDAuMCkpKSBlbHNlIGlmKChtb2QobSAyKSA9PSAwKSB0aGVuIGlmKHNvdXJjZUZpcnN0IHRoZW4gKG1heE9mZlNldCA9IG1heCh2aWExT2ZmU2V0RkQgdmlhMk9mZlNldEZEIGxheWVyMk9mZlNldEZEIGxheWVyM09mZlNldEZEIHZpYTFPZmZTZXRTRCB2aWEyT2ZmU2V0U0QgbGF5ZXIyT2ZmU2V0U0QgbGF5ZXIzT2ZmU2V0U0QgdmlhMU9mZlNldExEIHZpYTJPZmZTZXRMRCBsYXllcjJPZmZTZXRMRCBsYXllcjNPZmZTZXRMRCAwLjApKSBlbHNlIChtYXhPZmZTZXQgPSBtYXgodmlhMU9mZlNldEZTIHZpYTJPZmZTZXRGUyBsYXllcjJPZmZTZXRGUyBsYXllcjNPZmZTZXRGUyB2aWExT2ZmU2V0U0QgdmlhMk9mZlNldFNEIGxheWVyMk9mZlNldFNEIGxheWVyM09mZlNldFNEIHZpYTFPZmZTZXRMUyB2aWEyT2ZmU2V0TFMgbGF5ZXIyT2ZmU2V0TFMgbGF5ZXIzT2ZmU2V0TFMgMC4wKSkpIGVsc2UgaWYoc291cmNlRmlyc3QgdGhlbiAobWF4T2ZmU2V0ID0gbWF4KHZpYTFPZmZTZXRGRCB2aWEyT2ZmU2V0RkQgbGF5ZXIyT2ZmU2V0RkQgbGF5ZXIzT2ZmU2V0RkQgdmlhMU9mZlNldFNEIHZpYTJPZmZTZXRTRCBsYXllcjJPZmZTZXRTRCBsYXllcjNPZmZTZXRTRCB2aWExT2ZmU2V0TFMgdmlhMk9mZlNldExTIGxheWVyMk9mZlNldExTIGxheWVyM09mZlNldExTIDAuMCkpIGVsc2UgKG1heE9mZlNldCA9IG1heCh2aWExT2ZmU2V0RlMgdmlhMk9mZlNldEZTIGxheWVyMk9mZlNldEZTIGxheWVyM09mZlNldEZTIHZpYTFPZmZTZXRTRCB2aWEyT2ZmU2V0U0QgbGF5ZXIyT2ZmU2V0U0QgbGF5ZXIzT2ZmU2V0U0QgdmlhMU9mZlNldExEIHZpYTJPZmZTZXRMRCBsYXllcjJPZmZTZXRMRCBsYXllcjNPZmZTZXRMRCAwLjApKSkpKSkgKG9mZnNldFNpZGUgPSAobWF4T2ZmU2V0IC8gMi4wKSkgKG1pblNwYWNlT2ZmU2V0ID0gKChjZWlsaW5nICgob2Zmc2V0U2lkZSAvIHNuYXBHcmlkKSArIC0xZS0wNikpICogc25hcEdyaWQpKSBpZihpbXBsYW50IHRoZW4gKGNvbnRhY3RJbXBQYXJhbSA9IGxpc3QoImltcGxhbnQiICJib29sZWFuIiB0KSkgZWxzZSAoY29udGFjdEltcFBhcmFtID0gbGlzdCgiaW1wbGFudCIgImJvb2xlYW4iICJGQUxTRSIpKSkgaWYod2VsbExheWVyIHRoZW4gKGNvbnRhY3RXZWxsUGFyYW0gPSBsaXN0KCJpbldlbGwiICJib29sZWFuIiB0KSkgZWxzZSAoY29udGFjdFdlbGxQYXJhbSA9IGxpc3QoImluV2VsbCIgImJvb2xlYW4iICJGQUxTRSIpKSkgKHgxQ29vcmQgPSAwLjApICh5MUNvb3JkID0gMC4wKSAobGFzdFBZaVgxQ29vcmQgPSAoLSAoMi4wICogcG9seUltcFhFbmMpKSkgd2hlbigocG9seUltcGxhbnQgJiYgZ2F0ZUltcGxhbnQpICh5MVBZaUNvb3JkID0gKHkxQ29vcmQgLSBwb2x5SW1wWUVuYyAtIGdhdGVFeHQpKSAoeTJQWWlDb29yZCA9ICh5MUNvb3JkICsgdyArIHBvbHlJbXBZRW5jICsgZ2F0ZUV4dCkpKSAoaWRMYXllcnNDb29yZFRhYmxlID0gbWFrZVRhYmxlKCJpZExheWVyc0Nvb3JkVGFibGUiIG5pbCkpIChsYXllckluZm8gPSBuaWwpIChsYXllckVuY3MgPSBuaWwpICh4MUlkQ29vcmQgPSAwLjApICh5MUlkQ29vcmQgPSAwLjApICh4MklkQ29vcmQgPSAwLjApICh5MklkQ29vcmQgPSAwLjApIHdoZW4oaWRMYXllciBmb3JlYWNoKGxheWVySW5mbyBpZExheWVyc1RhYmxlIChsYXllck5hbWUgPSBjYXIobGF5ZXJJbmZvKSkgKGxheWVyRW5jcyA9IGNhZHIobGF5ZXJJbmZvKSkgKGlkTGF5Q29vcmRzID0gbGlzdCgoeDFJZENvb3JkOnkxSWRDb29yZCkgKHgySWRDb29yZDp5MklkQ29vcmQpKSkgKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdID0gaWRMYXlDb29yZHMpKSkgKHNlY0lkTGF5ZXJzQ29vcmRUYWJsZSA9IG1ha2VUYWJsZSgic2VjSWRMYXllcnNDb29yZFRhYmxlIiBuaWwpKSAoc2VjTGF5ZXJJbmZvID0gbmlsKSAoc2VjTGF5ZXJFbmNzID0gbmlsKSAoeDFTZWNJZENvb3JkID0gMC4wKSAoeTFTZWNJZENvb3JkID0gMC4wKSAoeDJTZWNJZENvb3JkID0gMC4wKSAoeTJTZWNJZENvb3JkID0gMC4wKSB3aGVuKHNlY0lkTGF5ZXIgZm9yZWFjaChzZWNMYXllckluZm8gc2VjSWRMYXllcnNUYWJsZSAoc2VjTGF5ZXJOYW1lID0gY2FyKHNlY0xheWVySW5mbykpIChzZWNMYXllckVuY3MgPSBjYWRyKHNlY0xheWVySW5mbykpIChzZWNJZExheUNvb3JkcyA9IGxpc3QoKHgxU2VjSWRDb29yZDp5MVNlY0lkQ29vcmQpICh4MlNlY0lkQ29vcmQ6eTJTZWNJZENvb3JkKSkpIChzZWNJZExheWVyc0Nvb3JkVGFibGVbc2VjTGF5ZXJOYW1lXSA9IHNlY0lkTGF5Q29vcmRzKSkpICh3ZWxsRW5jRGlmZlkgPSB3ZWxsRW5jRGlmZikgKHdlbGxFbmNUYXBZID0gd2VsbEVuY1RhcCkgKHdlbGxFbmNEaWZmWCA9IHdlbGxFbmNEaWZmKSAod2VsbEVuY1RhcFggPSB3ZWxsRW5jVGFwKSAoZXh0ZW5zaW9uID0gbmlsKSBpZigoY05ldCA9PSBzTmV0KSB0aGVuIChvZmZzZXQgPSAobWluU3BhY2VPZmZTZXQgKyBzcmNPZmZzZXQpKSAoY3VyVGVybU9mZnNldCA9IG9mZnNldCkgKG5leHRUZXJtT2Zmc2V0ID0gKG1pblNwYWNlT2ZmU2V0ICsgZHJuT2Zmc2V0KSkgKGN1clRlcm1TaENvbkxlbmd0aCA9IGNvbnRhY3RTTGVuZ3RoKSAobmV4dFRlcm1TaENvbkxlbmd0aCA9IGNvbnRhY3RETGVuZ3RoKSBlbHNlIChvZmZzZXQgPSAobWluU3BhY2VPZmZTZXQgKyBkcm5PZmZzZXQpKSAoY3VyVGVybU9mZnNldCA9IG9mZnNldCkgKG5leHRUZXJtT2Zmc2V0ID0gKG1pblNwYWNlT2ZmU2V0ICsgc3JjT2Zmc2V0KSkgKGN1clRlcm1TaENvbkxlbmd0aCA9IGNvbnRhY3RETGVuZ3RoKSAobmV4dFRlcm1TaENvbkxlbmd0aCA9IGNvbnRhY3RTTGVuZ3RoKSkgd2hlbigoZmlyc3RDb250YWN0ICE9ICIiKSAoY29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGZpcnN0Q29udGFjdCAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKGNvbnRhY3RJZCBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQvb3BlbiBmaXJzdENvbnRhY3QgY29udGFjdCBjZWxsIGAlcyciIGZpcnN0Q29udGFjdCkpKSB1bmxlc3MoKGNvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIGZpcnN0Q29udGFjdCkpKSAocGFyYW1zID0gKGNvbnRhY3RJZH4+cGFyYW1ldGVycykpIChpbnN0UGFyYW1zID0gbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHcpKSkgd2hlbigocGFyYW1zfj5pbXBsYW50KSAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgY29udGFjdEltcFBhcmFtKSkpIHdoZW4oKHBhcmFtc34+aW5XZWxsKSAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgY29udGFjdFdlbGxQYXJhbSkpKSAoaW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGNvbnRhY3RJZCAiYzAiICgoLSBvZmZzZXQpOjApICJNWSIgMSBpbnN0UGFyYW1zKSkgdW5sZXNzKGluc3QgZXJyb3Ioc3ByaW50ZihuaWwgIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgYCVzJyIgZmlyc3RDb250YWN0KSkpIHdoZW4oZGlmZkltcGxhbnQgKGRpZmZJbXBsYW50Um9kID0gKHJvZEdldE9iaiBpbnN0KSkgKGRpZmZJbXBsYW50ZGJpZCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmSW1wYW50T1JsYXllciA/ZnJvbU9iaiBkaWZmSW1wbGFudFJvZCA/c2l6ZSBPUmxheWVyU2l6ZSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoKGRpZmZJbXBsYW50ZGJpZC0+ZGJJZCkpKSkpIHVubGVzcyhsb2RFbmFibGVkIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkIC0gb2Zmc2V0KTp5MUNvb3JkKSAoeDFDb29yZDp3KSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBvZmZzZXQpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZJbXBFbmMpKSkpKSAoY3JlYXRlZEltcGxhbnQxID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50MSBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpIChjcmVhdGVkSW1wbGFudERpZmYgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnREaWZmIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIG9mZnNldCkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpKSB3aGVuKGxvZEVuYWJsZWQgKGlzU2luZ2xlU3RyYXBwZWQgPSBuaWwpIChpc05EU3RyYXBwZWQgPSBuaWwpIHdoZW4obWFudWFsTE9EIHdoZW4oTE9EQ29udGFjdE1hcFNTdHJhcHBlZCBmb3JlYWNoKHBhaXIgTE9EQ29udGFjdE1hcFNTdHJhcHBlZCB3aGVuKChmaXJzdENvbnRhY3QgPT0gY2FyKHBhaXIpKSAoaXNTaW5nbGVTdHJhcHBlZCA9IHQpIChpbm5lckNvbnRhY3QgPSBjZHIocGFpcikpKSkpIHdoZW4oaXNTaW5nbGVTdHJhcHBlZCAoZGJEZWxldGVPYmplY3QgaW5zdCkgKGRiQ2xvc2UgY29udGFjdElkKSAoaW5uZXJDb250YWN0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgY2FyKGlubmVyQ29udGFjdCkgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcygoaW5uZXJDb250YWN0SWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBpbm5lckNvbnRhY3QpKSkgKGlubmVyQ29udGFjdExlbmd0aCA9IChjYWFkcigoaW5uZXJDb250YWN0SWR+PmRpZmZMYXllckJib3gpKSAtIGNhYXIoKGlubmVyQ29udGFjdElkfj5kaWZmTGF5ZXJCYm94KSkpKSAodmlhMVhDcmRJbm5lckNvbiA9IGlmKChpbm5lckNvbnRhY3RJZH4+YkJveFZpYTEpIGFicyhjYWFyKChpbm5lckNvbnRhY3RJZH4+YkJveFZpYTEpKSkgbmlsKSkgKGxheWVyMlhDcmRJbm5lckNvbiA9IGlmKChpbm5lckNvbnRhY3RJZH4+YkJveExheWVyMikgYWJzKGNhYXIoKGlubmVyQ29udGFjdElkfj5iQm94TGF5ZXIyKSkpIG5pbCkpICh2aWEyWENyZElubmVyQ29uID0gaWYoKGlubmVyQ29udGFjdElkfj5iQm94VmlhMikgYWJzKGNhYXIoKGlubmVyQ29udGFjdElkfj5iQm94VmlhMikpKSBuaWwpKSAobGF5ZXIzWENyZElubmVyQ29uID0gaWYoKGlubmVyQ29udGFjdElkfj5iQm94TGF5ZXIzKSBhYnMoY2FhcigoaW5uZXJDb250YWN0SWR+PmJCb3hMYXllcjMpKSkgbmlsKSkgKGxheWVyMVhDcmRJbm5lckNvbiA9IGlmKChpbm5lckNvbnRhY3RJZH4+ZGlmZkxheWVyQmJveCkgYWJzKGNhYXIoKGlubmVyQ29udGFjdElkfj5kaWZmTGF5ZXJCYm94KSkpIG5pbCkpIGlmKChsYXllcjFYQ3JkSW5uZXJDb24gJiYgdmlhMVhDcmRJbm5lckNvbikgdGhlbiAodmlhMUVuY0lubmVyQ29uID0gYWJzKChsYXllcjFYQ3JkSW5uZXJDb24gLSB2aWExWENyZElubmVyQ29uKSkpKSBpZigobGF5ZXIyWENyZElubmVyQ29uICYmIHZpYTJYQ3JkSW5uZXJDb24pIHRoZW4gKHZpYTJFbmNJbm5lckNvbiA9IGFicygobGF5ZXIxWENyZElubmVyQ29uIC0gdmlhMlhDcmRJbm5lckNvbikpKSkgaWYoKHZpYTFFbmNJbm5lckNvbiAmJiB2aWExRW5jRikgdGhlbiAoYXZhaWxhYmxlVmlhMVNwYWNlID0gKHZpYTFFbmNJbm5lckNvbiArIHZpYTFFbmNGKSkgaWYoKHZpYTFNaW5TcGFjZSA+IGF2YWlsYWJsZVZpYTFTcGFjZSkgdGhlbiAocmVxdWlyZWRWaWExU3AgPSAodmlhMU1pblNwYWNlIC0gYXZhaWxhYmxlVmlhMVNwYWNlKSkgZWxzZSAocmVxdWlyZWRWaWExU3AgPSAwKSkpIGlmKCh2aWEyRW5jSW5uZXJDb24gJiYgdmlhMkVuY0YpIHRoZW4gKGF2YWlsYWJsZVZpYTJTcGFjZSA9ICh2aWEyRW5jSW5uZXJDb24gKyB2aWEyRW5jRikpIGlmKCh2aWEyTWluU3BhY2UgPiBhdmFpbGFibGVWaWEyU3BhY2UpIHRoZW4gKHJlcXVpcmVkVmlhMlNwID0gKHZpYTJNaW5TcGFjZSAtIGF2YWlsYWJsZVZpYTJTcGFjZSkpIGVsc2UgKHJlcXVpcmVkVmlhMlNwID0gMCkpKSB3aGVuKChyZXF1aXJlZFZpYTJTcCAmJiByZXF1aXJlZFZpYTFTcCkgKHJlcXVpcmVkU3BhY2UgPSBtYXgocmVxdWlyZWRWaWEyU3AgcmVxdWlyZWRWaWExU3ApKSkgd2hlbigoKG5vdCByZXF1aXJlZFZpYTJTcCkgJiYgcmVxdWlyZWRWaWExU3ApIChyZXF1aXJlZFNwYWNlID0gcmVxdWlyZWRWaWExU3ApKSB3aGVuKChvZmZzZXQgPiAxZS0wNikgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoeDFDb29yZCAtIG9mZnNldCk6eTFDb29yZCkgKHgxQ29vcmQ6dykpKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoY3JlYXRlZEltcGxhbnR0bXAgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0KSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmSW1wRW5jKSkpKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSAoY3JlYXRlZEltcGxhbnREaWZmID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50RGlmZiBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBvZmZzZXQpICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmQ29yZUltcEVuYykpKSkpKSB3aGVuKCgoc2EgLSBjb250YWN0Rkxlbmd0aCkgPj0gKG9mZnNldCArIHJlcXVpcmVkU3BhY2UgKyBpbm5lckNvbnRhY3RMZW5ndGgpKSAoY29udGFjdElkID0gaW5uZXJDb250YWN0SWQpIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkICJjMCIgKCgtIG9mZnNldCk6MCkgIk1ZIiAxIGluc3RQYXJhbXMpKSB1bmxlc3MoaW5zdCBlcnJvcihzcHJpbnRmKG5pbCAiRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBgJXMnIiBpbm5lckNvbnRhY3QpKSkgd2hlbihkaWZmSW1wbGFudCAoZGlmZkltcGxhbnRSb2QgPSAocm9kR2V0T2JqIGluc3QpKSAoZGlmZkltcGxhbnRkYmlkID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBhbnRPUmxheWVyID9mcm9tT2JqIGRpZmZJbXBsYW50Um9kID9zaXplIE9SbGF5ZXJTaXplKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdCgoZGlmZkltcGxhbnRkYmlkLT5kYklkKSkpKSkgKHN0cmFwcGVkQ29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGZpcnN0Q29udGFjdCAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKChzdHJhcHBlZENvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIGZpcnN0Q29udGFjdCkpKSAoc3RyYXBwZWRDb250YWN0SW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHN0cmFwcGVkQ29udGFjdElkIG5pbCAoKC0gKHNhIC0gY29udGFjdEZMZW5ndGgpKTowKSAiTVkiIDEgaW5zdFBhcmFtcykpIHVubGVzcyhzdHJhcHBlZENvbnRhY3RJbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGAlcyciIGZpcnN0Q29udGFjdCkpKSB3aGVuKGRpZmZJbXBsYW50IChkaWZmSW1wbGFudFJvZCA9IChyb2RHZXRPYmogc3RyYXBwZWRDb250YWN0SW5zdCkpIChkaWZmSW1wbGFudGRiaWQgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkltcGFudE9SbGF5ZXIgP2Zyb21PYmogZGlmZkltcGxhbnRSb2QgP3NpemUgT1JsYXllclNpemUpKSAoY3JlYXRlZEltcGxhbnQxID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50MSBsaXN0KChkaWZmSW1wbGFudGRiaWQtPmRiSWQpKSkpKSAoZGJDbG9zZSBzdHJhcHBlZENvbnRhY3RJZCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoeDFDb29yZCAtIChzYSAtIGNvbnRhY3RGTGVuZ3RoKSk6eTFDb29yZCkgKCh4MUNvb3JkIC0gKG9mZnNldCArIGlubmVyQ29udGFjdExlbmd0aCkpOncpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGNyZWF0ZWRJbXBsYW50dG1wID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIChzYSAtIGNvbnRhY3RGTGVuZ3RoKSkgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCgoeDFDb29yZCAtIChvZmZzZXQgKyBpbm5lckNvbnRhY3RMZW5ndGgpKSAodyArIGRpZmZJbXBFbmMpKSkpKSAoY3JlYXRlZEltcGxhbnQxID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50MSBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpIChjcmVhdGVkSW1wbGFudERpZmYgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnREaWZmIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIChzYSAtIGNvbnRhY3RGTGVuZ3RoKSkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKHgxQ29vcmQgLSAob2Zmc2V0ICsgaW5uZXJDb250YWN0TGVuZ3RoKSkgKHcgKyBkaWZmQ29yZUltcEVuYykpKSkpKSB1bmxlc3MoKChzYSAtIGNvbnRhY3RGTGVuZ3RoKSA+PSAob2Zmc2V0ICsgcmVxdWlyZWRTcGFjZSArIGlubmVyQ29udGFjdExlbmd0aCkpIChkYkNsb3NlIGlubmVyQ29udGFjdElkKSAoc3RyYXBwZWRDb250YWN0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZmlyc3RDb250YWN0ICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoKHN0cmFwcGVkQ29udGFjdElkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgZmlyc3RDb250YWN0KSkpIChzdHJhcHBlZENvbnRhY3RJbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgc3RyYXBwZWRDb250YWN0SWQgbmlsICgoLSAoc2EgLSBjb250YWN0Rkxlbmd0aCkpOjApICJNWSIgMSBpbnN0UGFyYW1zKSkgdW5sZXNzKHN0cmFwcGVkQ29udGFjdEluc3QgZXJyb3Ioc3ByaW50ZihuaWwgIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgYCVzJyIgZmlyc3RDb250YWN0KSkpIHdoZW4oZGlmZkltcGxhbnQgKGRpZmZJbXBsYW50Um9kID0gKHJvZEdldE9iaiBzdHJhcHBlZENvbnRhY3RJbnN0KSkgKGRpZmZJbXBsYW50ZGJpZCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmSW1wYW50T1JsYXllciA/ZnJvbU9iaiBkaWZmSW1wbGFudFJvZCA/c2l6ZSBPUmxheWVyU2l6ZSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoKGRpZmZJbXBsYW50ZGJpZC0+ZGJJZCkpKSkpIChjb250YWN0SWQgPSBzdHJhcHBlZENvbnRhY3RJZCkgKGluc3QgPSBzdHJhcHBlZENvbnRhY3RJbnN0KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkIC0gKHNhIC0gY29udGFjdEZMZW5ndGgpKTp5MUNvb3JkKSAoeDFDb29yZDp3KSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSAoc2EgLSBjb250YWN0Rkxlbmd0aCkpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZJbXBFbmMpKSkpKSAoY3JlYXRlZEltcGxhbnQxID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50MSBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpIChjcmVhdGVkSW1wbGFudERpZmYgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnREaWZmIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIChzYSAtIGNvbnRhY3RGTGVuZ3RoKSkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpKSB1bmxlc3MoaXNTaW5nbGVTdHJhcHBlZCB3aGVuKCgoKHNhID4gMWUtMDYpIHx8IChvZmZzZXQgPj0gMC4wKSkgJiYgKHNhID4gKG9mZnNldCArIGNvbnRhY3RGTGVuZ3RoKSkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkIC0gb2Zmc2V0KTp5MUNvb3JkKSAoeDFDb29yZDp3KSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkIC0gb2Zmc2V0IC0gY29udGFjdEZMZW5ndGggLSAoc2EgLSBjb250YWN0Rkxlbmd0aCAtIG9mZnNldCkpOnkxQ29vcmQpICgoeDFDb29yZCAtIG9mZnNldCAtIGNvbnRhY3RGTGVuZ3RoKTp3KSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoY3JlYXRlZEltcGxhbnR0bXAgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0KSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmSW1wRW5jKSkpKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSAoY3JlYXRlZEltcGxhbnREaWZmID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50RGlmZiBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpKSAoY3JlYXRlZEltcGxhbnR0bXAgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0IC0gY29udGFjdEZMZW5ndGggLSAoc2EgLSBjb250YWN0Rkxlbmd0aCAtIG9mZnNldCkgLSBkaWZmSW1wRW5jKSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0IC0gY29udGFjdEZMZW5ndGgpICh3ICsgZGlmZkltcEVuYykpKSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkgKGNyZWF0ZWRJbXBsYW50RGlmZiA9IGFwcGVuZChjcmVhdGVkSW1wbGFudERpZmYgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIG9mZnNldCkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBvZmZzZXQgLSBjb250YWN0Rkxlbmd0aCAtIChzYSAtIGNvbnRhY3RGTGVuZ3RoIC0gb2Zmc2V0KSAtIGRpZmZDb3JlSW1wRW5jKSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgoeDFDb29yZCAtIG9mZnNldCAtIGNvbnRhY3RGTGVuZ3RoKSAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHdoZW4oKCgob2Zmc2V0ID4gMWUtMDYpICYmIChzYSA9PSAwLjApICYmICgob2Zmc2V0ICsgY29udGFjdEZMZW5ndGgpID49IHNhKSkgfHwgKChvZmZzZXQgPiAxZS0wNikgJiYgKHNhID4gMWUtMDYpICYmICgob2Zmc2V0ICsgY29udGFjdEZMZW5ndGgpID49IHNhKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKHgxQ29vcmQgLSBvZmZzZXQpOnkxQ29vcmQpICh4MUNvb3JkOncpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGNyZWF0ZWRJbXBsYW50dG1wID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIG9mZnNldCkgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCh4MUNvb3JkICh3ICsgZGlmZkltcEVuYykpKSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkgKGNyZWF0ZWRJbXBsYW50RGlmZiA9IGFwcGVuZChjcmVhdGVkSW1wbGFudERpZmYgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0KSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCh4MUNvb3JkICh3ICsgZGlmZkNvcmVJbXBFbmMpKSkpKSkpKSB3aGVuKChub3QgbWFudWFsTE9EKSB1bmxlc3MoKGJ1dHRpbmdHYXRlc1NBID49IDApIHdhcm4oc3ByaW50ZihuaWwgIkNhbm5vdCBzcGVjaWZ5IG5vbi16ZXJvIG51bWJlciBvZiBidXR0aW5nIGdhdGVzIGZvciBTQSAlTFxuIiBidXR0aW5nR2F0ZXNTQSkpKSB1bmxlc3MoKGJ1dHRpbmdHYXRlc1NBID49IDEpIChleHRlbnNpb24gPSAob2Zmc2V0ICsgY29udGFjdEZMZW5ndGgpKSkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKHgxQ29vcmQgLSBvZmZzZXQpOnkxQ29vcmQpICh4MUNvb3JkOncpKSkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoY3JlYXRlZEltcGxhbnR0bXAgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0KSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHkxQ29vcmQgKyB3ICsgZGlmZkltcEVuYykpKSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkgKGNyZWF0ZWRJbXBsYW50RGlmZiA9IGFwcGVuZChjcmVhdGVkSW1wbGFudERpZmYgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0KSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCh4MUNvb3JkICh5MUNvb3JkICsgdyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHdoZW4oKGJ1dHRpbmdHYXRlc1NBID49IDApIHdoZW4oKGJ1dHRpbmdHYXRlc1NBID49IDEpIHdoZW4oTE9EQ29udGFjdE1hcFNTdHJhcHBlZCBmb3JlYWNoKHBhaXIgTE9EQ29udGFjdE1hcFNTdHJhcHBlZCB3aGVuKChmaXJzdENvbnRhY3QgPT0gY2FyKHBhaXIpKSAoaXNTaW5nbGVTdHJhcHBlZCA9IHQpIChpbm5lckNvbnRhY3QgPSBjZHIocGFpcikpKSkpIHdoZW4oTE9EQ29udGFjdE1hcE5EU3RyYXBwZWQgZm9yZWFjaChwYWlyIExPRENvbnRhY3RNYXBORFN0cmFwcGVkIHdoZW4oKGZpcnN0Q29udGFjdCA9PSBjYXIocGFpcikpIChpc05EU3RyYXBwZWQgPSB0KSAob3V0ZXJDb250YWN0ID0gY2RyKHBhaXIpKSkpKSkgd2hlbigoaXNTaW5nbGVTdHJhcHBlZCAmJiAoYnV0dGluZ0dhdGVzU0EgPj0gMSkpIChkYkRlbGV0ZU9iamVjdCBpbnN0KSAoZGJDbG9zZSBjb250YWN0SWQpIChjb250YWN0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgY2FyKGlubmVyQ29udGFjdCkgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcygoY29udGFjdElkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgaW5uZXJDb250YWN0KSkpIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkICJjMCIgKCgtIG9mZnNldCk6MCkgIk1ZIiAxIGluc3RQYXJhbXMpKSB1bmxlc3MoaW5zdCBlcnJvcihzcHJpbnRmKG5pbCAiRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBgJXMnIiBpbm5lckNvbnRhY3QpKSkgd2hlbihkaWZmSW1wbGFudCAoZGlmZkltcGxhbnRSb2QgPSAocm9kR2V0T2JqIGluc3QpKSAoZGlmZkltcGxhbnRkYmlkID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBhbnRPUmxheWVyID9mcm9tT2JqIGRpZmZJbXBsYW50Um9kID9zaXplIE9SbGF5ZXJTaXplKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdCgoZGlmZkltcGxhbnRkYmlkLT5kYklkKSkpKSkgKGlubmVyQ29udGFjdExlbmd0aCA9IChjYWFkcigoY29udGFjdElkfj5kaWZmTGF5ZXJCYm94KSkgLSBjYWFyKChjb250YWN0SWR+PmRpZmZMYXllckJib3gpKSkpIHdoZW4oKGJ1dHRpbmdHYXRlc1NBID49IDEpIHdoZW4oKG1vZChidXR0aW5nR2F0ZXNTQSAyKSA9PSAwKSAoZXh0ZW5zaW9uID0gKChpbm5lckNvbnRhY3RMZW5ndGggKyAoMiAqIGN1clRlcm1PZmZzZXQpKSArICgoKGJ1dHRpbmdHYXRlc1NBIC8gMikgLSAxKSAqIGN1clRlcm1TaENvbkxlbmd0aCkgKyAoKGJ1dHRpbmdHYXRlc1NBIC0gMikgKiBjdXJUZXJtT2Zmc2V0KSArICgoYnV0dGluZ0dhdGVzU0EgLyAyKSAqIG5leHRUZXJtU2hDb25MZW5ndGgpICsgKGJ1dHRpbmdHYXRlc1NBICogbmV4dFRlcm1PZmZzZXQpICsgKGNvbnRhY3RGTGVuZ3RoICsgY3VyVGVybU9mZnNldCkgKyAoYnV0dGluZ0dhdGVzU0EgKiBsKSkpKSB1bmxlc3MoKG1vZChidXR0aW5nR2F0ZXNTQSAyKSA9PSAwKSAoZXh0ZW5zaW9uID0gKChpbm5lckNvbnRhY3RMZW5ndGggKyAoMiAqIGN1clRlcm1PZmZzZXQpKSArICgoKGJ1dHRpbmdHYXRlc1NBIC0gMSkgLyAyKSAqIGN1clRlcm1TaENvbkxlbmd0aCkgKyAoKGJ1dHRpbmdHYXRlc1NBIC0gMSkgKiBjdXJUZXJtT2Zmc2V0KSArICgoKGJ1dHRpbmdHYXRlc1NBIC0gMSkgLyAyKSAqIG5leHRUZXJtU2hDb25MZW5ndGgpICsgKChidXR0aW5nR2F0ZXNTQSAtIDEpICogbmV4dFRlcm1PZmZzZXQpICsgKGNvbnRhY3RGTGVuZ3RoICsgbmV4dFRlcm1PZmZzZXQpICsgKGJ1dHRpbmdHYXRlc1NBICogbCkpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKC0gKGV4dGVuc2lvbiAtIGNvbnRhY3RGTGVuZ3RoKSk6eTFDb29yZCkgKCgtIChvZmZzZXQgKyBpbm5lckNvbnRhY3RMZW5ndGgpKTp3KSkpIChvdXRlckNvbnRhY3RJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBmaXJzdENvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcygob3V0ZXJDb250YWN0SWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBmaXJzdENvbnRhY3QpKSkgKG91dGVySW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IG91dGVyQ29udGFjdElkIG5pbCAoKC0gKGV4dGVuc2lvbiAtIGNvbnRhY3RGTGVuZ3RoKSk6MCkgIk1ZIiAxIGluc3RQYXJhbXMpKSB1bmxlc3Mob3V0ZXJJbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGAlcyciIGZpcnN0Q29udGFjdCkpKSB3aGVuKGRpZmZJbXBsYW50IChkaWZmSW1wbGFudFJvZCA9IChyb2RHZXRPYmogb3V0ZXJJbnN0KSkgKGRpZmZJbXBsYW50ZGJpZCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmSW1wYW50T1JsYXllciA/ZnJvbU9iaiBkaWZmSW1wbGFudFJvZCA/c2l6ZSBPUmxheWVyU2l6ZSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoKGRpZmZJbXBsYW50ZGJpZC0+ZGJJZCkpKSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSAoZXh0ZW5zaW9uIC0gY29udGFjdEZMZW5ndGgpKSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0IC0gaW5uZXJDb250YWN0TGVuZ3RoKSAoeTFDb29yZCArIHcgKyBkaWZmSW1wRW5jKSkpKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSAoY3JlYXRlZEltcGxhbnREaWZmID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50RGlmZiBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSAoZXh0ZW5zaW9uIC0gY29udGFjdEZMZW5ndGgpKSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgoeDFDb29yZCAtIG9mZnNldCAtIGlubmVyQ29udGFjdExlbmd0aCkgKHkxQ29vcmQgKyB3ICsgZGlmZkNvcmVJbXBFbmMpKSkpKSkgd2hlbigoKG5vdCBpc1NpbmdsZVN0cmFwcGVkKSAmJiAoYnV0dGluZ0dhdGVzU0EgPj0gMSkpIChvdXRlckNvbnRhY3RJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBjYXIob3V0ZXJDb250YWN0KSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKChvdXRlckNvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIG91dGVyQ29udGFjdCkpKSAob3V0ZXJDb250YWN0TGVuZ3RoID0gKGNhYWRyKChvdXRlckNvbnRhY3RJZH4+ZGlmZkxheWVyQmJveCkpIC0gY2Fhcigob3V0ZXJDb250YWN0SWR+PmRpZmZMYXllckJib3gpKSkpIHdoZW4oKGJ1dHRpbmdHYXRlc1NBID49IDEpIHdoZW4oKG1vZChidXR0aW5nR2F0ZXNTQSAyKSA9PSAwKSAoZXh0ZW5zaW9uID0gKChjb250YWN0Rkxlbmd0aCArICgyICogY3VyVGVybU9mZnNldCkpICsgKCgoYnV0dGluZ0dhdGVzU0EgLyAyKSAtIDEpICogY3VyVGVybVNoQ29uTGVuZ3RoKSArICgoYnV0dGluZ0dhdGVzU0EgLSAyKSAqIGN1clRlcm1PZmZzZXQpICsgKChidXR0aW5nR2F0ZXNTQSAvIDIpICogbmV4dFRlcm1TaENvbkxlbmd0aCkgKyAoYnV0dGluZ0dhdGVzU0EgKiBuZXh0VGVybU9mZnNldCkgKyAob3V0ZXJDb250YWN0TGVuZ3RoICsgY3VyVGVybU9mZnNldCkgKyAoYnV0dGluZ0dhdGVzU0EgKiBsKSkpKSB1bmxlc3MoKG1vZChidXR0aW5nR2F0ZXNTQSAyKSA9PSAwKSAoZXh0ZW5zaW9uID0gKChjb250YWN0Rkxlbmd0aCArICgyICogY3VyVGVybU9mZnNldCkpICsgKCgoYnV0dGluZ0dhdGVzU0EgLSAxKSAvIDIpICogY3VyVGVybVNoQ29uTGVuZ3RoKSArICgoYnV0dGluZ0dhdGVzU0EgLSAxKSAqIGN1clRlcm1PZmZzZXQpICsgKCgoYnV0dGluZ0dhdGVzU0EgLSAxKSAvIDIpICogbmV4dFRlcm1TaENvbkxlbmd0aCkgKyAoKGJ1dHRpbmdHYXRlc1NBIC0gMSkgKiBuZXh0VGVybU9mZnNldCkgKyAob3V0ZXJDb250YWN0TGVuZ3RoICsgbmV4dFRlcm1PZmZzZXQpICsgKGJ1dHRpbmdHYXRlc1NBICogbCkpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKHgxQ29vcmQgLSBleHRlbnNpb24pOnkxQ29vcmQpICgoeDFDb29yZCAtIG9mZnNldCAtIGNvbnRhY3RGTGVuZ3RoKTp3KSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBleHRlbnNpb24gLSBkaWZmSW1wRW5jKSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0IC0gY29udGFjdEZMZW5ndGgpICh5MUNvb3JkICsgdyArIGRpZmZJbXBFbmMpKSkpKSAoY3JlYXRlZEltcGxhbnQxID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50MSBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpIChjcmVhdGVkSW1wbGFudERpZmYgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnREaWZmIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIGV4dGVuc2lvbiAtIGRpZmZDb3JlSW1wRW5jKSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgoeDFDb29yZCAtIG9mZnNldCAtIGNvbnRhY3RGTGVuZ3RoKSAoeTFDb29yZCArIHcgKyBkaWZmQ29yZUltcEVuYykpKSkpKSkpKSAobWFzdGVyID0gKGluc3R+Pm1hc3RlcikpIHVubGVzcygoKG1hc3Rlcn4+dG9wTGF5ZXIpICYmIChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpIGVycm9yKHNwcmludGYobmlsICJNaXNzaW5nIHRvcExheWVyIGFuZC9vciB0b3BMYXllclBpbkJib3ggY2VsbCBwcm9wZXJ0aWVzIGluIGAlcyciIGZpcnN0Q29udGFjdCkpKSAoYkJveCA9IGxpc3QobGlzdCgoLSAob2Zmc2V0ICsgY2FhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpIGNhZGFyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSBsaXN0KCgtIChvZmZzZXQgKyBjYWFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpIGNhZGFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpKSB3aGVuKChsb2RFbmFibGVkICYmIG1hbnVhbExPRCAmJiBpc1NpbmdsZVN0cmFwcGVkKSB1bmxlc3MoKChzYSAtIGNvbnRhY3RGTGVuZ3RoKSA+PSAob2Zmc2V0ICsgcmVxdWlyZWRTcGFjZSArIGlubmVyQ29udGFjdExlbmd0aCkpIChiQm94ID0gbGlzdChsaXN0KCgtICgoc2EgLSBjb250YWN0Rkxlbmd0aCkgKyBjYWFyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpIGxpc3QoKC0gKChzYSAtIGNvbnRhY3RGTGVuZ3RoKSArIGNhYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkgY2FkYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkpKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgKG1hc3Rlcn4+dG9wTGF5ZXIpIGJCb3gpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gY05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiKSBhY2Nlc3NEaXIpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoY2FhcihiQm94KSArICgoY2FhZHIoYkJveCkgLSBjYWFyKGJCb3gpKSAvIDIuMCkpIChjYWRhcihiQm94KSArICgoY2FkYWRyKGJCb3gpIC0gY2FkYXIoYkJveCkpIC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB1bmxlc3MobG9kRW5hYmxlZCB3aGVuKCh3ZWxsTGF5ZXIgfHwgaWRMYXllciB8fCBzZWNJZExheWVyKSB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGZpcnN0Q29udGFjdCkpKSAoeDFEaWZmQ29vcmQgPSBjYWFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh4MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MkRpZmZDb29yZCA9IGNhZGFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MlRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTFEaWZmQ29vcmQgPSBjYWRhcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYXIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpIHdoZW4od2VsbExheWVyICh4MVdlbGxDb29yZCA9ICgtIChvZmZzZXQgKyBtYXgoKHdlbGxFbmNEaWZmWCArIHgxRGlmZkNvb3JkKSAod2VsbEVuY1RhcFggKyB4MVRhcENvb3JkKSkpKSkgKHkxV2VsbENvb3JkID0gKC0gbWF4KCh3ZWxsRW5jRGlmZlkgKyB5MURpZmZDb29yZCkgKHdlbGxFbmNUYXBZICsgeTFUYXBDb29yZCkpKSkgKHkyV2VsbENvb3JkID0gbWF4KCh3ZWxsRW5jRGlmZlkgKyB5MkRpZmZDb29yZCkgKHdlbGxFbmNUYXBZICsgeTJUYXBDb29yZCkpKSkgd2hlbihpZExheWVyIGZvcmVhY2gobGF5ZXJJbmZvIGlkTGF5ZXJzVGFibGUgKGxheWVyTmFtZSA9IGNhcihsYXllckluZm8pKSAobGF5ZXJFbmNzID0gY2FkcihsYXllckluZm8pKSAoaWRFbmNYTCA9IG50aCgwIGxheWVyRW5jcykpIChpZEVuY1hSID0gbnRoKDEgbGF5ZXJFbmNzKSkgKGlkRW5jWSA9IG50aCgyIGxheWVyRW5jcykpICh4MUlkQ29vcmQgPSAoLSAob2Zmc2V0ICsgbWF4KChpZEVuY1hMICsgeDFEaWZmQ29vcmQpIChpZEVuY1hMICsgeDFUYXBDb29yZCkpKSkpICh5MUlkQ29vcmQgPSAoLSBtYXgoKGlkRW5jWSArIHkxRGlmZkNvb3JkKSAoaWRFbmNZICsgeTFUYXBDb29yZCkpKSkgKHkySWRDb29yZCA9IG1heCgoaWRFbmNZICsgeTJEaWZmQ29vcmQpIChpZEVuY1kgKyB5MlRhcENvb3JkKSkpIChsYXllckNvb3JkcyA9IGxpc3QoKHgxSWRDb29yZDp5MUlkQ29vcmQpICh4MklkQ29vcmQ6eTJJZENvb3JkKSkpIChpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSA9IGxheWVyQ29vcmRzKSkpIHdoZW4oc2VjSWRMYXllciBmb3JlYWNoKHNlY0xheWVySW5mbyBzZWNJZExheWVyc1RhYmxlIChzZWNMYXllck5hbWUgPSBjYXIoc2VjTGF5ZXJJbmZvKSkgKHNlY0xheWVyRW5jcyA9IGNhZHIoc2VjTGF5ZXJJbmZvKSkgKHNlY0lkRW5jWEwgPSBudGgoMCBzZWNMYXllckVuY3MpKSAoc2VjSWRFbmNYUiA9IG50aCgxIHNlY0xheWVyRW5jcykpIChzZWNJZEVuY1kgPSBudGgoMiBzZWNMYXllckVuY3MpKSAoeDFTZWNJZENvb3JkID0gKC0gKG9mZnNldCArIG1heCgoc2VjSWRFbmNYTCArIHgxRGlmZkNvb3JkKSAoc2VjSWRFbmNYTCArIHgxVGFwQ29vcmQpKSkpKSAoeTFTZWNJZENvb3JkID0gKC0gbWF4KChzZWNJZEVuY1kgKyB5MURpZmZDb29yZCkgKHNlY0lkRW5jWSArIHkxVGFwQ29vcmQpKSkpICh5MlNlY0lkQ29vcmQgPSBtYXgoKHNlY0lkRW5jWSArIHkyRGlmZkNvb3JkKSAoc2VjSWRFbmNZICsgeTJUYXBDb29yZCkpKSAoc2VjTGF5ZXJDb29yZHMgPSBsaXN0KCh4MVNlY0lkQ29vcmQ6eTFTZWNJZENvb3JkKSAoeDJTZWNJZENvb3JkOnkyU2VjSWRDb29yZCkpKSAoc2VjSWRMYXllcnNDb29yZFRhYmxlW3NlY0xheWVyTmFtZV0gPSBzZWNMYXllckNvb3JkcykpKSkpIHdoZW4obG9kRW5hYmxlZCB3aGVuKCh3ZWxsTGF5ZXIgfHwgaWRMYXllciB8fCBzZWNJZExheWVyKSB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGZpcnN0Q29udGFjdCkpKSAoeDFEaWZmQ29vcmQgPSBjYWFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh4MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MkRpZmZDb29yZCA9IGNhZGFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MlRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTFEaWZmQ29vcmQgPSBjYWRhcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYXIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpIHdoZW4obWFudWFsTE9EIHdoZW4od2VsbExheWVyIHdoZW4oaXNTaW5nbGVTdHJhcHBlZCAoeDFXZWxsQ29vcmQgPSAoLSAoKHNhIC0gbWF4KHgxRGlmZkNvb3JkIHgxVGFwQ29vcmQpKSArIG1heCgod2VsbEVuY0RpZmZYICsgeDFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWCArIHgxVGFwQ29vcmQpKSkpKSkgdW5sZXNzKGlzU2luZ2xlU3RyYXBwZWQgd2hlbigoKChzYSA+IDFlLTA2KSAmJiAob2Zmc2V0ID4gMWUtMDYpICYmIChzYSA+IChvZmZzZXQgKyBjb250YWN0Rkxlbmd0aCkpKSB8fCAoKHNhID4gMWUtMDYpICYmIChvZmZzZXQgPT0gMC4wKSAmJiAoc2EgPj0gKG9mZnNldCArIGNvbnRhY3RGTGVuZ3RoKSkpKSAoeDFXZWxsQ29vcmQgPSAoLSAoKHNhIC0gbWF4KHgxRGlmZkNvb3JkIHgxVGFwQ29vcmQpKSArIG1heCgod2VsbEVuY0RpZmZYICsgeDFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWCArIHgxVGFwQ29vcmQpKSkpKSkgd2hlbigoKChvZmZzZXQgPiAxZS0wNikgJiYgKHNhID09IDAuMCkgJiYgKChvZmZzZXQgKyBjb250YWN0Rkxlbmd0aCkgPj0gc2EpKSB8fCAoKG9mZnNldCA+IDFlLTA2KSAmJiAoc2EgPiAxZS0wNikgJiYgKChvZmZzZXQgKyBjb250YWN0Rkxlbmd0aCkgPj0gc2EpKSkgKHgxV2VsbENvb3JkID0gKC0gKG9mZnNldCArIG1heCgod2VsbEVuY0RpZmZYICsgeDFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWCArIHgxVGFwQ29vcmQpKSkpKSkpICh5MVdlbGxDb29yZCA9ICgtIG1heCgod2VsbEVuY0RpZmZZICsgeTFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkxVGFwQ29vcmQpKSkpICh5MldlbGxDb29yZCA9IG1heCgod2VsbEVuY0RpZmZZICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkyVGFwQ29vcmQpKSkpIHdoZW4oaWRMYXllciBmb3JlYWNoKGxheWVySW5mbyBpZExheWVyc1RhYmxlIChsYXllck5hbWUgPSBjYXIobGF5ZXJJbmZvKSkgKGxheWVyRW5jcyA9IGNhZHIobGF5ZXJJbmZvKSkgKGlkRW5jWEwgPSBudGgoMCBsYXllckVuY3MpKSAoaWRFbmNYUiA9IG50aCgxIGxheWVyRW5jcykpIChpZEVuY1kgPSBudGgoMiBsYXllckVuY3MpKSB3aGVuKGlzU2luZ2xlU3RyYXBwZWQgKHgxSWRDb29yZCA9ICgtICgoc2EgLSBtYXgoeDFEaWZmQ29vcmQgeDFUYXBDb29yZCkpICsgbWF4KChpZEVuY1hMICsgeDFEaWZmQ29vcmQpIChpZEVuY1hMICsgeDFUYXBDb29yZCkpKSkpKSB1bmxlc3MoaXNTaW5nbGVTdHJhcHBlZCB3aGVuKCgoKHNhID4gMWUtMDYpICYmIChvZmZzZXQgPiAxZS0wNikgJiYgKHNhID4gKG9mZnNldCArIGNvbnRhY3RGTGVuZ3RoKSkpIHx8ICgoc2EgPiAxZS0wNikgJiYgKG9mZnNldCA9PSAwLjApICYmIChzYSA+PSAob2Zmc2V0ICsgY29udGFjdEZMZW5ndGgpKSkpICh4MUlkQ29vcmQgPSAoLSAoKHNhIC0gbWF4KHgxRGlmZkNvb3JkIHgxVGFwQ29vcmQpKSArIG1heCgoaWRFbmNYTCArIHgxRGlmZkNvb3JkKSAoaWRFbmNYTCArIHgxVGFwQ29vcmQpKSkpKSkgd2hlbigoKChvZmZzZXQgPiAxZS0wNikgJiYgKHNhID09IDAuMCkgJiYgKChvZmZzZXQgKyBjb250YWN0Rkxlbmd0aCkgPj0gc2EpKSB8fCAoKG9mZnNldCA+IDFlLTA2KSAmJiAoc2EgPiAxZS0wNikgJiYgKChvZmZzZXQgKyBjb250YWN0Rkxlbmd0aCkgPj0gc2EpKSkgKHgxSWRDb29yZCA9ICgtIChvZmZzZXQgKyBtYXgoKGlkRW5jWEwgKyB4MURpZmZDb29yZCkgKGlkRW5jWEwgKyB4MVRhcENvb3JkKSkpKSkpKSAoeTFJZENvb3JkID0gKC0gbWF4KChpZEVuY1kgKyB5MURpZmZDb29yZCkgKGlkRW5jWSArIHkxVGFwQ29vcmQpKSkpICh5MklkQ29vcmQgPSBtYXgoKGlkRW5jWSArIHkyRGlmZkNvb3JkKSAoaWRFbmNZICsgeTJUYXBDb29yZCkpKSAobGF5ZXJDb29yZHMgPSBsaXN0KCh4MUlkQ29vcmQ6eTFJZENvb3JkKSAoeDJJZENvb3JkOnkySWRDb29yZCkpKSAoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0gPSBsYXllckNvb3JkcykpKSB3aGVuKHNlY0lkTGF5ZXIgZm9yZWFjaChzZWNMYXllckluZm8gc2VjSWRMYXllcnNUYWJsZSAoc2VjTGF5ZXJOYW1lID0gY2FyKHNlY0xheWVySW5mbykpIChzZWNMYXllckVuY3MgPSBjYWRyKHNlY0xheWVySW5mbykpIChzZWNJZEVuY1hMID0gbnRoKDAgc2VjTGF5ZXJFbmNzKSkgKHNlY0lkRW5jWFIgPSBudGgoMSBzZWNMYXllckVuY3MpKSAoc2VjSWRFbmNZID0gbnRoKDIgc2VjTGF5ZXJFbmNzKSkgd2hlbihpc1NpbmdsZVN0cmFwcGVkICh4MVNlY0lkQ29vcmQgPSAoLSAoKHNhIC0gbWF4KHgxRGlmZkNvb3JkIHgxVGFwQ29vcmQpKSArIG1heCgoc2VjSWRFbmNYTCArIHgxRGlmZkNvb3JkKSAoc2VjSWRFbmNYTCArIHgxVGFwQ29vcmQpKSkpKSkgdW5sZXNzKGlzU2luZ2xlU3RyYXBwZWQgd2hlbigoKChzYSA+IDFlLTA2KSAmJiAob2Zmc2V0ID4gMWUtMDYpICYmIChzYSA+IChvZmZzZXQgKyBjb250YWN0Rkxlbmd0aCkpKSB8fCAoKHNhID4gMWUtMDYpICYmIChvZmZzZXQgPT0gMC4wKSAmJiAoc2EgPj0gKG9mZnNldCArIGNvbnRhY3RGTGVuZ3RoKSkpKSAoeDFTZWNJZENvb3JkID0gKC0gKChzYSAtIG1heCh4MURpZmZDb29yZCB4MVRhcENvb3JkKSkgKyBtYXgoKHNlY0lkRW5jWEwgKyB4MURpZmZDb29yZCkgKHNlY0lkRW5jWEwgKyB4MVRhcENvb3JkKSkpKSkpIHdoZW4oKCgob2Zmc2V0ID4gMWUtMDYpICYmIChzYSA9PSAwLjApICYmICgob2Zmc2V0ICsgY29udGFjdEZMZW5ndGgpID49IHNhKSkgfHwgKChvZmZzZXQgPiAxZS0wNikgJiYgKHNhID4gMWUtMDYpICYmICgob2Zmc2V0ICsgY29udGFjdEZMZW5ndGgpID49IHNhKSkpICh4MVNlY0lkQ29vcmQgPSAoLSAob2Zmc2V0ICsgbWF4KChzZWNJZEVuY1hMICsgeDFEaWZmQ29vcmQpIChzZWNJZEVuY1hMICsgeDFUYXBDb29yZCkpKSkpKSkgKHkxU2VjSWRDb29yZCA9ICgtIG1heCgoc2VjSWRFbmNZICsgeTFEaWZmQ29vcmQpIChzZWNJZEVuY1kgKyB5MVRhcENvb3JkKSkpKSAoeTJTZWNJZENvb3JkID0gbWF4KChzZWNJZEVuY1kgKyB5MkRpZmZDb29yZCkgKHNlY0lkRW5jWSArIHkyVGFwQ29vcmQpKSkgKHNlY0xheWVyQ29vcmRzID0gbGlzdCgoeDFTZWNJZENvb3JkOnkxU2VjSWRDb29yZCkgKHgyU2VjSWRDb29yZDp5MlNlY0lkQ29vcmQpKSkgKHNlY0lkTGF5ZXJzQ29vcmRUYWJsZVtzZWNMYXllck5hbWVdID0gc2VjTGF5ZXJDb29yZHMpKSkpIHdoZW4oKG5vdCBtYW51YWxMT0QpIHdoZW4od2VsbExheWVyIHdoZW4oaXNTaW5nbGVTdHJhcHBlZCAoeDFXZWxsQ29vcmQgPSAoLSAoZXh0ZW5zaW9uICsgd2VsbEVuY1RhcFgpKSkpIHVubGVzcyhpc1NpbmdsZVN0cmFwcGVkICh4MVdlbGxDb29yZCA9ICgtIChleHRlbnNpb24gKyB3ZWxsRW5jRGlmZlgpKSkpICh5MVdlbGxDb29yZCA9ICgtIG1heCgod2VsbEVuY0RpZmZZICsgeTFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkxVGFwQ29vcmQpKSkpICh5MldlbGxDb29yZCA9IG1heCgod2VsbEVuY0RpZmZZICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkyVGFwQ29vcmQpKSkpIHdoZW4oaWRMYXllciBmb3JlYWNoKGxheWVySW5mbyBpZExheWVyc1RhYmxlIChsYXllck5hbWUgPSBjYXIobGF5ZXJJbmZvKSkgKGxheWVyRW5jcyA9IGNhZHIobGF5ZXJJbmZvKSkgKGlkRW5jWEwgPSBudGgoMCBsYXllckVuY3MpKSAoaWRFbmNYUiA9IG50aCgxIGxheWVyRW5jcykpIChpZEVuY1kgPSBudGgoMiBsYXllckVuY3MpKSAoeDFJZENvb3JkID0gKC0gKGV4dGVuc2lvbiArIGlkRW5jWEwpKSkgKHkxSWRDb29yZCA9ICgtIG1heCgoaWRFbmNZICsgeTFEaWZmQ29vcmQpIChpZEVuY1kgKyB5MVRhcENvb3JkKSkpKSAoeTJJZENvb3JkID0gbWF4KChpZEVuY1kgKyB5MkRpZmZDb29yZCkgKGlkRW5jWSArIHkyVGFwQ29vcmQpKSkgKGxheWVyQ29vcmRzID0gbGlzdCgoeDFJZENvb3JkOnkxSWRDb29yZCkgKHgySWRDb29yZDp5MklkQ29vcmQpKSkgKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdID0gbGF5ZXJDb29yZHMpKSkgd2hlbihzZWNJZExheWVyIGZvcmVhY2goc2VjTGF5ZXJJbmZvIHNlY0lkTGF5ZXJzVGFibGUgKHNlY0xheWVyTmFtZSA9IGNhcihzZWNMYXllckluZm8pKSAoc2VjTGF5ZXJFbmNzID0gY2FkcihzZWNMYXllckluZm8pKSAoc2VjSWRFbmNYTCA9IG50aCgwIHNlY0xheWVyRW5jcykpIChzZWNJZEVuY1hSID0gbnRoKDEgc2VjTGF5ZXJFbmNzKSkgKHNlY0lkRW5jWSA9IG50aCgyIHNlY0xheWVyRW5jcykpICh4MVNlY0lkQ29vcmQgPSAoLSAoZXh0ZW5zaW9uICsgc2VjSWRFbmNYTCkpKSAoeTFTZWNJZENvb3JkID0gKC0gbWF4KChzZWNJZEVuY1kgKyB5MURpZmZDb29yZCkgKHNlY0lkRW5jWSArIHkxVGFwQ29vcmQpKSkpICh5MlNlY0lkQ29vcmQgPSBtYXgoKHNlY0lkRW5jWSArIHkyRGlmZkNvb3JkKSAoc2VjSWRFbmNZICsgeTJUYXBDb29yZCkpKSAoc2VjTGF5ZXJDb29yZHMgPSBsaXN0KCh4MVNlY0lkQ29vcmQ6eTFTZWNJZENvb3JkKSAoeDJTZWNJZENvb3JkOnkyU2VjSWRDb29yZCkpKSAoc2VjSWRMYXllcnNDb29yZFRhYmxlW3NlY0xheWVyTmFtZV0gPSBzZWNMYXllckNvb3JkcykpKSkpKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoY3JlYXRlZEltcGxhbnR0bXAgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gZGlmZkV4dCkgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCh4MUNvb3JkICh3ICsgZGlmZkltcEVuYykpKSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkgKGNyZWF0ZWRJbXBsYW50RGlmZiA9IGFwcGVuZChjcmVhdGVkSW1wbGFudERpZmYgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gZGlmZkV4dCkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkgKGRiQ2xvc2UgY29udGFjdElkKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkIC0gZGlmZkV4dCk6eTFDb29yZCkgKHgxQ29vcmQ6dykpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IikgYWNjZXNzRGlyKSB3aGVuKHNlY0lkTGF5ZXIgZm9yZWFjaChzZWNMYXllckluZm8gc2VjSWRMYXllcnNUYWJsZSAoc2VjTGF5ZXJOYW1lID0gY2FyKHNlY0xheWVySW5mbykpIChzZWNMYXllckNvb3JkcyA9IHNlY0lkTGF5ZXJzQ29vcmRUYWJsZVtzZWNMYXllck5hbWVdKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgc2VjTGF5ZXJOYW1lIHNlY0xheWVyQ29vcmRzKSkpIHdoZW4oKGZpcnN0Q29udGFjdCA9PSAiIikgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGNyZWF0ZWRJbXBsYW50dG1wID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIGRpZmZFeHQgLSBkaWZmSW1wRW5jKSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmSW1wRW5jKSkpKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSAoY3JlYXRlZEltcGxhbnREaWZmID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50RGlmZiBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBkaWZmRXh0IC0gZGlmZkNvcmVJbXBFbmMpICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmQ29yZUltcEVuYykpKSkpIHdoZW4oKGxvZEVuYWJsZWQgJiYgKG5vdCBtYW51YWxMT0QpICYmIChidXR0aW5nR2F0ZXNTQSA+PSAxKSkgd2hlbigobW9kKGJ1dHRpbmdHYXRlc1NBIDIpID09IDApIChleHRlbnNpb24gPSAoY29udGFjdEZMZW5ndGggKyAoKGJ1dHRpbmdHYXRlc1NBIC8gMikgKiBjdXJUZXJtU2hDb25MZW5ndGgpICsgKGJ1dHRpbmdHYXRlc1NBICogY3VyVGVybU9mZnNldCkgKyAoKGJ1dHRpbmdHYXRlc1NBIC8gMikgKiBuZXh0VGVybVNoQ29uTGVuZ3RoKSArIChidXR0aW5nR2F0ZXNTQSAqIG5leHRUZXJtT2Zmc2V0KSArIChidXR0aW5nR2F0ZXNTQSAqIGwpKSkpIHVubGVzcygobW9kKGJ1dHRpbmdHYXRlc1NBIDIpID09IDApIChleHRlbnNpb24gPSAoY29udGFjdEZMZW5ndGggKyAoKChidXR0aW5nR2F0ZXNTQSArIDEpIC8gMikgKiBjdXJUZXJtU2hDb25MZW5ndGgpICsgKChidXR0aW5nR2F0ZXNTQSArIDEpICogY3VyVGVybU9mZnNldCkgKyAoKChidXR0aW5nR2F0ZXNTQSAtIDEpIC8gMikgKiBuZXh0VGVybVNoQ29uTGVuZ3RoKSArICgoYnV0dGluZ0dhdGVzU0EgLSAxKSAqIG5leHRUZXJtT2Zmc2V0KSArIChidXR0aW5nR2F0ZXNTQSAqIGwpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKC0gZXh0ZW5zaW9uKTp5MUNvb3JkKSAoKHgxQ29vcmQgLSBkaWZmRXh0KTp3KSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKC0gKGV4dGVuc2lvbiArIGRpZmZJbXBFbmMpKSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KCh4MUNvb3JkIC0gZGlmZkV4dCkgKHcgKyBkaWZmSW1wRW5jKSkpKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSAoY3JlYXRlZEltcGxhbnREaWZmID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50RGlmZiBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKC0gKGV4dGVuc2lvbiArIGRpZmZDb3JlSW1wRW5jKSkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKHgxQ29vcmQgLSBkaWZmRXh0KSAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHdoZW4oKGxvZEVuYWJsZWQgJiYgbWFudWFsTE9EICYmIChzYSA+IGRpZmZFeHQpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCgtIHNhKTp5MUNvb3JkKSAoKHgxQ29vcmQgLSBkaWZmRXh0KTp3KSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKC0gKHNhICsgZGlmZkltcEVuYykpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKHgxQ29vcmQgLSBkaWZmRXh0KSAodyArIGRpZmZJbXBFbmMpKSkpKSAoY3JlYXRlZEltcGxhbnQxID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50MSBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpIChjcmVhdGVkSW1wbGFudERpZmYgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnREaWZmIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoLSAoc2EgKyBkaWZmQ29yZUltcEVuYykpICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KCh4MUNvb3JkIC0gZGlmZkV4dCkgKHcgKyBkaWZmQ29yZUltcEVuYykpKSkpKSB3aGVuKGxhYmVsTGF5ZXIgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKC0gKHgxQ29vcmQgKyAoZGlmZkV4dCAvIDIuMCkpKSAoeTFDb29yZCArICh3IC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKHdlbGxMYXllciAoeDFXZWxsQ29vcmQgPSAoLSAoeDFDb29yZCArIGRpZmZFeHQgKyB3ZWxsRW5jRGlmZlgpKSkgd2hlbigobG9kRW5hYmxlZCAmJiAobm90IG1hbnVhbExPRCkgJiYgKGJ1dHRpbmdHYXRlc1NBID49IDEpKSAoeDFXZWxsQ29vcmQgPSAoLSAoeDFDb29yZCArIGV4dGVuc2lvbiArIHdlbGxFbmNEaWZmWCkpKSkgd2hlbigobG9kRW5hYmxlZCAmJiBtYW51YWxMT0QgJiYgKHNhID4gZGlmZkV4dCkpICh4MVdlbGxDb29yZCA9ICgtICh4MUNvb3JkICsgc2EgKyB3ZWxsRW5jRGlmZlgpKSkpICh5MVdlbGxDb29yZCA9ICgtICh5MUNvb3JkICsgd2VsbEVuY0RpZmZZKSkpICh5MldlbGxDb29yZCA9ICh5MUNvb3JkICsgdyArIHdlbGxFbmNEaWZmWSkpKSB3aGVuKGlkTGF5ZXIgZm9yZWFjaChsYXllckluZm8gaWRMYXllcnNUYWJsZSAobGF5ZXJOYW1lID0gY2FyKGxheWVySW5mbykpIChsYXllckVuY3MgPSBjYWRyKGxheWVySW5mbykpIChpZEVuY1hMID0gbnRoKDAgbGF5ZXJFbmNzKSkgKGlkRW5jWFIgPSBudGgoMSBsYXllckVuY3MpKSAoaWRFbmNZID0gbnRoKDIgbGF5ZXJFbmNzKSkgKHgxSWRDb29yZCA9IG50aCgwIGNhcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeTFJZENvb3JkID0gbnRoKDEgY2FyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh4MklkQ29vcmQgPSBudGgoMCBjYWRyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh5MklkQ29vcmQgPSBudGgoMSBjYWRyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh4MUlkQ29vcmQgPSAoLSAoeDFDb29yZCArIGRpZmZFeHQgKyBpZEVuY1hMKSkpIHdoZW4oKGxvZEVuYWJsZWQgJiYgKG5vdCBtYW51YWxMT0QpICYmIChidXR0aW5nR2F0ZXNTQSA+PSAxKSkgKHgxSWRDb29yZCA9ICgtICh4MUNvb3JkICsgZXh0ZW5zaW9uICsgaWRFbmNYTCkpKSkgd2hlbigobG9kRW5hYmxlZCAmJiBtYW51YWxMT0QgJiYgKHNhID4gZGlmZkV4dCkpICh4MUlkQ29vcmQgPSAoLSAoeDFDb29yZCArIHNhICsgaWRFbmNYTCkpKSkgKHkxSWRDb29yZCA9ICgtICh5MUNvb3JkICsgaWRFbmNZKSkpICh5MklkQ29vcmQgPSAoeTFDb29yZCArIHcgKyBpZEVuY1kpKSAobGF5ZXJDb29yZHMgPSBsaXN0KCh4MUlkQ29vcmQ6eTFJZENvb3JkKSAoeDJJZENvb3JkOnkySWRDb29yZCkpKSAoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0gPSBsYXllckNvb3JkcykpKSB3aGVuKHNlY0lkTGF5ZXIgZm9yZWFjaChzZWNMYXllckluZm8gc2VjSWRMYXllcnNUYWJsZSAoc2VjTGF5ZXJOYW1lID0gY2FyKHNlY0xheWVySW5mbykpIChzZWNMYXllckVuY3MgPSBjYWRyKHNlY0xheWVySW5mbykpIChzZWNJZEVuY1hMID0gbnRoKDAgc2VjTGF5ZXJFbmNzKSkgKHNlY0lkRW5jWFIgPSBudGgoMSBzZWNMYXllckVuY3MpKSAoc2VjSWRFbmNZID0gbnRoKDIgc2VjTGF5ZXJFbmNzKSkgKHgxU2VjSWRDb29yZCA9IG50aCgwIGNhcihzZWNJZExheWVyc0Nvb3JkVGFibGVbc2VjTGF5ZXJOYW1lXSkpKSAoeTFTZWNJZENvb3JkID0gbnRoKDEgY2FyKHNlY0lkTGF5ZXJzQ29vcmRUYWJsZVtzZWNMYXllck5hbWVdKSkpICh4MlNlY0lkQ29vcmQgPSBudGgoMCBjYWRyKHNlY0lkTGF5ZXJzQ29vcmRUYWJsZVtzZWNMYXllck5hbWVdKSkpICh5MlNlY0lkQ29vcmQgPSBudGgoMSBjYWRyKHNlY0lkTGF5ZXJzQ29vcmRUYWJsZVtzZWNMYXllck5hbWVdKSkpICh4MVNlY0lkQ29vcmQgPSAoLSAoeDFDb29yZCArIGRpZmZFeHQgKyBzZWNJZEVuY1hMKSkpIHdoZW4oKGxvZEVuYWJsZWQgJiYgKG5vdCBtYW51YWxMT0QpICYmIChidXR0aW5nR2F0ZXNTQSA+PSAxKSkgKHgxU2VjSWRDb29yZCA9ICgtICh4MUNvb3JkICsgZXh0ZW5zaW9uICsgc2VjSWRFbmNYTCkpKSkgd2hlbigobG9kRW5hYmxlZCAmJiBtYW51YWxMT0QgJiYgKHNhID4gZGlmZkV4dCkpICh4MVNlY0lkQ29vcmQgPSAoLSAoeDFDb29yZCArIHNhICsgc2VjSWRFbmNYTCkpKSkgKHkxU2VjSWRDb29yZCA9ICgtICh5MUNvb3JkICsgc2VjSWRFbmNZKSkpICh5MlNlY0lkQ29vcmQgPSAoeTFDb29yZCArIHcgKyBzZWNJZEVuY1kpKSAoc2VjTGF5ZXJDb29yZHMgPSBsaXN0KCh4MVNlY0lkQ29vcmQ6eTFTZWNJZENvb3JkKSAoeDJTZWNJZENvb3JkOnkyU2VjSWRDb29yZCkpKSAoc2VjSWRMYXllcnNDb29yZFRhYmxlW3NlY0xheWVyTmFtZV0gPSBzZWNMYXllckNvb3JkcykpIGZvcmVhY2goc2VjTGF5ZXJJbmZvIHNlY0lkTGF5ZXJzVGFibGUgKHNlY0xheWVyTmFtZSA9IGNhcihzZWNMYXllckluZm8pKSAoc2VjTGF5ZXJDb29yZHMgPSBzZWNJZExheWVyc0Nvb3JkVGFibGVbc2VjTGF5ZXJOYW1lXSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHNlY0xheWVyTmFtZSBzZWNMYXllckNvb3JkcykpKSkgd2hlbigobSA+IDEpIHdoZW4oKHNoYXJlZFNvdXJjZSAhPSAiIikgKHNoYXJlZFNyY0lkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIHNoYXJlZFNvdXJjZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKChzaGFyZWRTb3VyY2UgIT0gIiIpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZC9vcGVuIHNoYXJlZCBzb3VyY2UgY29udGFjdCBjZWxsIGAlcyciIHNoYXJlZFNvdXJjZSkpKSB1bmxlc3MoKHNoYXJlZFNyY0lkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgc2hhcmVkU291cmNlKSkpKSB3aGVuKChzaGFyZWREcmFpbiAhPSAiIikgKHNoYXJlZERybklkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIHNoYXJlZERyYWluICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3Moc2hhcmVkRHJuSWQgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kL29wZW4gc2hhcmVkIGRyYWluIGNvbnRhY3QgY2VsbCBgJXMnIiBzaGFyZWREcmFpbikpKSB1bmxlc3MoKHNoYXJlZERybklkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgc2hhcmVkRHJhaW4pKSkpKSAoY05ldCA9IGlmKChjTmV0ID09IHNOZXQpIGROZXQgc05ldCkpIChuZXRMID0gaWYoKG5ldEwgPT0gIlMiKSAiRCIgIlMiKSkgZm9yKG4gMSBtIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciBsaXN0KCh4MUNvb3JkOih5MUNvb3JkIC0gZ2F0ZUV4dCkpICgoeDFDb29yZCArIGwpOih5MUNvb3JkICsgdyArIGdhdGVFeHQpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGdOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciBsaXN0KCh4MUNvb3JkOih5MUNvb3JkICsgdykpICgoeDFDb29yZCArIGwpOih5MUNvb3JkICsgdyArIGdhdGVFeHQpKSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIpIGFjY2Vzc0RpcikgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIGxpc3QoKHgxQ29vcmQ6KHkxQ29vcmQgLSBnYXRlRXh0KSkgKCh4MUNvb3JkICsgbCk6eTFDb29yZCkpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGdOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJib3R0b20iKSBhY2Nlc3NEaXIpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKHgxQ29vcmQgKyBsKTooeTFDb29yZCArIHcpKSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgbCkgKCh5MUNvb3JkICsgdykgKyBkaWZmSW1wRW5jKSkpKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSAoY3JlYXRlZEltcGxhbnREaWZmID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50RGlmZiBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgoeDFDb29yZCArIGwpICgoeTFDb29yZCArIHcpICsgZGlmZkNvcmVJbXBFbmMpKSkpKSB3aGVuKChwb2x5SW1wbGFudCAmJiBpbXBsYW50ICYmIGdhdGVJbXBsYW50KSAoeDFQWWlDb29yZCA9ICh4MUNvb3JkIC0gcG9seUltcFhFbmMpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcG9seUltcGxhbnQgbGlzdCgoeDFQWWlDb29yZDp5MVBZaUNvb3JkKSAoKHgxQ29vcmQgKyBsICsgcG9seUltcFhFbmMpOnkyUFlpQ29vcmQpKSkpICh4MUNvb3JkID0gKHgxQ29vcmQgKyBsKSkgaWYoKGNOZXQgPT0gc05ldCkgdGhlbiAoY3VycmVudENvbnRhY3QgPSBzaGFyZWRTb3VyY2UpIChjdXJyZW50TmV0ID0gc05ldCkgKG9mZnNldCA9IChtaW5TcGFjZU9mZlNldCArIHNyY09mZnNldCkpIChzZWNJZExheWVyID0gc3JjU2VjSWRMYXllcikgd2hlbihzZWNJZExheWVyIChzZWNJZExheWVyc1RhYmxlID0gc3JjU2VjSWRMYXllcnNUYWJsZSkpIGVsc2UgKGN1cnJlbnRDb250YWN0ID0gc2hhcmVkRHJhaW4pIChjdXJyZW50TmV0ID0gZE5ldCkgKG9mZnNldCA9IChtaW5TcGFjZU9mZlNldCArIGRybk9mZnNldCkpIChzZWNJZExheWVyID0gZHJuU2VjSWRMYXllcikgd2hlbihzZWNJZExheWVyIChzZWNJZExheWVyc1RhYmxlID0gZHJuU2VjSWRMYXllcnNUYWJsZSkpKSB3aGVuKCgobiAhPSBtKSAmJiAoY3VycmVudENvbnRhY3QgIT0gIiIpKSBpZigoY05ldCA9PSBzTmV0KSB0aGVuIChjb250YWN0SWQgPSBzaGFyZWRTcmNJZCkgKG9mZnNldCA9IChtaW5TcGFjZU9mZlNldCArIHNyY09mZnNldCkpIGVsc2UgKGNvbnRhY3RJZCA9IHNoYXJlZERybklkKSAob2Zmc2V0ID0gKG1pblNwYWNlT2ZmU2V0ICsgZHJuT2Zmc2V0KSkpIChwYXJhbXMgPSAoY29udGFjdElkfj5wYXJhbWV0ZXJzKSkgKGluc3RQYXJhbXMgPSBsaXN0KGxpc3QoInciICJmbG9hdCIgdykpKSB3aGVuKChwYXJhbXN+PmltcGxhbnQpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBjb250YWN0SW1wUGFyYW0pKSkgd2hlbigocGFyYW1zfj5pbldlbGwpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBjb250YWN0V2VsbFBhcmFtKSkpIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkIHNwcmludGYobmlsICJjJWQiIG4pICgob2Zmc2V0ICsgeDFDb29yZCk6eTFDb29yZCkgIlIwIiAxIGluc3RQYXJhbXMpKSB1bmxlc3MoaW5zdCBlcnJvcihzcHJpbnRmKG5pbCAiRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBgJXMnIiAoY29udGFjdElkfj5jZWxsTmFtZSkpKSkgd2hlbihkaWZmSW1wbGFudCAoZGlmZkltcGxhbnRSb2QgPSAocm9kR2V0T2JqIGluc3QpKSAoZGlmZkltcGxhbnRkYmlkID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBhbnRPUmxheWVyID9mcm9tT2JqIGRpZmZJbXBsYW50Um9kID9zaXplIE9SbGF5ZXJTaXplKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdCgoZGlmZkltcGxhbnRkYmlkLT5kYklkKSkpKSkgKG1hc3RlciA9IChpbnN0fj5tYXN0ZXIpKSB1bmxlc3MoKChtYXN0ZXJ+PnRvcExheWVyKSAmJiAobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSBlcnJvcihzcHJpbnRmKG5pbCAiTWlzc2luZyB0b3BMYXllciBhbmQvb3IgdG9wTGF5ZXJQaW5CYm94IGNlbGwgcHJvcGVydGllcyBpbiBgJXMnIiAoY29udGFjdElkfj5jZWxsTmFtZSkpKSkgKGJCb3ggPSBsaXN0KGxpc3QoKGNhYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyB4MUNvb3JkICsgb2Zmc2V0KSBjYWRhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkgbGlzdCgoY2FhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyB4MUNvb3JkICsgb2Zmc2V0KSBjYWRhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgKG1hc3Rlcn4+dG9wTGF5ZXIpIGJCb3gpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gY05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIpIGFjY2Vzc0Rpcikgd2hlbihsYWJlbExheWVyIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KChjYWFyKGJCb3gpICsgKChjYWFkcihiQm94KSAtIGNhYXIoYkJveCkpIC8gMi4wKSkgKGNhZGFyKGJCb3gpICsgKChjYWRhZHIoYkJveCkgLSBjYWRhcihiQm94KSkgLyAyLjApKSkgbmV0TCAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgbGFiZWxXaWR0aCkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKChvZmZzZXQgKyB4MUNvb3JkKTooeTFDb29yZCArIHcpKSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KChvZmZzZXQgKyB4MUNvb3JkKSAoKHkxQ29vcmQgKyB3KSArIGRpZmZJbXBFbmMpKSkpKSAoY3JlYXRlZEltcGxhbnQxID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50MSBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpIChjcmVhdGVkSW1wbGFudERpZmYgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnREaWZmIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KChvZmZzZXQgKyB4MUNvb3JkKSAoKHkxQ29vcmQgKyB3KSArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHVubGVzcygobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiTWlzc2luZyBkaWZmTGF5ZXJCYm94IGNlbGwgcHJvcGVydGllcyBpbiBgJXMnIiAoY29udGFjdElkfj5jZWxsTmFtZSkpKSkgKHgxQ29vcmQgPSAoKDIuMCAqIG9mZnNldCkgKyAoeDFDb29yZCArIChjYWFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkgLSBjYWFyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkpKSkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKHgxQ29vcmQgLSBvZmZzZXQpOnkxQ29vcmQpICh4MUNvb3JkOih5MUNvb3JkICsgdykpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGNyZWF0ZWRJbXBsYW50dG1wID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIG9mZnNldCkgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCh4MUNvb3JkICgoeTFDb29yZCArIHcpICsgZGlmZkltcEVuYykpKSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkgKGNyZWF0ZWRJbXBsYW50RGlmZiA9IGFwcGVuZChjcmVhdGVkSW1wbGFudERpZmYgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0KSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCh4MUNvb3JkICgoeTFDb29yZCArIHcpICsgZGlmZkNvcmVJbXBFbmMpKSkpKSkgKHgxRGlmZkNvb3JkID0gY2FhcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh4MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FhcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkxRGlmZkNvb3JkID0gY2FkYXIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTJEaWZmQ29vcmQgPSBjYWRhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTJUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFkcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHgyRGlmZkNvb3JkID0gY2FhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeDJUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSB3aGVuKHdlbGxMYXllciAoeTFXZWxsQ29vcmQgPSBtaW4oKC0gbWF4KCh3ZWxsRW5jRGlmZlkgKyB5MURpZmZDb29yZCkgKHdlbGxFbmNUYXBZICsgeTFUYXBDb29yZCkpKSB5MVdlbGxDb29yZCkpICh5MldlbGxDb29yZCA9IG1heCgod2VsbEVuY0RpZmZZICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkyVGFwQ29vcmQpIHkyV2VsbENvb3JkKSkpIHdoZW4oaWRMYXllciBmb3JlYWNoKGxheWVySW5mbyBpZExheWVyc1RhYmxlIChsYXllck5hbWUgPSBjYXIobGF5ZXJJbmZvKSkgKGxheWVyRW5jcyA9IGNhZHIobGF5ZXJJbmZvKSkgKGlkRW5jWEwgPSBudGgoMCBsYXllckVuY3MpKSAoaWRFbmNYUiA9IG50aCgxIGxheWVyRW5jcykpIChpZEVuY1kgPSBudGgoMiBsYXllckVuY3MpKSAoeDFJZENvb3JkID0gbnRoKDAgY2FyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh5MUlkQ29vcmQgPSBudGgoMSBjYXIoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0pKSkgKHgySWRDb29yZCA9IG50aCgwIGNhZHIoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0pKSkgKHkySWRDb29yZCA9IG50aCgxIGNhZHIoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0pKSkgKHkxSWRDb29yZCA9IG1pbigoLSBtYXgoKGlkRW5jWSArIHkxRGlmZkNvb3JkKSAoaWRFbmNZICsgeTFUYXBDb29yZCkpKSB5MUlkQ29vcmQpKSAoeTJJZENvb3JkID0gbWF4KChpZEVuY1kgKyB5MkRpZmZDb29yZCkgKGlkRW5jWSArIHkyVGFwQ29vcmQpIHkySWRDb29yZCkpIChsYXllckNvb3JkcyA9IGxpc3QoKHgxSWRDb29yZDp5MUlkQ29vcmQpICh4MklkQ29vcmQ6eTJJZENvb3JkKSkpIChpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSA9IGxheWVyQ29vcmRzKSkpIHdoZW4oc2VjSWRMYXllciBmb3JlYWNoKHNlY0xheWVySW5mbyBzZWNJZExheWVyc1RhYmxlIChzZWNMYXllck5hbWUgPSBjYXIoc2VjTGF5ZXJJbmZvKSkgKHNlY0xheWVyRW5jcyA9IGNhZHIoc2VjTGF5ZXJJbmZvKSkgKHNlY0lkRW5jWEwgPSBudGgoMCBzZWNMYXllckVuY3MpKSAoc2VjSWRFbmNYUiA9IG50aCgxIHNlY0xheWVyRW5jcykpIChzZWNJZEVuY1kgPSBudGgoMiBzZWNMYXllckVuY3MpKSAoeDFTZWNJZENvb3JkID0geDFDb29yZCkgKHkxU2VjSWRDb29yZCA9ICgtIG1heCgoc2VjSWRFbmNZICsgeTFEaWZmQ29vcmQpIChzZWNJZEVuY1kgKyB5MVRhcENvb3JkKSkpKSAoeDJTZWNJZENvb3JkID0gKHgxU2VjSWRDb29yZCAtICgoMiAqIG9mZnNldCkgKyBtYXgoeDJEaWZmQ29vcmQgeDJUYXBDb29yZCkpKSkgKHkyU2VjSWRDb29yZCA9IG1heCgoc2VjSWRFbmNZICsgeTJEaWZmQ29vcmQpIChzZWNJZEVuY1kgKyB5MlRhcENvb3JkKSkpIChzZWNMYXllckNvb3JkcyA9IGxpc3QoKHgxU2VjSWRDb29yZDp5MVNlY0lkQ29vcmQpICh4MlNlY0lkQ29vcmQ6eTJTZWNJZENvb3JkKSkpIChzZWNJZExheWVyc0Nvb3JkVGFibGVbc2VjTGF5ZXJOYW1lXSA9IHNlY0xheWVyQ29vcmRzKSkgZm9yZWFjaChzZWNMYXllckluZm8gc2VjSWRMYXllcnNUYWJsZSAoc2VjTGF5ZXJOYW1lID0gY2FyKHNlY0xheWVySW5mbykpIChzZWNMYXllckNvb3JkcyA9IHNlY0lkTGF5ZXJzQ29vcmRUYWJsZVtzZWNMYXllck5hbWVdKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgc2VjTGF5ZXJOYW1lIHNlY0xheWVyQ29vcmRzKSkpKSB3aGVuKCgobiAhPSBtKSAmJiAoY3VycmVudENvbnRhY3QgPT0gIiIpKSAob2xkeDFDb29yZCA9IHgxQ29vcmQpICh4MUNvb3JkID0gKCgyLjAgKiBvZmZzZXQpICsgKHgxQ29vcmQgKyBnYXRldG9nYXRlU3BhY2luZykpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgob2xkeDFDb29yZDp5MUNvb3JkKSAoeDFDb29yZDp3KSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gY05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIpIGFjY2Vzc0RpcikgKGRpZmZiQm94ID0gbGlzdCgob2xkeDFDb29yZDp5MUNvb3JkKSAoeDFDb29yZDp3KSkpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoY2FhcihkaWZmYkJveCkgKyAoKGNhYWRyKGRpZmZiQm94KSAtIGNhYXIoZGlmZmJCb3gpKSAvIDIuMCkpIChjYWRhcihkaWZmYkJveCkgKyAoKGNhZGFkcihkaWZmYkJveCkgLSBjYWRhcihkaWZmYkJveCkpIC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoY3JlYXRlZEltcGxhbnR0bXAgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KG9sZHgxQ29vcmQgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCh4MUNvb3JkICh3ICsgZGlmZkltcEVuYykpKSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkgKGNyZWF0ZWRJbXBsYW50RGlmZiA9IGFwcGVuZChjcmVhdGVkSW1wbGFudERpZmYgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KG9sZHgxQ29vcmQgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBkaWZmRXh0KSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmSW1wRW5jKSkpKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSAoY3JlYXRlZEltcGxhbnREaWZmID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50RGlmZiBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBkaWZmRXh0KSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCh4MUNvb3JkICh3ICsgZGlmZkNvcmVJbXBFbmMpKSkpKSAoY05ldCA9IGlmKChjTmV0ID09IHNOZXQpIGROZXQgc05ldCkpIChuZXRMID0gaWYoKG5ldEwgPT0gIlMiKSAiRCIgIlMiKSkpIHdoZW4oKG0gIT0gMSkgd2hlbigoc2hhcmVkU291cmNlICE9ICIiKSAoZGJDbG9zZSBzaGFyZWRTcmNJZCkpIHdoZW4oKHNoYXJlZERyYWluICE9ICIiKSAoZGJDbG9zZSBzaGFyZWREcm5JZCkpKSAoY05ldCA9IGlmKChjTmV0ID09IHNOZXQpIGROZXQgc05ldCkpIChuZXRMID0gaWYoKG5ldEwgPT0gIlMiKSAiRCIgIlMiKSkgaWYoKGNOZXQgPT0gc05ldCkgdGhlbiAob2Zmc2V0ID0gKG1pblNwYWNlT2ZmU2V0ICsgc3JjT2Zmc2V0KSkgKGN1clRlcm1PZmZzZXQgPSBvZmZzZXQpIChuZXh0VGVybU9mZnNldCA9IChtaW5TcGFjZU9mZlNldCArIGRybk9mZnNldCkpIChjdXJUZXJtU2hDb25MZW5ndGggPSBjb250YWN0U0xlbmd0aCkgKG5leHRUZXJtU2hDb25MZW5ndGggPSBjb250YWN0RExlbmd0aCkgKHNlY0lkTGF5ZXIgPSBzcmNTZWNJZExheWVyKSB3aGVuKHNlY0lkTGF5ZXIgKHNlY0lkTGF5ZXJzVGFibGUgPSBzcmNTZWNJZExheWVyc1RhYmxlKSkgZWxzZSAob2Zmc2V0ID0gKG1pblNwYWNlT2ZmU2V0ICsgZHJuT2Zmc2V0KSkgKGN1clRlcm1PZmZzZXQgPSBvZmZzZXQpIChuZXh0VGVybU9mZnNldCA9IChtaW5TcGFjZU9mZlNldCArIHNyY09mZnNldCkpIChjdXJUZXJtU2hDb25MZW5ndGggPSBjb250YWN0RExlbmd0aCkgKG5leHRUZXJtU2hDb25MZW5ndGggPSBjb250YWN0U0xlbmd0aCkgKHNlY0lkTGF5ZXIgPSBkcm5TZWNJZExheWVyKSB3aGVuKHNlY0lkTGF5ZXIgKHNlY0lkTGF5ZXJzVGFibGUgPSBkcm5TZWNJZExheWVyc1RhYmxlKSkpIHdoZW4oKGxhc3RDb250YWN0ICE9ICIiKSAoY29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGxhc3RDb250YWN0ICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoY29udGFjdElkIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZC9vcGVuIGxhc3RDb250YWN0IGNvbnRhY3QgY2VsbCBgJXMnIiBsYXN0Q29udGFjdCkpKSB1bmxlc3MoKGNvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIGxhc3RDb250YWN0KSkpIChwYXJhbXMgPSAoY29udGFjdElkfj5wYXJhbWV0ZXJzKSkgKGluc3RQYXJhbXMgPSBsaXN0KGxpc3QoInciICJmbG9hdCIgdykpKSB3aGVuKChwYXJhbXN+PmltcGxhbnQpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBjb250YWN0SW1wUGFyYW0pKSkgd2hlbigocGFyYW1zfj5pbldlbGwpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBjb250YWN0V2VsbFBhcmFtKSkpIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkIHNwcmludGYobmlsICJjJWQiIG0pICgob2Zmc2V0ICsgeDFDb29yZCk6eTFDb29yZCkgIlIwIiAxIGluc3RQYXJhbXMpKSB1bmxlc3MoaW5zdCBlcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBsYXN0IGNvbnRhY3QiKSkgd2hlbihkaWZmSW1wbGFudCAoZGlmZkltcGxhbnRSb2QgPSAocm9kR2V0T2JqIGluc3QpKSAoZGlmZkltcGxhbnRkYmlkID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBhbnRPUmxheWVyID9mcm9tT2JqIGRpZmZJbXBsYW50Um9kID9zaXplIE9SbGF5ZXJTaXplKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdCgoZGlmZkltcGxhbnRkYmlkLT5kYklkKSkpKSkgdW5sZXNzKGxvZEVuYWJsZWQgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKG9mZnNldCArIHgxQ29vcmQpOih5MUNvb3JkICsgdykpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGNyZWF0ZWRJbXBsYW50dG1wID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKG9mZnNldCArIHgxQ29vcmQpICgoeTFDb29yZCArIHcpICsgZGlmZkltcEVuYykpKSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkgKGNyZWF0ZWRJbXBsYW50RGlmZiA9IGFwcGVuZChjcmVhdGVkSW1wbGFudERpZmYgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KHgxQ29vcmQgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKG9mZnNldCArIHgxQ29vcmQpICgoeTFDb29yZCArIHcpICsgZGlmZkNvcmVJbXBFbmMpKSkpKSkpIHdoZW4obG9kRW5hYmxlZCAoaXNTaW5nbGVTdHJhcHBlZCA9IG5pbCkgKGlzTkRTdHJhcHBlZCA9IG5pbCkgd2hlbihtYW51YWxMT0Qgd2hlbihMT0RDb250YWN0TWFwU1N0cmFwcGVkIGZvcmVhY2gocGFpciBMT0RDb250YWN0TWFwU1N0cmFwcGVkIHdoZW4oKGxhc3RDb250YWN0ID09IGNhcihwYWlyKSkgKGlzU2luZ2xlU3RyYXBwZWQgPSB0KSAoaW5uZXJDb250YWN0ID0gY2RyKHBhaXIpKSkpKSB3aGVuKGlzU2luZ2xlU3RyYXBwZWQgKGRiRGVsZXRlT2JqZWN0IGluc3QpIChkYkNsb3NlIGNvbnRhY3RJZCkgKGlubmVyQ29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGNhcihpbm5lckNvbnRhY3QpICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoKGlubmVyQ29udGFjdElkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgaW5uZXJDb250YWN0KSkpIChpbm5lckNvbnRhY3RMZW5ndGggPSAoY2FhZHIoKGlubmVyQ29udGFjdElkfj5kaWZmTGF5ZXJCYm94KSkgLSBjYWFyKChpbm5lckNvbnRhY3RJZH4+ZGlmZkxheWVyQmJveCkpKSkgKHZpYTFYQ3JkSW5uZXJDb24gPSBpZigoaW5uZXJDb250YWN0SWR+PmJCb3hWaWExKSBhYnMoY2FhcigoaW5uZXJDb250YWN0SWR+PmJCb3hWaWExKSkpIG5pbCkpIChsYXllcjJYQ3JkSW5uZXJDb24gPSBpZigoaW5uZXJDb250YWN0SWR+PmJCb3hMYXllcjIpIGFicyhjYWFyKChpbm5lckNvbnRhY3RJZH4+YkJveExheWVyMikpKSBuaWwpKSAodmlhMlhDcmRJbm5lckNvbiA9IGlmKChpbm5lckNvbnRhY3RJZH4+YkJveFZpYTIpIGFicyhjYWFyKChpbm5lckNvbnRhY3RJZH4+YkJveFZpYTIpKSkgbmlsKSkgKGxheWVyM1hDcmRJbm5lckNvbiA9IGlmKChpbm5lckNvbnRhY3RJZH4+YkJveExheWVyMykgYWJzKGNhYXIoKGlubmVyQ29udGFjdElkfj5iQm94TGF5ZXIzKSkpIG5pbCkpIChsYXllcjFYQ3JkSW5uZXJDb24gPSBpZigoaW5uZXJDb250YWN0SWR+PmRpZmZMYXllckJib3gpIGFicyhjYWFyKChpbm5lckNvbnRhY3RJZH4+ZGlmZkxheWVyQmJveCkpKSBuaWwpKSBpZigobGF5ZXIxWENyZElubmVyQ29uICYmIHZpYTFYQ3JkSW5uZXJDb24pIHRoZW4gKHZpYTFFbmNJbm5lckNvbiA9IGFicygobGF5ZXIxWENyZElubmVyQ29uIC0gdmlhMVhDcmRJbm5lckNvbikpKSkgaWYoKGxheWVyMlhDcmRJbm5lckNvbiAmJiB2aWEyWENyZElubmVyQ29uKSB0aGVuICh2aWEyRW5jSW5uZXJDb24gPSBhYnMoKGxheWVyMVhDcmRJbm5lckNvbiAtIHZpYTJYQ3JkSW5uZXJDb24pKSkpIGlmKCh2aWExRW5jSW5uZXJDb24gJiYgdmlhMUVuY0wpIHRoZW4gKGF2YWlsYWJsZVZpYTFTcGFjZSA9ICh2aWExRW5jSW5uZXJDb24gKyB2aWExRW5jTCkpIGlmKCh2aWExTWluU3BhY2UgPiBhdmFpbGFibGVWaWExU3BhY2UpIHRoZW4gKHJlcXVpcmVkVmlhMVNwID0gKHZpYTFNaW5TcGFjZSAtIGF2YWlsYWJsZVZpYTFTcGFjZSkpIGVsc2UgKHJlcXVpcmVkVmlhMVNwID0gMCkpKSBpZigodmlhMkVuY0lubmVyQ29uICYmIHZpYTJFbmNMKSB0aGVuIChhdmFpbGFibGVWaWEyU3BhY2UgPSAodmlhMkVuY0lubmVyQ29uICsgdmlhMkVuY0wpKSBpZigodmlhMk1pblNwYWNlID4gYXZhaWxhYmxlVmlhMlNwYWNlKSB0aGVuIChyZXF1aXJlZFZpYTJTcCA9ICh2aWEyTWluU3BhY2UgLSBhdmFpbGFibGVWaWEyU3BhY2UpKSBlbHNlIChyZXF1aXJlZFZpYTJTcCA9IDApKSkgd2hlbigocmVxdWlyZWRWaWEyU3AgJiYgcmVxdWlyZWRWaWExU3ApIChyZXF1aXJlZFNwYWNlID0gbWF4KHJlcXVpcmVkVmlhMlNwIHJlcXVpcmVkVmlhMVNwKSkpIHdoZW4oKChub3QgcmVxdWlyZWRWaWEyU3ApICYmIHJlcXVpcmVkVmlhMVNwKSAocmVxdWlyZWRTcGFjZSA9IHJlcXVpcmVkVmlhMVNwKSkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKG9mZnNldCArIHgxQ29vcmQpOih5MUNvb3JkICsgdykpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGNyZWF0ZWRJbXBsYW50dG1wID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKG9mZnNldCArIHgxQ29vcmQpICgoeTFDb29yZCArIHcpICsgZGlmZkltcEVuYykpKSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkgKGNyZWF0ZWRJbXBsYW50RGlmZiA9IGFwcGVuZChjcmVhdGVkSW1wbGFudERpZmYgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KHgxQ29vcmQgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKG9mZnNldCArIHgxQ29vcmQpICgoeTFDb29yZCArIHcpICsgZGlmZkNvcmVJbXBFbmMpKSkpKSkgd2hlbigoKHNiIC0gY29udGFjdExMZW5ndGgpID49IChvZmZzZXQgKyByZXF1aXJlZFNwYWNlICsgaW5uZXJDb250YWN0TGVuZ3RoKSkgKGNvbnRhY3RJZCA9IGlubmVyQ29udGFjdElkKSAoaW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGNvbnRhY3RJZCBuaWwgKChvZmZzZXQgKyB4MUNvb3JkKTp5MUNvb3JkKSAiUjAiIDEgaW5zdFBhcmFtcykpIHVubGVzcyhpbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGAlcyciIGlubmVyQ29udGFjdCkpKSB3aGVuKGRpZmZJbXBsYW50IChkaWZmSW1wbGFudFJvZCA9IChyb2RHZXRPYmogaW5zdCkpIChkaWZmSW1wbGFudGRiaWQgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkltcGFudE9SbGF5ZXIgP2Zyb21PYmogZGlmZkltcGxhbnRSb2QgP3NpemUgT1JsYXllclNpemUpKSAoY3JlYXRlZEltcGxhbnQxID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50MSBsaXN0KChkaWZmSW1wbGFudGRiaWQtPmRiSWQpKSkpKSAoc3RyYXBwZWRDb250YWN0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgbGFzdENvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcygoc3RyYXBwZWRDb250YWN0SWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBsYXN0Q29udGFjdCkpKSAoc3RyYXBwZWRDb250YWN0SW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHN0cmFwcGVkQ29udGFjdElkIG5pbCAoKHgxQ29vcmQgKyAoc2IgLSBjb250YWN0TExlbmd0aCkpOnkxQ29vcmQpICJSMCIgMSBpbnN0UGFyYW1zKSkgdW5sZXNzKHN0cmFwcGVkQ29udGFjdEluc3QgZXJyb3Ioc3ByaW50ZihuaWwgIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgYCVzJyIgbGFzdENvbnRhY3QpKSkgd2hlbihkaWZmSW1wbGFudCAoZGlmZkltcGxhbnRSb2QgPSAocm9kR2V0T2JqIHN0cmFwcGVkQ29udGFjdEluc3QpKSAoZGlmZkltcGxhbnRkYmlkID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBhbnRPUmxheWVyID9mcm9tT2JqIGRpZmZJbXBsYW50Um9kID9zaXplIE9SbGF5ZXJTaXplKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdCgoZGlmZkltcGxhbnRkYmlkLT5kYklkKSkpKSkgKGRiQ2xvc2Ugc3RyYXBwZWRDb250YWN0SWQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKHgxQ29vcmQgKyAob2Zmc2V0ICsgaW5uZXJDb250YWN0TGVuZ3RoKSk6eTFDb29yZCkgKCh4MUNvb3JkICsgKHNiIC0gY29udGFjdExMZW5ndGgpKTp3KSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgKyAob2Zmc2V0ICsgaW5uZXJDb250YWN0TGVuZ3RoKSkgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCgoeDFDb29yZCArIChzYiAtIGNvbnRhY3RMTGVuZ3RoKSkgKHcgKyBkaWZmSW1wRW5jKSkpKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSAoY3JlYXRlZEltcGxhbnREaWZmID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50RGlmZiBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgKyAob2Zmc2V0ICsgaW5uZXJDb250YWN0TGVuZ3RoKSkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyAoc2IgLSBjb250YWN0TExlbmd0aCkpICh3ICsgZGlmZkNvcmVJbXBFbmMpKSkpKSkgdW5sZXNzKCgoc2IgLSBjb250YWN0TExlbmd0aCkgPj0gKG9mZnNldCArIHJlcXVpcmVkU3BhY2UgKyBpbm5lckNvbnRhY3RMZW5ndGgpKSAoc3RyYXBwZWRDb250YWN0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgbGFzdENvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcygoc3RyYXBwZWRDb250YWN0SWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBsYXN0Q29udGFjdCkpKSAoc3RyYXBwZWRDb250YWN0SW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHN0cmFwcGVkQ29udGFjdElkIG5pbCAoKHgxQ29vcmQgKyAoc2IgLSBjb250YWN0TExlbmd0aCkpOnkxQ29vcmQpICJSMCIgMSBpbnN0UGFyYW1zKSkgdW5sZXNzKHN0cmFwcGVkQ29udGFjdEluc3QgZXJyb3Ioc3ByaW50ZihuaWwgIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgYCVzJyIgKHN0cmFwcGVkQ29udGFjdElkfj5jZWxsTmFtZSkpKSkgd2hlbihkaWZmSW1wbGFudCAoZGlmZkltcGxhbnRSb2QgPSAocm9kR2V0T2JqIHN0cmFwcGVkQ29udGFjdEluc3QpKSAoZGlmZkltcGxhbnRkYmlkID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBhbnRPUmxheWVyID9mcm9tT2JqIGRpZmZJbXBsYW50Um9kID9zaXplIE9SbGF5ZXJTaXplKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdCgoZGlmZkltcGxhbnRkYmlkLT5kYklkKSkpKSkgKGNvbnRhY3RJZCA9IHN0cmFwcGVkQ29udGFjdElkKSAoaW5zdCA9IHN0cmFwcGVkQ29udGFjdEluc3QpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKHgxQ29vcmQgKyAoc2IgLSBjb250YWN0TExlbmd0aCkpOncpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGNyZWF0ZWRJbXBsYW50dG1wID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyAoc2IgLSBjb250YWN0TExlbmd0aCkpICh3ICsgZGlmZkltcEVuYykpKSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkgKGNyZWF0ZWRJbXBsYW50RGlmZiA9IGFwcGVuZChjcmVhdGVkSW1wbGFudERpZmYgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KHgxQ29vcmQgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyAoc2IgLSBjb250YWN0TExlbmd0aCkpICh3ICsgZGlmZkNvcmVJbXBFbmMpKSkpKSkpIHVubGVzcyhpc1NpbmdsZVN0cmFwcGVkIHdoZW4oKCgoKHNiID4gMWUtMDYpICYmIChvZmZzZXQgPiAxZS0wNikpIHx8ICgoc2IgPiAxZS0wNikgJiYgKG9mZnNldCA+PSAwLjApKSkgJiYgKHNiID4gKG9mZnNldCArIGNvbnRhY3RMTGVuZ3RoKSkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKChvZmZzZXQgKyB4MUNvb3JkKTooeTFDb29yZCArIHcpKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkICsgb2Zmc2V0ICsgY29udGFjdExMZW5ndGgpOnkxQ29vcmQpICgoeDFDb29yZCArIG9mZnNldCArIGNvbnRhY3RMTGVuZ3RoICsgKHNiIC0gb2Zmc2V0IC0gY29udGFjdExMZW5ndGgpKTp3KSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoY3JlYXRlZEltcGxhbnR0bXAgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KHgxQ29vcmQgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCgob2Zmc2V0ICsgeDFDb29yZCkgKHcgKyBkaWZmSW1wRW5jKSkpKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSAoY3JlYXRlZEltcGxhbnREaWZmID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50RGlmZiBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpKSAoY3JlYXRlZEltcGxhbnR0bXAgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkICsgb2Zmc2V0ICsgY29udGFjdExMZW5ndGgpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyBvZmZzZXQgKyBjb250YWN0TExlbmd0aCArIChzYiAtIG9mZnNldCAtIGNvbnRhY3RMTGVuZ3RoKSArIGRpZmZJbXBFbmMpICh3ICsgZGlmZkltcEVuYykpKSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkgKGNyZWF0ZWRJbXBsYW50RGlmZiA9IGFwcGVuZChjcmVhdGVkSW1wbGFudERpZmYgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KChvZmZzZXQgKyB4MUNvb3JkKSAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgKyBvZmZzZXQgKyBjb250YWN0TExlbmd0aCkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyBvZmZzZXQgKyBjb250YWN0TExlbmd0aCArIChzYiAtIG9mZnNldCAtIGNvbnRhY3RMTGVuZ3RoKSArIGRpZmZDb3JlSW1wRW5jKSAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHdoZW4oKCgoKG9mZnNldCA+IDFlLTA2KSAmJiAoc2IgPj0gMC4wKSkgfHwgKChvZmZzZXQgPiAxZS0wNikgJiYgKHNiID4gMWUtMDYpKSkgJiYgKChvZmZzZXQgKyBjb250YWN0TExlbmd0aCkgPj0gc2IpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKChvZmZzZXQgKyB4MUNvb3JkKTp3KSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KChvZmZzZXQgKyB4MUNvb3JkKSAodyArIGRpZmZJbXBFbmMpKSkpKSAoY3JlYXRlZEltcGxhbnQxID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50MSBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpIChjcmVhdGVkSW1wbGFudERpZmYgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnREaWZmIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KChvZmZzZXQgKyB4MUNvb3JkKSAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpKSkgdW5sZXNzKG1hbnVhbExPRCB1bmxlc3MoKGJ1dHRpbmdHYXRlc1NCID49IDApIHdhcm4oc3ByaW50ZihuaWwgIkNhbm5vdCBzcGVjaWZ5IG5vbi16ZXJvIG51bWJlciBvZiBidXR0aW5nIGdhdGVzIGZvciBTQiAlTFxuIiBidXR0aW5nR2F0ZXNTQikpKSB1bmxlc3MoKGJ1dHRpbmdHYXRlc1NCID49IDEpIChleHRlbnNpb24gPSAob2Zmc2V0ICsgY29udGFjdExMZW5ndGgpKSkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKHgxQ29vcmQgKyBvZmZzZXQpOncpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGNyZWF0ZWRJbXBsYW50dG1wID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyBvZmZzZXQpICh5MUNvb3JkICsgdyArIGRpZmZJbXBFbmMpKSkpKSAoY3JlYXRlZEltcGxhbnQxID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50MSBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpIChjcmVhdGVkSW1wbGFudERpZmYgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnREaWZmIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgb2Zmc2V0KSAoeTFDb29yZCArIHcgKyBkaWZmQ29yZUltcEVuYykpKSkpKSB3aGVuKChidXR0aW5nR2F0ZXNTQiA+PSAwKSB3aGVuKChidXR0aW5nR2F0ZXNTQiA+PSAxKSB3aGVuKExPRENvbnRhY3RNYXBTU3RyYXBwZWQgZm9yZWFjaChwYWlyIExPRENvbnRhY3RNYXBTU3RyYXBwZWQgd2hlbigobGFzdENvbnRhY3QgPT0gY2FyKHBhaXIpKSAoaXNTaW5nbGVTdHJhcHBlZCA9IHQpIChpbm5lckNvbnRhY3QgPSBjZHIocGFpcikpKSkpIHdoZW4oTE9EQ29udGFjdE1hcE5EU3RyYXBwZWQgZm9yZWFjaChwYWlyIExPRENvbnRhY3RNYXBORFN0cmFwcGVkIHdoZW4oKGxhc3RDb250YWN0ID09IGNhcihwYWlyKSkgKGlzTkRTdHJhcHBlZCA9IHQpIChvdXRlckNvbnRhY3QgPSBjZHIocGFpcikpKSkpKSB3aGVuKChpc1NpbmdsZVN0cmFwcGVkICYmIChidXR0aW5nR2F0ZXNTQiA+PSAxKSkgKGRiRGVsZXRlT2JqZWN0IGluc3QpIChkYkNsb3NlIGNvbnRhY3RJZCkgKGNvbnRhY3RJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBjYXIoaW5uZXJDb250YWN0KSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKChjb250YWN0SWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBpbm5lckNvbnRhY3QpKSkgKGluc3QgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBjb250YWN0SWQgbmlsICgoeDFDb29yZCArIG9mZnNldCk6MCkgIlIwIiAxIGluc3RQYXJhbXMpKSB1bmxlc3MoaW5zdCBlcnJvcihzcHJpbnRmKG5pbCAiRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBgJXMnIiBpbm5lckNvbnRhY3QpKSkgd2hlbihkaWZmSW1wbGFudCAoZGlmZkltcGxhbnRSb2QgPSAocm9kR2V0T2JqIGluc3QpKSAoZGlmZkltcGxhbnRkYmlkID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBhbnRPUmxheWVyID9mcm9tT2JqIGRpZmZJbXBsYW50Um9kID9zaXplIE9SbGF5ZXJTaXplKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdCgoZGlmZkltcGxhbnRkYmlkLT5kYklkKSkpKSkgKGlubmVyQ29udGFjdExlbmd0aCA9IChjYWFkcigoY29udGFjdElkfj5kaWZmTGF5ZXJCYm94KSkgLSBjYWFyKChjb250YWN0SWR+PmRpZmZMYXllckJib3gpKSkpIHdoZW4oKGJ1dHRpbmdHYXRlc1NCID49IDEpIHdoZW4oKG1vZChidXR0aW5nR2F0ZXNTQiAyKSA9PSAwKSAoZXh0ZW5zaW9uID0gKChpbm5lckNvbnRhY3RMZW5ndGggKyAoMiAqIGN1clRlcm1PZmZzZXQpKSArICgoKGJ1dHRpbmdHYXRlc1NCIC8gMikgLSAxKSAqIGN1clRlcm1TaENvbkxlbmd0aCkgKyAoKGJ1dHRpbmdHYXRlc1NCIC0gMikgKiBjdXJUZXJtT2Zmc2V0KSArICgoYnV0dGluZ0dhdGVzU0IgLyAyKSAqIG5leHRUZXJtU2hDb25MZW5ndGgpICsgKGJ1dHRpbmdHYXRlc1NCICogbmV4dFRlcm1PZmZzZXQpICsgKGNvbnRhY3RMTGVuZ3RoICsgY3VyVGVybU9mZnNldCkgKyAoYnV0dGluZ0dhdGVzU0IgKiBsKSkpKSB1bmxlc3MoKG1vZChidXR0aW5nR2F0ZXNTQiAyKSA9PSAwKSAoZXh0ZW5zaW9uID0gKChpbm5lckNvbnRhY3RMZW5ndGggKyAoMiAqIGN1clRlcm1PZmZzZXQpKSArICgoKGJ1dHRpbmdHYXRlc1NCIC0gMSkgLyAyKSAqIGN1clRlcm1TaENvbkxlbmd0aCkgKyAoKGJ1dHRpbmdHYXRlc1NCIC0gMSkgKiBjdXJUZXJtT2Zmc2V0KSArICgoKGJ1dHRpbmdHYXRlc1NCIC0gMSkgLyAyKSAqIG5leHRUZXJtU2hDb25MZW5ndGgpICsgKChidXR0aW5nR2F0ZXNTQiAtIDEpICogbmV4dFRlcm1PZmZzZXQpICsgKGNvbnRhY3RMTGVuZ3RoICsgbmV4dFRlcm1PZmZzZXQpICsgKGJ1dHRpbmdHYXRlc1NCICogbCkpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKHgxQ29vcmQgKyAob2Zmc2V0ICsgaW5uZXJDb250YWN0TGVuZ3RoKSk6eTFDb29yZCkgKCh4MUNvb3JkICsgKGV4dGVuc2lvbiAtIGNvbnRhY3RMTGVuZ3RoKSk6dykpKSAob3V0ZXJDb250YWN0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgbGFzdENvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcygob3V0ZXJDb250YWN0SWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBsYXN0Q29udGFjdCkpKSAob3V0ZXJJbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgb3V0ZXJDb250YWN0SWQgbmlsICgoeDFDb29yZCArIChleHRlbnNpb24gLSBjb250YWN0TExlbmd0aCkpOjApICJSMCIgMSBpbnN0UGFyYW1zKSkgdW5sZXNzKG91dGVySW5zdCBlcnJvcihzcHJpbnRmKG5pbCAiRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBgJXMnIiBsYXN0Q29udGFjdCkpKSB3aGVuKGRpZmZJbXBsYW50IChkaWZmSW1wbGFudFJvZCA9IChyb2RHZXRPYmogb3V0ZXJJbnN0KSkgKGRpZmZJbXBsYW50ZGJpZCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmSW1wYW50T1JsYXllciA/ZnJvbU9iaiBkaWZmSW1wbGFudFJvZCA/c2l6ZSBPUmxheWVyU2l6ZSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoKGRpZmZJbXBsYW50ZGJpZC0+ZGJJZCkpKSkpIChkYkNsb3NlIG91dGVyQ29udGFjdElkKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoY3JlYXRlZEltcGxhbnR0bXAgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkICsgb2Zmc2V0ICsgaW5uZXJDb250YWN0TGVuZ3RoKSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgKGV4dGVuc2lvbiAtIGNvbnRhY3RMTGVuZ3RoKSkgKHkxQ29vcmQgKyB3ICsgZGlmZkltcEVuYykpKSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkgKGNyZWF0ZWRJbXBsYW50RGlmZiA9IGFwcGVuZChjcmVhdGVkSW1wbGFudERpZmYgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkICsgb2Zmc2V0ICsgaW5uZXJDb250YWN0TGVuZ3RoKSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgoeDFDb29yZCArIChleHRlbnNpb24gLSBjb250YWN0TExlbmd0aCkpICh5MUNvb3JkICsgdyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHdoZW4oKChub3QgaXNTaW5nbGVTdHJhcHBlZCkgJiYgKGJ1dHRpbmdHYXRlc1NCID49IDEpKSAob3V0ZXJDb250YWN0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgY2FyKG91dGVyQ29udGFjdCkgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcygob3V0ZXJDb250YWN0SWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBvdXRlckNvbnRhY3QpKSkgKG91dGVyQ29udGFjdExlbmd0aCA9IChjYWFkcigob3V0ZXJDb250YWN0SWR+PmRpZmZMYXllckJib3gpKSAtIGNhYXIoKG91dGVyQ29udGFjdElkfj5kaWZmTGF5ZXJCYm94KSkpKSB3aGVuKChidXR0aW5nR2F0ZXNTQiA+PSAxKSB3aGVuKChtb2QoYnV0dGluZ0dhdGVzU0IgMikgPT0gMCkgKGV4dGVuc2lvbiA9ICgoY29udGFjdExMZW5ndGggKyAoMiAqIGN1clRlcm1PZmZzZXQpKSArICgoKGJ1dHRpbmdHYXRlc1NCIC8gMikgLSAxKSAqIGN1clRlcm1TaENvbkxlbmd0aCkgKyAoKGJ1dHRpbmdHYXRlc1NCIC0gMikgKiBjdXJUZXJtT2Zmc2V0KSArICgoYnV0dGluZ0dhdGVzU0IgLyAyKSAqIG5leHRUZXJtU2hDb25MZW5ndGgpICsgKGJ1dHRpbmdHYXRlc1NCICogbmV4dFRlcm1PZmZzZXQpICsgKG91dGVyQ29udGFjdExlbmd0aCArIGN1clRlcm1PZmZzZXQpICsgKGJ1dHRpbmdHYXRlc1NCICogbCkpKSkgdW5sZXNzKChtb2QoYnV0dGluZ0dhdGVzU0IgMikgPT0gMCkgKGV4dGVuc2lvbiA9ICgoY29udGFjdExMZW5ndGggKyAoMiAqIGN1clRlcm1PZmZzZXQpKSArICgoKGJ1dHRpbmdHYXRlc1NCIC0gMSkgLyAyKSAqIGN1clRlcm1TaENvbkxlbmd0aCkgKyAoKGJ1dHRpbmdHYXRlc1NCIC0gMSkgKiBjdXJUZXJtT2Zmc2V0KSArICgoKGJ1dHRpbmdHYXRlc1NCIC0gMSkgLyAyKSAqIG5leHRUZXJtU2hDb25MZW5ndGgpICsgKChidXR0aW5nR2F0ZXNTQiAtIDEpICogbmV4dFRlcm1PZmZzZXQpICsgKG91dGVyQ29udGFjdExlbmd0aCArIG5leHRUZXJtT2Zmc2V0KSArIChidXR0aW5nR2F0ZXNTQiAqIGwpKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkICsgKG9mZnNldCArIGNvbnRhY3RMTGVuZ3RoKSk6eTFDb29yZCkgKCh4MUNvb3JkICsgZXh0ZW5zaW9uKTp3KSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgKyBvZmZzZXQgKyBjb250YWN0TExlbmd0aCkgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCgoeDFDb29yZCArIGV4dGVuc2lvbiArIGRpZmZJbXBFbmMpICh5MUNvb3JkICsgdyArIGRpZmZJbXBFbmMpKSkpKSAoY3JlYXRlZEltcGxhbnQxID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50MSBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpIChjcmVhdGVkSW1wbGFudERpZmYgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnREaWZmIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCArIG9mZnNldCArIGNvbnRhY3RMTGVuZ3RoKSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgoeDFDb29yZCArIGV4dGVuc2lvbiArIGRpZmZDb3JlSW1wRW5jKSAoeTFDb29yZCArIHcgKyBkaWZmQ29yZUltcEVuYykpKSkpKSkpKSAobWFzdGVyID0gKGluc3R+Pm1hc3RlcikpIHVubGVzcygoKG1hc3Rlcn4+dG9wTGF5ZXIpICYmIChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpIGVycm9yKHNwcmludGYobmlsICJNaXNzaW5nIHRvcExheWVyIGFuZC9vciB0b3BMYXllclBpbkJib3ggY2VsbCBwcm9wZXJ0aWVzIGluIGAlcyciIGxhc3RDb250YWN0KSkpIChiQm94ID0gbGlzdChsaXN0KChjYWFyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpICsgeDFDb29yZCArIG9mZnNldCkgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpIGxpc3QoKGNhYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpICsgeDFDb29yZCArIG9mZnNldCkgY2FkYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkpIHdoZW4oKGxvZEVuYWJsZWQgJiYgbWFudWFsTE9EICYmIGlzU2luZ2xlU3RyYXBwZWQpIHVubGVzcygoKHNiIC0gY29udGFjdExMZW5ndGgpID49IChvZmZzZXQgKyByZXF1aXJlZFNwYWNlICsgaW5uZXJDb250YWN0TGVuZ3RoKSkgKGJCb3ggPSBsaXN0KGxpc3QoKGNhYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyB4MUNvb3JkICsgKHNiIC0gY29udGFjdExMZW5ndGgpKSBjYWRhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkgbGlzdCgoY2FhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyB4MUNvb3JkICsgKHNiIC0gY29udGFjdExMZW5ndGgpKSBjYWRhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyAobWFzdGVyfj50b3BMYXllcikgYkJveCkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBjTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAicmlnaHQiKSBhY2Nlc3NEaXIpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoY2FhcihiQm94KSArICgoY2FhZHIoYkJveCkgLSBjYWFyKGJCb3gpKSAvIDIuMCkpIChjYWRhcihiQm94KSArICgoY2FkYWRyKGJCb3gpIC0gY2FkYXIoYkJveCkpIC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSAoeTFEaWZmQ29vcmQgPSBjYWRhcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYXIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MkRpZmZDb29yZCA9IGNhZGFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MlRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeDJEaWZmQ29vcmQgPSBjYWFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh4MlRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpIHVubGVzcyhsb2RFbmFibGVkIHdoZW4od2VsbExheWVyIHVubGVzcygobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQgZGlmZkxheWVyQmJveCBwcm9wZXJ0eSBmb3IgYCVzJyIgbGFzdENvbnRhY3QpKSkgKHkxV2VsbENvb3JkID0gbWluKCgtIG1heCgod2VsbEVuY0RpZmZZICsgeTFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkxVGFwQ29vcmQpKSkgeTFXZWxsQ29vcmQpKSAoeTJXZWxsQ29vcmQgPSBtYXgoKHdlbGxFbmNEaWZmWSArIHkyRGlmZkNvb3JkKSAod2VsbEVuY1RhcFkgKyB5MlRhcENvb3JkKSB5MldlbGxDb29yZCkpICh4MldlbGxDb29yZCA9IChvZmZzZXQgKyB4MUNvb3JkICsgbWF4KCh3ZWxsRW5jRGlmZlggKyB4MkRpZmZDb29yZCkgKHdlbGxFbmNUYXBYICsgeDJUYXBDb29yZCkpKSkpIHdoZW4oaWRMYXllciB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGxhc3RDb250YWN0KSkpIGZvcmVhY2gobGF5ZXJJbmZvIGlkTGF5ZXJzVGFibGUgKGxheWVyTmFtZSA9IGNhcihsYXllckluZm8pKSAobGF5ZXJFbmNzID0gY2FkcihsYXllckluZm8pKSAoaWRFbmNYTCA9IG50aCgwIGxheWVyRW5jcykpIChpZEVuY1hSID0gbnRoKDEgbGF5ZXJFbmNzKSkgKGlkRW5jWSA9IG50aCgyIGxheWVyRW5jcykpICh4MUlkQ29vcmQgPSBudGgoMCBjYXIoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0pKSkgKHkxSWRDb29yZCA9IG50aCgxIGNhcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeDJJZENvb3JkID0gbnRoKDAgY2FkcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeTJJZENvb3JkID0gbnRoKDEgY2FkcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeTFJZENvb3JkID0gbWluKCgtIG1heCgoaWRFbmNZICsgeTFEaWZmQ29vcmQpIChpZEVuY1kgKyB5MVRhcENvb3JkKSkpIHkxSWRDb29yZCkpICh5MklkQ29vcmQgPSBtYXgoKGlkRW5jWSArIHkyRGlmZkNvb3JkKSAoaWRFbmNZICsgeTJUYXBDb29yZCkgeTJJZENvb3JkKSkgKHgySWRDb29yZCA9IChvZmZzZXQgKyB4MUNvb3JkICsgbWF4KChpZEVuY1hSICsgeDJEaWZmQ29vcmQpIChpZEVuY1hSICsgeDJUYXBDb29yZCkpKSkgKGxheWVyQ29vcmRzID0gbGlzdCgoeDFJZENvb3JkOnkxSWRDb29yZCkgKHgySWRDb29yZDp5MklkQ29vcmQpKSkgKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdID0gbGF5ZXJDb29yZHMpKSkgd2hlbihzZWNJZExheWVyIHVubGVzcygobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQgZGlmZkxheWVyQmJveCBwcm9wZXJ0eSBmb3IgYCVzJyIgbGFzdENvbnRhY3QpKSkgZm9yZWFjaChzZWNMYXllckluZm8gc2VjSWRMYXllcnNUYWJsZSAoc2VjTGF5ZXJOYW1lID0gY2FyKHNlY0xheWVySW5mbykpIChzZWNMYXllckVuY3MgPSBjYWRyKHNlY0xheWVySW5mbykpIChzZWNJZEVuY1hMID0gbnRoKDAgc2VjTGF5ZXJFbmNzKSkgKHNlY0lkRW5jWFIgPSBudGgoMSBzZWNMYXllckVuY3MpKSAoc2VjSWRFbmNZID0gbnRoKDIgc2VjTGF5ZXJFbmNzKSkgKHgxU2VjSWRDb29yZCA9IHgxQ29vcmQpICh5MVNlY0lkQ29vcmQgPSAoLSBtYXgoKHNlY0lkRW5jWSArIHkxRGlmZkNvb3JkKSAoc2VjSWRFbmNZICsgeTFUYXBDb29yZCkpKSkgKHkyU2VjSWRDb29yZCA9IG1heCgoc2VjSWRFbmNZICsgeTJEaWZmQ29vcmQpIChzZWNJZEVuY1kgKyB5MlRhcENvb3JkKSkpICh4MlNlY0lkQ29vcmQgPSAob2Zmc2V0ICsgeDFDb29yZCArIG1heCgoc2VjSWRFbmNYUiArIHgyRGlmZkNvb3JkKSAoc2VjSWRFbmNYUiArIHgyVGFwQ29vcmQpKSkpIChzZWNMYXllckNvb3JkcyA9IGxpc3QoKHgxU2VjSWRDb29yZDp5MVNlY0lkQ29vcmQpICh4MlNlY0lkQ29vcmQ6eTJTZWNJZENvb3JkKSkpIChzZWNJZExheWVyc0Nvb3JkVGFibGVbc2VjTGF5ZXJOYW1lXSA9IHNlY0xheWVyQ29vcmRzKSkpKSB3aGVuKGxvZEVuYWJsZWQgd2hlbihtYW51YWxMT0Qgd2hlbih3ZWxsTGF5ZXIgdW5sZXNzKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBkaWZmTGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnIiBsYXN0Q29udGFjdCkpKSAoeTFXZWxsQ29vcmQgPSBtaW4oKC0gbWF4KCh3ZWxsRW5jRGlmZlkgKyB5MURpZmZDb29yZCkgKHdlbGxFbmNUYXBZICsgeTFUYXBDb29yZCkpKSB5MVdlbGxDb29yZCkpICh5MldlbGxDb29yZCA9IG1heCgod2VsbEVuY0RpZmZZICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkyVGFwQ29vcmQpIHkyV2VsbENvb3JkKSkgd2hlbihpc1NpbmdsZVN0cmFwcGVkICh4MldlbGxDb29yZCA9ICh4MUNvb3JkICsgKHNiIC0gbWF4KHgyRGlmZkNvb3JkIHgyVGFwQ29vcmQpKSArIG1heCgod2VsbEVuY0RpZmZYICsgeDJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWCArIHgyVGFwQ29vcmQpKSkpKSB1bmxlc3MoaXNTaW5nbGVTdHJhcHBlZCB3aGVuKCgoKHNiID4gMWUtMDYpICYmIChvZmZzZXQgPiAxZS0wNikgJiYgKHNiID4gKG9mZnNldCArIGNvbnRhY3RMTGVuZ3RoKSkpIHx8ICgoc2IgPiAxZS0wNikgJiYgKG9mZnNldCA9PSAwLjApICYmIChzYiA+PSAob2Zmc2V0ICsgY29udGFjdExMZW5ndGgpKSkpICh4MldlbGxDb29yZCA9ICh4MUNvb3JkICsgKHNiIC0gbWF4KHgyRGlmZkNvb3JkIHgyVGFwQ29vcmQpKSArIG1heCgod2VsbEVuY0RpZmZYICsgeDJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWCArIHgyVGFwQ29vcmQpKSkpKSB3aGVuKCgoKG9mZnNldCA+IDFlLTA2KSAmJiAoc2IgPT0gMC4wKSAmJiAoKG9mZnNldCArIGNvbnRhY3RMTGVuZ3RoKSA+PSBzYikpIHx8ICgob2Zmc2V0ID4gMWUtMDYpICYmIChzYiA+IDFlLTA2KSAmJiAoKG9mZnNldCArIGNvbnRhY3RMTGVuZ3RoKSA+PSBzYikpKSAoeDJXZWxsQ29vcmQgPSAoeDFDb29yZCArIG9mZnNldCArIG1heCgod2VsbEVuY0RpZmZYICsgeDJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWCArIHgyVGFwQ29vcmQpKSkpKSkpIHdoZW4oaWRMYXllciB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGxhc3RDb250YWN0KSkpIGZvcmVhY2gobGF5ZXJJbmZvIGlkTGF5ZXJzVGFibGUgKGxheWVyTmFtZSA9IGNhcihsYXllckluZm8pKSAobGF5ZXJFbmNzID0gY2FkcihsYXllckluZm8pKSAoaWRFbmNYTCA9IG50aCgwIGxheWVyRW5jcykpIChpZEVuY1hSID0gbnRoKDEgbGF5ZXJFbmNzKSkgKGlkRW5jWSA9IG50aCgyIGxheWVyRW5jcykpICh4MUlkQ29vcmQgPSBudGgoMCBjYXIoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0pKSkgKHkxSWRDb29yZCA9IG50aCgxIGNhcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeDJJZENvb3JkID0gbnRoKDAgY2FkcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeTJJZENvb3JkID0gbnRoKDEgY2FkcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeTFJZENvb3JkID0gbWluKCgtIG1heCgoaWRFbmNZICsgeTFEaWZmQ29vcmQpIChpZEVuY1kgKyB5MVRhcENvb3JkKSkpIHkxSWRDb29yZCkpICh5MklkQ29vcmQgPSBtYXgoKGlkRW5jWSArIHkyRGlmZkNvb3JkKSAoaWRFbmNZICsgeTJUYXBDb29yZCkgeTJJZENvb3JkKSkgd2hlbihpc1NpbmdsZVN0cmFwcGVkICh4MklkQ29vcmQgPSAoeDFDb29yZCArICgoc2IgLSBtYXgoeDJEaWZmQ29vcmQgeDJUYXBDb29yZCkpICsgbWF4KChpZEVuY1hSICsgeDJEaWZmQ29vcmQpIChpZEVuY1hSICsgeDJUYXBDb29yZCkpKSkpKSB1bmxlc3MoaXNTaW5nbGVTdHJhcHBlZCB3aGVuKCgoKHNiID4gMWUtMDYpICYmIChvZmZzZXQgPiAxZS0wNikgJiYgKHNiID49IChvZmZzZXQgKyBjb250YWN0TExlbmd0aCkpKSB8fCAoKHNiID4gMWUtMDYpICYmIChvZmZzZXQgPj0gMC4wKSAmJiAoc2IgPj0gKG9mZnNldCArIGNvbnRhY3RMTGVuZ3RoKSkpKSAoeDJJZENvb3JkID0gKHgxQ29vcmQgKyAoc2IgLSBtYXgoeDJEaWZmQ29vcmQgeDJUYXBDb29yZCkpICsgbWF4KChpZEVuY1hSICsgeDJEaWZmQ29vcmQpIChpZEVuY1hSICsgeDJUYXBDb29yZCkpKSkpIHdoZW4oKCgob2Zmc2V0ID4gMWUtMDYpICYmIChzYiA+PSAwLjApICYmICgob2Zmc2V0ICsgY29udGFjdExMZW5ndGgpID49IHNiKSkgfHwgKChvZmZzZXQgPiAxZS0wNikgJiYgKHNiID4gMWUtMDYpICYmICgob2Zmc2V0ICsgY29udGFjdExMZW5ndGgpID49IHNiKSkpICh4MklkQ29vcmQgPSAoeDFDb29yZCArIG9mZnNldCArIG1heCgoaWRFbmNYUiArIHgyRGlmZkNvb3JkKSAoaWRFbmNYUiArIHgyVGFwQ29vcmQpKSkpKSkgKGxheWVyQ29vcmRzID0gbGlzdCgoeDFJZENvb3JkOnkxSWRDb29yZCkgKHgySWRDb29yZDp5MklkQ29vcmQpKSkgKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdID0gbGF5ZXJDb29yZHMpKSkgd2hlbihzZWNJZExheWVyIHVubGVzcygobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQgZGlmZkxheWVyQmJveCBwcm9wZXJ0eSBmb3IgYCVzJyIgbGFzdENvbnRhY3QpKSkgZm9yZWFjaChzZWNMYXllckluZm8gc2VjSWRMYXllcnNUYWJsZSAoc2VjTGF5ZXJOYW1lID0gY2FyKHNlY0xheWVySW5mbykpIChzZWNMYXllckVuY3MgPSBjYWRyKHNlY0xheWVySW5mbykpIChzZWNJZEVuY1hMID0gbnRoKDAgc2VjTGF5ZXJFbmNzKSkgKHNlY0lkRW5jWFIgPSBudGgoMSBzZWNMYXllckVuY3MpKSAoc2VjSWRFbmNZID0gbnRoKDIgc2VjTGF5ZXJFbmNzKSkgKHgxU2VjSWRDb29yZCA9IHgxQ29vcmQpICh5MVNlY0lkQ29vcmQgPSAoLSBtYXgoKHNlY0lkRW5jWSArIHkxRGlmZkNvb3JkKSAoc2VjSWRFbmNZICsgeTFUYXBDb29yZCkpKSkgKHkyU2VjSWRDb29yZCA9IG1heCgoc2VjSWRFbmNZICsgeTJEaWZmQ29vcmQpIChzZWNJZEVuY1kgKyB5MlRhcENvb3JkKSkpIHdoZW4oaXNTaW5nbGVTdHJhcHBlZCAoeDJTZWNJZENvb3JkID0gKHgxQ29vcmQgKyAoKHNiIC0gbWF4KHgyRGlmZkNvb3JkIHgyVGFwQ29vcmQpKSArIG1heCgoc2VjSWRFbmNYUiArIHgyRGlmZkNvb3JkKSAoc2VjSWRFbmNYUiArIHgyVGFwQ29vcmQpKSkpKSkgdW5sZXNzKGlzU2luZ2xlU3RyYXBwZWQgd2hlbigoKChzYiA+IDFlLTA2KSAmJiAob2Zmc2V0ID4gMWUtMDYpICYmIChzYiA+PSAob2Zmc2V0ICsgY29udGFjdExMZW5ndGgpKSkgfHwgKChzYiA+IDFlLTA2KSAmJiAob2Zmc2V0ID49IDAuMCkgJiYgKHNiID49IChvZmZzZXQgKyBjb250YWN0TExlbmd0aCkpKSkgKHgyU2VjSWRDb29yZCA9ICh4MUNvb3JkICsgKHNiIC0gbWF4KHgyRGlmZkNvb3JkIHgyVGFwQ29vcmQpKSArIG1heCgoc2VjSWRFbmNYUiArIHgyRGlmZkNvb3JkKSAoc2VjSWRFbmNYUiArIHgyVGFwQ29vcmQpKSkpKSB3aGVuKCgoKG9mZnNldCA+IDFlLTA2KSAmJiAoc2IgPj0gMC4wKSAmJiAoKG9mZnNldCArIGNvbnRhY3RMTGVuZ3RoKSA+PSBzYikpIHx8ICgob2Zmc2V0ID4gMWUtMDYpICYmIChzYiA+IDFlLTA2KSAmJiAoKG9mZnNldCArIGNvbnRhY3RMTGVuZ3RoKSA+PSBzYikpKSAoeDJTZWNJZENvb3JkID0gKHgxQ29vcmQgKyBvZmZzZXQgKyBtYXgoKHNlY0lkRW5jWFIgKyB4MkRpZmZDb29yZCkgKHNlY0lkRW5jWFIgKyB4MlRhcENvb3JkKSkpKSkpIChzZWNMYXllckNvb3JkcyA9IGxpc3QoKHgxU2VjSWRDb29yZDp5MVNlY0lkQ29vcmQpICh4MlNlY0lkQ29vcmQ6eTJTZWNJZENvb3JkKSkpIChzZWNJZExheWVyc0Nvb3JkVGFibGVbc2VjTGF5ZXJOYW1lXSA9IHNlY0xheWVyQ29vcmRzKSkpKSB1bmxlc3MobWFudWFsTE9EIHdoZW4od2VsbExheWVyIHVubGVzcygobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQgZGlmZkxheWVyQmJveCBwcm9wZXJ0eSBmb3IgYCVzJyIgbGFzdENvbnRhY3QpKSkgKHkxV2VsbENvb3JkID0gbWluKCgtIG1heCgod2VsbEVuY0RpZmZZICsgeTFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkxVGFwQ29vcmQpKSkgeTFXZWxsQ29vcmQpKSAoeTJXZWxsQ29vcmQgPSBtYXgoKHdlbGxFbmNEaWZmWSArIHkyRGlmZkNvb3JkKSAod2VsbEVuY1RhcFkgKyB5MlRhcENvb3JkKSB5MldlbGxDb29yZCkpIHdoZW4oaXNTaW5nbGVTdHJhcHBlZCAoeDJXZWxsQ29vcmQgPSAoeDFDb29yZCArIGV4dGVuc2lvbiArIHdlbGxFbmNUYXBYKSkpIHVubGVzcyhpc1NpbmdsZVN0cmFwcGVkICh4MldlbGxDb29yZCA9ICh4MUNvb3JkICsgZXh0ZW5zaW9uICsgd2VsbEVuY0RpZmZYKSkpKSB3aGVuKGlkTGF5ZXIgdW5sZXNzKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBkaWZmTGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnIiBsYXN0Q29udGFjdCkpKSBmb3JlYWNoKGxheWVySW5mbyBpZExheWVyc1RhYmxlIChsYXllck5hbWUgPSBjYXIobGF5ZXJJbmZvKSkgKGxheWVyRW5jcyA9IGNhZHIobGF5ZXJJbmZvKSkgKGlkRW5jWEwgPSBudGgoMCBsYXllckVuY3MpKSAoaWRFbmNYUiA9IG50aCgxIGxheWVyRW5jcykpIChpZEVuY1kgPSBudGgoMiBsYXllckVuY3MpKSAoeDFJZENvb3JkID0gbnRoKDAgY2FyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh5MUlkQ29vcmQgPSBudGgoMSBjYXIoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0pKSkgKHgySWRDb29yZCA9IG50aCgwIGNhZHIoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0pKSkgKHkySWRDb29yZCA9IG50aCgxIGNhZHIoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0pKSkgKHkxSWRDb29yZCA9IG1pbigoLSBtYXgoKGlkRW5jWSArIHkxRGlmZkNvb3JkKSAoaWRFbmNZICsgeTFUYXBDb29yZCkpKSB5MUlkQ29vcmQpKSAoeTJJZENvb3JkID0gbWF4KChpZEVuY1kgKyB5MkRpZmZDb29yZCkgKGlkRW5jWSArIHkyVGFwQ29vcmQpIHkySWRDb29yZCkpICh4MklkQ29vcmQgPSAoeDFDb29yZCArIGV4dGVuc2lvbiArIGlkRW5jWFIpKSAobGF5ZXJDb29yZHMgPSBsaXN0KCh4MUlkQ29vcmQ6eTFJZENvb3JkKSAoeDJJZENvb3JkOnkySWRDb29yZCkpKSAoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0gPSBsYXllckNvb3JkcykpKSB3aGVuKHNlY0lkTGF5ZXIgdW5sZXNzKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBkaWZmTGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnIiBsYXN0Q29udGFjdCkpKSBmb3JlYWNoKHNlY0xheWVySW5mbyBzZWNJZExheWVyc1RhYmxlIChzZWNMYXllck5hbWUgPSBjYXIoc2VjTGF5ZXJJbmZvKSkgKHNlY0xheWVyRW5jcyA9IGNhZHIoc2VjTGF5ZXJJbmZvKSkgKHNlY0lkRW5jWEwgPSBudGgoMCBzZWNMYXllckVuY3MpKSAoc2VjSWRFbmNYUiA9IG50aCgxIHNlY0xheWVyRW5jcykpIChzZWNJZEVuY1kgPSBudGgoMiBzZWNMYXllckVuY3MpKSAoeDFTZWNJZENvb3JkID0geDFDb29yZCkgKHkxU2VjSWRDb29yZCA9ICgtIG1heCgoc2VjSWRFbmNZICsgeTFEaWZmQ29vcmQpIChzZWNJZEVuY1kgKyB5MVRhcENvb3JkKSkpKSAoeTJTZWNJZENvb3JkID0gbWF4KChzZWNJZEVuY1kgKyB5MkRpZmZDb29yZCkgKHNlY0lkRW5jWSArIHkyVGFwQ29vcmQpKSkgKHgyU2VjSWRDb29yZCA9ICh4MUNvb3JkICsgZXh0ZW5zaW9uICsgc2VjSWRFbmNYUikpIChzZWNMYXllckNvb3JkcyA9IGxpc3QoKHgxU2VjSWRDb29yZDp5MVNlY0lkQ29vcmQpICh4MlNlY0lkQ29vcmQ6eTJTZWNJZENvb3JkKSkpIChzZWNJZExheWVyc0Nvb3JkVGFibGVbc2VjTGF5ZXJOYW1lXSA9IHNlY0xheWVyQ29vcmRzKSkpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGNyZWF0ZWRJbXBsYW50dG1wID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyBkaWZmRXh0KSAoKHkxQ29vcmQgKyB3KSArIGRpZmZJbXBFbmMpKSkpKSAoY3JlYXRlZEltcGxhbnQxID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50MSBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpIChjcmVhdGVkSW1wbGFudERpZmYgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnREaWZmIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgZGlmZkV4dCkgKCh5MUNvb3JkICsgdykgKyBkaWZmQ29yZUltcEVuYykpKSkpIChkYkNsb3NlIGNvbnRhY3RJZCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICgoeDFDb29yZCArIGRpZmZFeHQpOih5MUNvb3JkICsgdykpKSkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBjTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAicmlnaHQiKSBhY2Nlc3NEaXIpIHdoZW4oc2VjSWRMYXllciBmb3JlYWNoKHNlY0xheWVySW5mbyBzZWNJZExheWVyc1RhYmxlIChzZWNMYXllck5hbWUgPSBjYXIoc2VjTGF5ZXJJbmZvKSkgKHNlY0xheWVyQ29vcmRzID0gc2VjSWRMYXllcnNDb29yZFRhYmxlW3NlY0xheWVyTmFtZV0pIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBzZWNMYXllck5hbWUgc2VjTGF5ZXJDb29yZHMpKSkgd2hlbigobGFzdENvbnRhY3QgPT0gIiIpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgZGlmZkV4dCArIGRpZmZJbXBFbmMpICgoeTFDb29yZCArIHcpICsgZGlmZkltcEVuYykpKSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkgKGNyZWF0ZWRJbXBsYW50RGlmZiA9IGFwcGVuZChjcmVhdGVkSW1wbGFudERpZmYgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KHgxQ29vcmQgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyBkaWZmRXh0ICsgZGlmZkNvcmVJbXBFbmMpICgoeTFDb29yZCArIHcpICsgZGlmZkNvcmVJbXBFbmMpKSkpKSB3aGVuKChsb2RFbmFibGVkICYmIChub3QgbWFudWFsTE9EKSAmJiAoYnV0dGluZ0dhdGVzU0IgPj0gMSkpIHdoZW4oKG1vZChidXR0aW5nR2F0ZXNTQiAyKSA9PSAwKSAoZXh0ZW5zaW9uID0gKGNvbnRhY3RMTGVuZ3RoICsgKChidXR0aW5nR2F0ZXNTQiAvIDIpICogY3VyVGVybVNoQ29uTGVuZ3RoKSArIChidXR0aW5nR2F0ZXNTQiAqIGN1clRlcm1PZmZzZXQpICsgKChidXR0aW5nR2F0ZXNTQiAvIDIpICogbmV4dFRlcm1TaENvbkxlbmd0aCkgKyAoYnV0dGluZ0dhdGVzU0IgKiBuZXh0VGVybU9mZnNldCkgKyAoYnV0dGluZ0dhdGVzU0IgKiBsKSkpKSB1bmxlc3MoKG1vZChidXR0aW5nR2F0ZXNTQiAyKSA9PSAwKSAoZXh0ZW5zaW9uID0gKGNvbnRhY3RMTGVuZ3RoICsgKCgoYnV0dGluZ0dhdGVzU0IgKyAxKSAvIDIpICogY3VyVGVybVNoQ29uTGVuZ3RoKSArICgoYnV0dGluZ0dhdGVzU0IgKyAxKSAqIGN1clRlcm1PZmZzZXQpICsgKCgoYnV0dGluZ0dhdGVzU0IgLSAxKSAvIDIpICogbmV4dFRlcm1TaENvbkxlbmd0aCkgKyAoKGJ1dHRpbmdHYXRlc1NCIC0gMSkgKiBuZXh0VGVybU9mZnNldCkgKyAoYnV0dGluZ0dhdGVzU0IgKiBsKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkICsgZGlmZkV4dCk6eTFDb29yZCkgKCh4MUNvb3JkICsgZXh0ZW5zaW9uKTooeTFDb29yZCArIHcpKSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgKyBkaWZmRXh0KSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgZXh0ZW5zaW9uICsgZGlmZkltcEVuYykgKCh5MUNvb3JkICsgdykgKyBkaWZmSW1wRW5jKSkpKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSAoY3JlYXRlZEltcGxhbnREaWZmID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50RGlmZiBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgKyBkaWZmRXh0KSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgoeDFDb29yZCArIGV4dGVuc2lvbiArIGRpZmZDb3JlSW1wRW5jKSAoKHkxQ29vcmQgKyB3KSArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHdoZW4oKGxvZEVuYWJsZWQgJiYgbWFudWFsTE9EICYmIChzYiA+IGRpZmZFeHQpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkICsgZGlmZkV4dCk6eTFDb29yZCkgKCh4MUNvb3JkICsgc2IpOih5MUNvb3JkICsgdykpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGNyZWF0ZWRJbXBsYW50dG1wID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCArIGRpZmZFeHQpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyBzYiArIGRpZmZJbXBFbmMpICh3ICsgZGlmZkltcEVuYykpKSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkgKGNyZWF0ZWRJbXBsYW50RGlmZiA9IGFwcGVuZChjcmVhdGVkSW1wbGFudERpZmYgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkICsgZGlmZkV4dCkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyBzYiArIGRpZmZDb3JlSW1wRW5jKSAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoeDFDb29yZCArIChkaWZmRXh0IC8gMi4wKSkgKHkxQ29vcmQgKyAodyAvIDIuMCkpKSBuZXRMICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiBsYWJlbFdpZHRoKSkgd2hlbih3ZWxsTGF5ZXIgKHgyV2VsbENvb3JkID0gKHgxQ29vcmQgKyBkaWZmRXh0ICsgd2VsbEVuY0RpZmZYKSkgd2hlbigobG9kRW5hYmxlZCAmJiAobm90IG1hbnVhbExPRCkgJiYgKGJ1dHRpbmdHYXRlc1NCID49IDEpKSAoeDJXZWxsQ29vcmQgPSAoeDFDb29yZCArIGV4dGVuc2lvbiArIHdlbGxFbmNEaWZmWCkpKSB3aGVuKChsb2RFbmFibGVkICYmIG1hbnVhbExPRCAmJiAoc2IgPiBkaWZmRXh0KSkgKHgyV2VsbENvb3JkID0gKHgxQ29vcmQgKyBzYiArIHdlbGxFbmNEaWZmWCkpKSAoeTJXZWxsQ29vcmQgPSBtYXgoKHkxQ29vcmQgKyB3ICsgd2VsbEVuY0RpZmZZKSB5MldlbGxDb29yZCkpKSB3aGVuKGlkTGF5ZXIgZm9yZWFjaChsYXllckluZm8gaWRMYXllcnNUYWJsZSAobGF5ZXJOYW1lID0gY2FyKGxheWVySW5mbykpIChsYXllckVuY3MgPSBjYWRyKGxheWVySW5mbykpIChpZEVuY1hMID0gbnRoKDAgbGF5ZXJFbmNzKSkgKGlkRW5jWFIgPSBudGgoMSBsYXllckVuY3MpKSAoaWRFbmNZID0gbnRoKDIgbGF5ZXJFbmNzKSkgKHgxSWRDb29yZCA9IG50aCgwIGNhcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeTFJZENvb3JkID0gbnRoKDEgY2FyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh4MklkQ29vcmQgPSBudGgoMCBjYWRyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh5MklkQ29vcmQgPSBudGgoMSBjYWRyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh4MklkQ29vcmQgPSAoeDFDb29yZCArIGRpZmZFeHQgKyBpZEVuY1hSKSkgd2hlbigobG9kRW5hYmxlZCAmJiAobm90IG1hbnVhbExPRCkgJiYgKGJ1dHRpbmdHYXRlc1NCID49IDEpKSAoeDJJZENvb3JkID0gKHgxQ29vcmQgKyBleHRlbnNpb24gKyBpZEVuY1hSKSkpIHdoZW4oKGxvZEVuYWJsZWQgJiYgbWFudWFsTE9EICYmIChzYiA+IGRpZmZFeHQpKSAoeDJJZENvb3JkID0gKHgxQ29vcmQgKyBzYiArIGlkRW5jWFIpKSkgKHkySWRDb29yZCA9IG1heCgoeTFDb29yZCArIHcgKyBpZEVuY1kpIHkySWRDb29yZCkpIChsYXllckNvb3JkcyA9IGxpc3QoKHgxSWRDb29yZDp5MUlkQ29vcmQpICh4MklkQ29vcmQ6eTJJZENvb3JkKSkpIChpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSA9IGxheWVyQ29vcmRzKSkpIHdoZW4oc2VjSWRMYXllciBmb3JlYWNoKHNlY0xheWVySW5mbyBzZWNJZExheWVyc1RhYmxlIChzZWNMYXllck5hbWUgPSBjYXIoc2VjTGF5ZXJJbmZvKSkgKHNlY0xheWVyRW5jcyA9IGNhZHIoc2VjTGF5ZXJJbmZvKSkgKHNlY0lkRW5jWEwgPSBudGgoMCBzZWNMYXllckVuY3MpKSAoc2VjSWRFbmNYUiA9IG50aCgxIHNlY0xheWVyRW5jcykpIChzZWNJZEVuY1kgPSBudGgoMiBzZWNMYXllckVuY3MpKSAoeDFTZWNJZENvb3JkID0geDFDb29yZCkgKHkxU2VjSWRDb29yZCA9ICgtIG1heCgoc2VjSWRFbmNZICsgeTFEaWZmQ29vcmQpIChzZWNJZEVuY1kgKyB5MVRhcENvb3JkKSkpKSAoeDJTZWNJZENvb3JkID0gKHgxQ29vcmQgKyBkaWZmRXh0ICsgc2VjSWRFbmNYUikpIHdoZW4oKGxvZEVuYWJsZWQgJiYgKG5vdCBtYW51YWxMT0QpICYmIChidXR0aW5nR2F0ZXNTQiA+PSAxKSkgKHgyU2VjSWRDb29yZCA9ICh4MUNvb3JkICsgZXh0ZW5zaW9uICsgc2VjSWRFbmNYUikpKSB3aGVuKChsb2RFbmFibGVkICYmIG1hbnVhbExPRCAmJiAoc2IgPiBkaWZmRXh0KSkgKHgyU2VjSWRDb29yZCA9ICh4MUNvb3JkICsgc2IgKyBzZWNJZEVuY1hSKSkpICh5MlNlY0lkQ29vcmQgPSAoeTFDb29yZCArIHcgKyBzZWNJZEVuY1kpKSAoc2VjTGF5ZXJDb29yZHMgPSBsaXN0KCh4MVNlY0lkQ29vcmQ6eTFTZWNJZENvb3JkKSAoeDJTZWNJZENvb3JkOnkyU2VjSWRDb29yZCkpKSAoc2VjSWRMYXllcnNDb29yZFRhYmxlW3NlY0xheWVyTmFtZV0gPSBzZWNMYXllckNvb3JkcykpIGZvcmVhY2goc2VjTGF5ZXJJbmZvIHNlY0lkTGF5ZXJzVGFibGUgKHNlY0xheWVyTmFtZSA9IGNhcihzZWNMYXllckluZm8pKSAoc2VjTGF5ZXJDb29yZHMgPSBzZWNJZExheWVyc0Nvb3JkVGFibGVbc2VjTGF5ZXJOYW1lXSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHNlY0xheWVyTmFtZSBzZWNMYXllckNvb3JkcykpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGNyZWF0ZWRJbXBsYW50MiA9IChkYkxheWVyT3IgdGNDZWxsVmlldyAiZ3JpZCIgY3JlYXRlZEltcGxhbnQxKSkgKGNyZWF0ZWRJbXBsYW50RGlmZjIgPSAoZGJMYXllck9yIHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgY3JlYXRlZEltcGxhbnREaWZmKSkgKGZpcnN0aW1wbGFudCA9IGNhcihjcmVhdGVkSW1wbGFudDIpKSAoZmlyc3RpbXBsYW50RGlmZiA9IGNhcihjcmVhdGVkSW1wbGFudERpZmYyKSkgKGRiQ3JlYXRlUGluIGJOZXQgZmlyc3RpbXBsYW50ICJiIikgZm9yZWFjaChkaWZmSW1wbGFudFNoYXBlMiBjcmVhdGVkSW1wbGFudERpZmYgKGRiRGVsZXRlT2JqZWN0IGRpZmZJbXBsYW50U2hhcGUyKSkpIHdoZW4od2VsbExheWVyICh3ZWxsTGF5ZXJfWG9yaWdpbiA9IHgxV2VsbENvb3JkKSAod2VsbExheWVyX1lvcmlnaW4gPSAoeTFXZWxsQ29vcmQgKyAoLSB3ZWxsRW5jWURpZmYpKSkgKHdlbGxMYXllcl9YZW5kID0geDJXZWxsQ29vcmQpICh3ZWxsTGF5ZXJfWWVuZCA9ICh5MldlbGxDb29yZCArIHdlbGxFbmNZRGlmZikpIHdoZW4oKCh3ZWxsTGF5ZXJfWGVuZCAtIHdlbGxMYXllcl9Yb3JpZ2luKSA8IHdlbGxtaW5XaWR0aCkgKERpZmZfd2VsbF93aWR0aCA9ICh3ZWxsbWluV2lkdGggLSAod2VsbExheWVyX1hlbmQgLSB3ZWxsTGF5ZXJfWG9yaWdpbikpKSAoeDJXZWxsQ29vcmQgPSAoeDJXZWxsQ29vcmQgKyAoRGlmZl93ZWxsX3dpZHRoIC8gMikpKSAoeDFXZWxsQ29vcmQgPSAoeDFXZWxsQ29vcmQgLSAoRGlmZl93ZWxsX3dpZHRoIC8gMikpKSkgd2hlbigoKHdlbGxMYXllcl9ZZW5kIC0gd2VsbExheWVyX1lvcmlnaW4pIDwgd2VsbG1pbldpZHRoKSAoRGlmZl93ZWxsX3dpZHRoID0gKHdlbGxtaW5XaWR0aCAtICh3ZWxsTGF5ZXJfWWVuZCAtIHdlbGxMYXllcl9Zb3JpZ2luKSkpICh5MVdlbGxDb29yZCA9ICh5MVdlbGxDb29yZCAtIChEaWZmX3dlbGxfd2lkdGggLyAyKSkpICh5MldlbGxDb29yZCA9ICh5MldlbGxDb29yZCArIChEaWZmX3dlbGxfd2lkdGggLyAyKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgd2VsbExheWVyIGxpc3QoKHgxV2VsbENvb3JkOih5MVdlbGxDb29yZCArICgtIHdlbGxFbmNZRGlmZikpKSAoeDJXZWxsQ29vcmQ6KHkyV2VsbENvb3JkICsgd2VsbEVuY1lEaWZmKSkpKSkgd2hlbihpZExheWVyIGZvcmVhY2gobGF5ZXJJbmZvIGlkTGF5ZXJzVGFibGUgKGxheWVyTmFtZSA9IGNhcihsYXllckluZm8pKSAobGF5ZXJDb29yZHMgPSBpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyTmFtZSBsYXllckNvb3JkcykpKSkAKGRpZmZMYXllciBnYXRlTGF5ZXIgd2VsbExheWVyIHdlbGxtaW5XaWR0aCBkaWZmRXh0IHdlbGxFbmNEaWZmIHdlbGxFbmNUYXAgd2VsbExheWVyV2lkdGggbGFiZWxMYXllciBsYWJlbFdpZHRoIGRpZmZJbXBsYW50IGRpZmZJbXBFbmMgZGlmZkNvcmVJbXBsYW50IGRpZmZDb3JlSW1wRW5jIHBvbHlJbXBsYW50IHBvbHlJbXBYRW5jIHBvbHlJbXBZRW5jIHZpYTFNaW5TcGFjZSB2aWEyTWluU3BhY2UgbGF5ZXIyTWluU3BhY2UgbGF5ZXIzTWluU3BhY2Ugc25hcEdyaWQgaW1wbGFudCB0YXBMYXllciB0YXBJbXBsYW50IHRhcEltcEVuYyBsb2RFbmFibGVkIGhzcGljZU1vZGVsQ2hvaWNlcyBzb3VyY2VGaXJzdCBzaGFyZWREcmFpbiBzaGFyZWRTb3VyY2UgbGFzdENvbnRhY3QgZmlyc3RDb250YWN0IGdhdGVFeHQgaWRMYXllcnNUYWJsZSBzcmNTZWNJZExheWVyc1RhYmxlIGRyblNlY0lkTGF5ZXJzVGFibGUgaHNwaWNlTW9kZWwgc3JjT2Zmc2V0IGRybk9mZnNldCBtIGwgdyBnYXRldG9nYXRlU3BhY2luZyBnYXRlSW1wbGFudCBtYW51YWxMT0Qgc2Egc2Igc2QgYnV0dGluZ0dhdGVzU0EgYnV0dGluZ0dhdGVzU0IgTE9EQ29udGFjdE1hcFNTdHJhcHBlZCBMT0RDb250YWN0TWFwTkRTdHJhcHBlZCBub0NvbnRhY3RMT0Qgdm9sdGFnZUNob2ljZXMgZGlmZkltcGFudE9SbGF5ZXIgT1JsYXllclNpemUgY3JlYXRlZEltcGxhbnQxIGNyZWF0ZWRJbXBsYW50RGlmZiBzZWNJZExheWVyc1RhYmxlIHdlbGxFbmNZRGlmZiB3ZWxsV2lkdGggaWRMYXllciBzcmNTZWNJZExheWVyIGRyblNlY0lkTGF5ZXIgZ05ldCBzTmV0IGROZXQgYk5ldCBjTmV0IG5ldEwgc2VjSWRMYXllciBjb250YWN0RiBjb250YWN0TCBjb250YWN0RCBjb250YWN0UyBjb250YWN0Rkxlbmd0aCBjb250YWN0TExlbmd0aCBjb250YWN0RExlbmd0aCBjb250YWN0U0xlbmd0aCB2aWExWENyZEYgbGF5ZXIyWENyZEYgdmlhMlhDcmRGIGxheWVyM1hDcmRGIGxheWVyMVhDcmRGIHZpYTFYQ3JkTCBsYXllcjJYQ3JkTCB2aWEyWENyZEwgbGF5ZXIzWENyZEwgbGF5ZXIxWENyZEwgdmlhMVhDcmRTIGxheWVyMlhDcmRTIHZpYTJYQ3JkUyBsYXllcjNYQ3JkUyBsYXllcjFYQ3JkUyB2aWExWENyZEQgbGF5ZXIyWENyZEQgdmlhMlhDcmREIGxheWVyM1hDcmREIGxheWVyMVhDcmREIHZpYTFFbmNGIHZpYTJFbmNGIGxheWVyMkVuY0YgbGF5ZXIzRW5jRiB2aWExRW5jTCB2aWEyRW5jTCBsYXllcjJFbmNMIGxheWVyM0VuY0wgdmlhMUVuY1MgdmlhMkVuY1MgbGF5ZXIyRW5jUyBsYXllcjNFbmNTIHZpYTFFbmNEIHZpYTJFbmNEIGxheWVyMkVuY0QgbGF5ZXIzRW5jRCB2aWExU3BhY2VGTCB2aWExT2ZmU2V0RkwgdmlhMlNwYWNlRkwgdmlhMk9mZlNldEZMIGxheWVyM1NwYWNlRkwgbGF5ZXIzT2ZmU2V0RkwgbGF5ZXIyU3BhY2VGTCBsYXllcjJPZmZTZXRGTCB2aWExU3BhY2VGUyB2aWExT2ZmU2V0RlMgdmlhMlNwYWNlRlMgdmlhMk9mZlNldEZTIGxheWVyM1NwYWNlRlMgbGF5ZXIzT2ZmU2V0RlMgbGF5ZXIyU3BhY2VGUyBsYXllcjJPZmZTZXRGUyB2aWExU3BhY2VGRCB2aWExT2ZmU2V0RkQgdmlhMlNwYWNlRkQgdmlhMk9mZlNldEZEIGxheWVyM1NwYWNlRkQgbGF5ZXIzT2ZmU2V0RkQgbGF5ZXIyU3BhY2VGRCBsYXllcjJPZmZTZXRGRCB2aWExU3BhY2VMUyB2aWExT2ZmU2V0TFMgdmlhMlNwYWNlTFMgdmlhMk9mZlNldExTIGxheWVyM1NwYWNlTFMgbGF5ZXIzT2ZmU2V0TFMgbGF5ZXIyU3BhY2VMUyBsYXllcjJPZmZTZXRMUyB2aWExU3BhY2VMRCB2aWExT2ZmU2V0TEQgdmlhMlNwYWNlTEQgdmlhMk9mZlNldExEIGxheWVyM1NwYWNlTEQgbGF5ZXIzT2ZmU2V0TEQgbGF5ZXIyU3BhY2VMRCBsYXllcjJPZmZTZXRMRCB2aWExU3BhY2VTRCB2aWExT2ZmU2V0U0QgdmlhMlNwYWNlU0QgdmlhMk9mZlNldFNEIGxheWVyM1NwYWNlU0QgbGF5ZXIzT2ZmU2V0U0QgbGF5ZXIyU3BhY2VTRCBsYXllcjJPZmZTZXRTRCBtYXhPZmZTZXQgb2Zmc2V0U2lkZSBtaW5TcGFjZU9mZlNldCBjb250YWN0SW1wUGFyYW0gY29udGFjdFdlbGxQYXJhbSB4MUNvb3JkIHkxQ29vcmQgbGFzdFBZaVgxQ29vcmQgeTFQWWlDb29yZCB5MlBZaUNvb3JkIGlkTGF5ZXJzQ29vcmRUYWJsZSBsYXllckluZm8gbGF5ZXJFbmNzIHgxSWRDb29yZCB5MUlkQ29vcmQgeDJJZENvb3JkIHkySWRDb29yZCBsYXllck5hbWUgaWRMYXlDb29yZHMgc2VjSWRMYXllcnNDb29yZFRhYmxlIHNlY0xheWVySW5mbyBzZWNMYXllckVuY3MgeDFTZWNJZENvb3JkIHkxU2VjSWRDb29yZCB4MlNlY0lkQ29vcmQgeTJTZWNJZENvb3JkIHNlY0xheWVyTmFtZSBzZWNJZExheUNvb3JkcyB3ZWxsRW5jRGlmZlkgd2VsbEVuY1RhcFkgd2VsbEVuY0RpZmZYIHdlbGxFbmNUYXBYIGV4dGVuc2lvbiBvZmZzZXQgY3VyVGVybU9mZnNldCBuZXh0VGVybU9mZnNldCBjdXJUZXJtU2hDb25MZW5ndGggbmV4dFRlcm1TaENvbkxlbmd0aCBjb250YWN0SWQgcGFyYW1zIGluc3RQYXJhbXMgaW5zdCBkaWZmSW1wbGFudFJvZCBkaWZmSW1wbGFudGRiaWQgY3JlYXRlZEltcGxhbnR0bXAgaXNTaW5nbGVTdHJhcHBlZCBpc05EU3RyYXBwZWQgcGFpciBpbm5lckNvbnRhY3QgaW5uZXJDb250YWN0SWQgaW5uZXJDb250YWN0TGVuZ3RoIHZpYTFYQ3JkSW5uZXJDb24gbGF5ZXIyWENyZElubmVyQ29uIHZpYTJYQ3JkSW5uZXJDb24gbGF5ZXIzWENyZElubmVyQ29uIGxheWVyMVhDcmRJbm5lckNvbiB2aWExRW5jSW5uZXJDb24gdmlhMkVuY0lubmVyQ29uIGF2YWlsYWJsZVZpYTFTcGFjZSByZXF1aXJlZFZpYTFTcCBhdmFpbGFibGVWaWEyU3BhY2UgcmVxdWlyZWRWaWEyU3AgcmVxdWlyZWRTcGFjZSBzdHJhcHBlZENvbnRhY3RJZCBzdHJhcHBlZENvbnRhY3RJbnN0IG91dGVyQ29udGFjdCBvdXRlckNvbnRhY3RJZCBvdXRlckluc3Qgb3V0ZXJDb250YWN0TGVuZ3RoIG1hc3RlciBiQm94IGRiaWQgcGluaWQgeDFEaWZmQ29vcmQgeDFUYXBDb29yZCB5MkRpZmZDb29yZCB5MlRhcENvb3JkIHkxRGlmZkNvb3JkIHkxVGFwQ29vcmQgeDFXZWxsQ29vcmQgeTFXZWxsQ29vcmQgeTJXZWxsQ29vcmQgaWRFbmNYTCBpZEVuY1hSIGlkRW5jWSBsYXllckNvb3JkcyBzZWNJZEVuY1hMIHNlY0lkRW5jWFIgc2VjSWRFbmNZIHNlY0xheWVyQ29vcmRzIHNoYXJlZFNyY0lkIHNoYXJlZERybklkIG4geDFQWWlDb29yZCBjdXJyZW50Q29udGFjdCBjdXJyZW50TmV0IHgyRGlmZkNvb3JkIHgyVGFwQ29vcmQgb2xkeDFDb29yZCBkaWZmYkJveCB4MldlbGxDb29yZCBjcmVhdGVkSW1wbGFudDIgY3JlYXRlZEltcGxhbnREaWZmMiBmaXJzdGltcGxhbnQgZmlyc3RpbXBsYW50RGlmZiBkaWZmSW1wbGFudFNoYXBlMiB3ZWxsTGF5ZXJfWG9yaWdpbiB3ZWxsTGF5ZXJfWW9yaWdpbiB3ZWxsTGF5ZXJfWGVuZCB3ZWxsTGF5ZXJfWWVuZCBEaWZmX3dlbGxfd2lkdGgpACgoc291cmNlRmlyc3QgIlRSVUUiKSAoc2hhcmVkRHJhaW4gIiIpIChzaGFyZWRTb3VyY2UgIiIpIChsYXN0Q29udGFjdCAiIikgKGZpcnN0Q29udGFjdCAiIikgKGdhdGVFeHQgMC4wKSAoaWRMYXllcnNUYWJsZSBsaXN0KGxpc3QoIm5vbmUiIGxpc3QoMC4wIDAuMCAwLjApKSkpIChzcmNTZWNJZExheWVyc1RhYmxlIGxpc3QobGlzdCgibm9uZSIgbGlzdCgwLjAgMC4wIDAuMCkpKSkgKGRyblNlY0lkTGF5ZXJzVGFibGUgbGlzdChsaXN0KCJub25lIiBsaXN0KDAuMCAwLjAgMC4wKSkpKSAoaHNwaWNlTW9kZWwgIiIpIChzcmNPZmZzZXQgMC4wKSAoZHJuT2Zmc2V0IDAuMCkgKG0gMSkgKGwgMC4wKSAodyAwLjApIChnYXRldG9nYXRlU3BhY2luZyAwLjApIChnYXRlSW1wbGFudCAiRkFMU0UiKSAobWFudWFsTE9EICJGQUxTRSIpIChzYSAwLjApIChzYiAwLjApIChzZCAwLjApIChidXR0aW5nR2F0ZXNTQSAwKSAoYnV0dGluZ0dhdGVzU0IgMCkgKExPRENvbnRhY3RNYXBTU3RyYXBwZWQgbmlsKSAoTE9EQ29udGFjdE1hcE5EU3RyYXBwZWQgbmlsKSAobm9Db250YWN0TE9EIDAuMCkgKHZvbHRhZ2VDaG9pY2VzIGxpc3QoIm5vcm1hbCIpKSkAKChkaWZmTGF5ZXIgImhpbGl0ZSIpIChnYXRlTGF5ZXIgIm1hcmtlciIpICh3ZWxsTGF5ZXIgbmlsKSAod2VsbG1pbldpZHRoIDAuMCkgKGRpZmZFeHQgMC4wKSAod2VsbEVuY0RpZmYgMC4wKSAod2VsbEVuY1RhcCAwLjApICh3ZWxsTGF5ZXJXaWR0aCAwLjApIChsYWJlbExheWVyIGxpc3QoInRleHQiICJkcmF3aW5nIikpIChsYWJlbFdpZHRoIDAuNCkgKGRpZmZJbXBsYW50IG5pbCkgKGRpZmZJbXBFbmMgMC4wKSAoZGlmZkNvcmVJbXBsYW50IG5pbCkgKGRpZmZDb3JlSW1wRW5jIDAuMCkgKHBvbHlJbXBsYW50IG5pbCkgKHBvbHlJbXBYRW5jIDAuMCkgKHBvbHlJbXBZRW5jIDAuMCkgKHZpYTFNaW5TcGFjZSAwLjApICh2aWEyTWluU3BhY2UgMC4wKSAobGF5ZXIyTWluU3BhY2UgMC4wKSAobGF5ZXIzTWluU3BhY2UgMC4wKSAoc25hcEdyaWQgKFRFQ0hnZXRQcm9wIHNuYXBHcmlkKSkgKGltcGxhbnQgdCkgKHRhcExheWVyIGxpc3QoInRhcCIgImRyYXdpbmciKSkgKHRhcEltcGxhbnQgbmlsKSAodGFwSW1wRW5jIDAuMCkgKGxvZEVuYWJsZWQgbmlsKSAoaHNwaWNlTW9kZWxDaG9pY2VzIG5pbCkpACgobSA9IG1heCgxIG0pKSAoc3JjVW5kZXJQb2x5ID0gKGwgKyBtaW5TcGFjZVNyY092ZXJXZWxsKSkgKGwgPSAoc3JjVW5kZXJQb2x5ICsgcG9seUV4dFNvdXJjZSkpIGlmKChjb250YWN0cyAhPSAibm8gY29udGFjdHMiKSB0aGVuIChzcmNFeHRGcm9tUG9seSA9IG1heChzcmNFeHRGcm9tUG9seSAoKDIgKiBtaW5FbmNWaWEwU3JjWCkgKyB2aWEwV2lkdGgpKSkgKG1pbkRybldpZHRoID0gbWF4KG1pbkRybldpZHRoICgoMiAqIG1pbkVuY1ZpYTBEcm5YKSArIHZpYTBXaWR0aCkpKSAoZW5kVGFwV2lkdGggPSBtYXgoZW5kVGFwV2lkdGggKCgyICogbWluRW5jVmlhMERyblgpICsgdmlhMFdpZHRoKSkpKSBmb3IobiAxIG0gaWYoKChuID09IDEpIHx8ICgobiA9PSBtKSAmJiAobW9kKG0gMikgPT0gMCkpKSB0aGVuIChzcmNFeHRXaWR0aCA9IHNyY0V4dEZyb21Qb2x5KSBlbHNlIChzcmNFeHRXaWR0aCA9IHNoYXJlZFNyY1dpZHRoKSkgKGdhdGVEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGdhdGVMYXllciA/d2lkdGggbCA/bGVuZ3RoICgoMiAqIGdhdGVFeHQpICsgdykgP3BpbiB0ID90ZXJtTmFtZSAiRyIgP3Rlcm1JT1R5cGUgImlucHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpKSkgaWYoKG4gPT0gMSkgdGhlbiAoZ2F0ZURyYXdpbmdQcmV2ID0gZ2F0ZURyYXdpbmcpKSBpZigobiAhPSAxKSB0aGVuIGlmKChtb2QobiAyKSA9PSAwKSB0aGVuIChyb2RBbGlnbiA/YWxpZ25PYmogZ2F0ZURyYXdpbmcgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBnYXRlRHJhd2luZ1ByZXYgP3JlZkhhbmRsZSAiY1IiID94U2VwICgoMiAqIChtaW5TcGFjZVNyY0RybiAtIChsIC0gc3JjVW5kZXJQb2x5KSkpICsgbWluRHJuV2lkdGgpKSBlbHNlIChyb2RBbGlnbiA/YWxpZ25PYmogZ2F0ZURyYXdpbmcgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBnYXRlRHJhd2luZ1ByZXYgP3JlZkhhbmRsZSAiY1IiID94U2VwIHNyY0V4dFdpZHRoKSkpIChzb3VyY2VEaWZmID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHNyY0xheWVyID93aWR0aCAoc3JjRXh0V2lkdGggKyBzcmNVbmRlclBvbHkpID9sZW5ndGggdykpIGlmKChzcmNJbXBsYW50ICE9IG5pbCkgdGhlbiAoc291cmNlSW1wbGFudCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBzcmNJbXBsYW50ID93aWR0aCAoc3JjRXh0V2lkdGggKyBzcmNVbmRlclBvbHkgKyAoMiAqIHNyY0ltcGxhbnRFbmMpKSA/bGVuZ3RoICh3ICsgKDIgKiBzcmNJbXBsYW50RW5jKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIHNvdXJjZUltcGxhbnQgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBzb3VyY2VEaWZmID9yZWZIYW5kbGUgImNDIikpIGlmKChtb2QobiAyKSA9PSAxKSB0aGVuIChyb2RBbGlnbiA/YWxpZ25PYmogc291cmNlRGlmZiA/YWxpZ25IYW5kbGUgImNMIiA/cmVmT2JqIGdhdGVEcmF3aW5nID9yZWZIYW5kbGUgImNMIiA/eFNlcCAoLSBzcmNFeHRXaWR0aCkpIGlmKChuID09IDEpIHRoZW4gKGZpcnN0UG9seSA9IHNvdXJjZURpZmYpKSBpZigoY29udGFjdHMgPT0gIm5vIGNvbnRhY3RzIikgdGhlbiAoc291cmNlUGluID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHNyY0xheWVyID93aWR0aCBzcmNFeHRXaWR0aCA/bGVuZ3RoIHcgP3BpbiB0ID90ZXJtTmFtZSAiUyIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpID9waW5MYWJlbCB0ID9waW5MYWJlbEhlaWdodCAwLjEgP3BpbkxhYmVsTGF5ZXIgbGlzdCgidGV4dCIgImRyYXdpbmciKSA/cGluTGFiZWxGb250ICJyb21hbiIpKSAocm9kQWxpZ24gP2FsaWduT2JqIHNvdXJjZVBpbiA/YWxpZ25IYW5kbGUgImNMIiA/cmVmT2JqIHNvdXJjZURpZmYgP3JlZkhhbmRsZSAiY0wiKSkgZWxzZSAocm9kQWxpZ24gP2FsaWduT2JqIHNvdXJjZURpZmYgP2FsaWduSGFuZGxlICJjUiIgP3JlZk9iaiBnYXRlRHJhd2luZyA/cmVmSGFuZGxlICJjTCIgP3hTZXAgKHNyY0V4dFdpZHRoICsgbCkpIGlmKChuID09IG0pIHRoZW4gKGxhc3RQb2x5ID0gc291cmNlRGlmZikpIGlmKChjb250YWN0cyA9PSAibm8gY29udGFjdHMiKSB0aGVuIChzb3VyY2VQaW4gPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgc3JjTGF5ZXIgP3dpZHRoIHNyY0V4dFdpZHRoID9sZW5ndGggdyA/cGluIHQgP3Rlcm1OYW1lICJTIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikgP3BpbkxhYmVsIHQgP3BpbkxhYmVsSGVpZ2h0IDAuMSA/cGluTGFiZWxMYXllciBsaXN0KCJ0ZXh0IiAiZHJhd2luZyIpID9waW5MYWJlbEZvbnQgInJvbWFuIikpIChyb2RBbGlnbiA/YWxpZ25PYmogc291cmNlUGluID9hbGlnbkhhbmRsZSAiY1IiID9yZWZPYmogc291cmNlRGlmZiA/cmVmSGFuZGxlICJjUiIpKSkgaWYoKChuID09IDEpICYmIChwRmV0ID09IHQpKSB0aGVuICh3ZWxsV2lkdGggPSBtYXgobndlbGxFbmNEbndlbGwgKG53ZWxsRW5jRG53ZWxsICsgKGRud2VsbEVuY053ZWxsIC0gKHNyY0V4dFdpZHRoICsgKHNyY1VuZGVyUG9seSAtIG1pblNwYWNlU3JjT3ZlcldlbGwpKSkpKSkgKG53ZWxsRXh0U291cmNlID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRyYWluV2VsbCA/d2lkdGggd2VsbFdpZHRoID9sZW5ndGggKHcgKyAoMiAqICh3ZWxsRW5jRHJhaW4gKyBud2VsbEVuY0Rud2VsbCArIGRud2VsbEVuY053ZWxsKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBud2VsbEV4dFNvdXJjZSA/YWxpZ25IYW5kbGUgImNSIiA/cmVmT2JqIHNvdXJjZURpZmYgP3JlZkhhbmRsZSAiY0wiKSAoZmlyc3RQb2x5ID0gbndlbGxFeHRTb3VyY2UpIGlmKChkbldlbGwgIT0gbmlsKSB0aGVuIChkbndlbGxXaWR0aCA9IChkbndlbGxFbmNOd2VsbCAtIChzcmNFeHRXaWR0aCArIChzcmNVbmRlclBvbHkgLSBtaW5TcGFjZVNyY092ZXJXZWxsKSkpKSBpZigoZG53ZWxsV2lkdGggPiAwKSB0aGVuIChkbndlbGxFeHRTb3VyY2UgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZG5XZWxsID93aWR0aCBkbndlbGxXaWR0aCA/bGVuZ3RoICh3ICsgKDIgKiAod2VsbEVuY0RyYWluICsgZG53ZWxsRW5jTndlbGwpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGRud2VsbEV4dFNvdXJjZSA/YWxpZ25IYW5kbGUgImNSIiA/cmVmT2JqIHNvdXJjZURpZmYgP3JlZkhhbmRsZSAiY0wiKSkpKSBpZigocEZldCA9PSBuaWwpIHRoZW4gaWYoKChtb2QobiAyKSA9PSAxKSAmJiAobiA9PSBtKSkgdGhlbiAoYmV2ZWxEcmFpbldlbGwgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgZHJhaW5XZWxsID9wdHMgbGlzdChsaXN0KHdlbGxCZXZlbCAwLjApIGxpc3QoKCh3ZWxsRW5jRHJhaW4gKyBtaW5TcGFjZVNyY0RybiArIG1pbkRybldpZHRoICsgbWluU3BhY2VTcmNPdmVyV2VsbCkgLSB3ZWxsQmV2ZWwpIDAuMCkgbGlzdCgod2VsbEVuY0RyYWluICsgbWluU3BhY2VTcmNEcm4gKyBtaW5Ecm5XaWR0aCArIG1pblNwYWNlU3JjT3ZlcldlbGwpIHdlbGxCZXZlbCkgbGlzdCgod2VsbEVuY0RyYWluICsgbWluU3BhY2VTcmNEcm4gKyBtaW5Ecm5XaWR0aCArIG1pblNwYWNlU3JjT3ZlcldlbGwpICgoKDIgKiB3ZWxsRW5jRHJhaW4pICsgdykgLSB3ZWxsQmV2ZWwpKSBsaXN0KCgod2VsbEVuY0RyYWluICsgbWluU3BhY2VTcmNEcm4gKyBtaW5Ecm5XaWR0aCArIG1pblNwYWNlU3JjT3ZlcldlbGwpIC0gd2VsbEJldmVsKSAoKDIgKiB3ZWxsRW5jRHJhaW4pICsgdykpIGxpc3Qod2VsbEJldmVsICgoMiAqIHdlbGxFbmNEcmFpbikgKyB3KSkgbGlzdCgwLjAgKCgoMiAqIHdlbGxFbmNEcmFpbikgKyB3KSAtIHdlbGxCZXZlbCkpIGxpc3QoMC4wIHdlbGxCZXZlbCkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBiZXZlbERyYWluV2VsbCA/YWxpZ25IYW5kbGUgImNMIiA/cmVmT2JqIHNvdXJjZURpZmYgP3JlZkhhbmRsZSAiY1IiID94U2VwICgtIG1pblNwYWNlU3JjT3ZlcldlbGwpKSAobGFzdFBvbHkgPSBiZXZlbERyYWluV2VsbCkgZWxzZSAoYmV2ZWxEcmFpbldlbGwgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgZHJhaW5XZWxsID9wdHMgbGlzdChsaXN0KHdlbGxCZXZlbCAwLjApIGxpc3QoKCgoMiAqIG1pblNwYWNlU3JjRHJuKSArIG1pbkRybldpZHRoICsgKDIgKiBtaW5TcGFjZVNyY092ZXJXZWxsKSkgLSB3ZWxsQmV2ZWwpIDAuMCkgbGlzdCgoKDIgKiBtaW5TcGFjZVNyY0RybikgKyBtaW5Ecm5XaWR0aCArICgyICogbWluU3BhY2VTcmNPdmVyV2VsbCkpIHdlbGxCZXZlbCkgbGlzdCgoKDIgKiBtaW5TcGFjZVNyY0RybikgKyBtaW5Ecm5XaWR0aCArICgyICogbWluU3BhY2VTcmNPdmVyV2VsbCkpICgoKDIgKiB3ZWxsRW5jRHJhaW4pICsgdykgLSB3ZWxsQmV2ZWwpKSBsaXN0KCgoKDIgKiBtaW5TcGFjZVNyY0RybikgKyBtaW5Ecm5XaWR0aCArICgyICogbWluU3BhY2VTcmNPdmVyV2VsbCkpIC0gd2VsbEJldmVsKSAoKDIgKiB3ZWxsRW5jRHJhaW4pICsgdykpIGxpc3Qod2VsbEJldmVsICgoMiAqIHdlbGxFbmNEcmFpbikgKyB3KSkgbGlzdCgwLjAgKCgoMiAqIHdlbGxFbmNEcmFpbikgKyB3KSAtIHdlbGxCZXZlbCkpIGxpc3QoMC4wIHdlbGxCZXZlbCkpKSkgaWYoKG1vZChuIDIpID09IDEpIHRoZW4gKHJvZEFsaWduID9hbGlnbk9iaiBiZXZlbERyYWluV2VsbCA/YWxpZ25IYW5kbGUgImNMIiA/cmVmT2JqIHNvdXJjZURpZmYgP3JlZkhhbmRsZSAiY1IiID94U2VwICgtIG1pblNwYWNlU3JjT3ZlcldlbGwpKSBlbHNlIChyb2RBbGlnbiA/YWxpZ25PYmogYmV2ZWxEcmFpbldlbGwgP2FsaWduSGFuZGxlICJjUiIgP3JlZk9iaiBzb3VyY2VEaWZmID9yZWZIYW5kbGUgImNMIiA/eFNlcCBtaW5TcGFjZVNyY092ZXJXZWxsKSkpIGVsc2UgKGNvcm5lck9mV2VsbFggPSAoKHNyY0V4dFdpZHRoICsgc3JjVW5kZXJQb2x5KSAtIG1pblNwYWNlU3JjT3ZlcldlbGwpKSBpZigoKG4gPT0gbSkgJiYgKG1vZChtIDIpID09IDEpKSB0aGVuICh3ZWxsV2lkdGggPSAobWluU3BhY2VTcmNEcm4gKyBtaW5Ecm5XaWR0aCArIHdlbGxFbmNEcmFpbiArIG1pblNwYWNlU3JjT3ZlcldlbGwpKSBlbHNlICh3ZWxsV2lkdGggPSAoKDIgKiAobWluU3BhY2VTcmNEcm4gKyBtaW5TcGFjZVNyY092ZXJXZWxsKSkgKyBtaW5Ecm5XaWR0aCkpKSBpZigobW9kKG4gMikgPT0gMSkgdGhlbiAocEZldERyYWluV2VsbCA9IChyb2RDcmVhdGVQb2x5Z29uID9sYXllciBkcmFpbldlbGwgP3B0cyBsaXN0KGxpc3QoMC4wICh3ICsgd2VsbEVuY0RyYWluICsgZG53ZWxsRW5jTndlbGwgKyBud2VsbEVuY0Rud2VsbCkpIGxpc3QoKGNvcm5lck9mV2VsbFggKyB3ZWxsV2lkdGggKyBud2VsbEVuY0Rud2VsbCArIHdlbGxFeHRIb2xlKSAodyArIHdlbGxFbmNEcmFpbiArIG53ZWxsRW5jRG53ZWxsICsgZG53ZWxsRW5jTndlbGwpKSBsaXN0KChjb3JuZXJPZldlbGxYICsgd2VsbFdpZHRoICsgbndlbGxFbmNEbndlbGwgKyB3ZWxsRXh0SG9sZSkgKDAgLSB3ZWxsRW5jRHJhaW4gLSBud2VsbEVuY0Rud2VsbCAtIGRud2VsbEVuY053ZWxsKSkgbGlzdCgwLjAgKDAgLSB3ZWxsRW5jRHJhaW4gLSBud2VsbEVuY0Rud2VsbCAtIGRud2VsbEVuY053ZWxsKSkgbGlzdCgwLjAgKHdlbGxCZXZlbCAtIHdlbGxFbmNEcmFpbikpIGxpc3QoY29ybmVyT2ZXZWxsWCAod2VsbEJldmVsIC0gd2VsbEVuY0RyYWluKSkgbGlzdCgoY29ybmVyT2ZXZWxsWCArIHdlbGxCZXZlbCkgKC0gd2VsbEVuY0RyYWluKSkgbGlzdCgoKGNvcm5lck9mV2VsbFggKyB3ZWxsV2lkdGgpIC0gd2VsbEJldmVsKSAoLSB3ZWxsRW5jRHJhaW4pKSBsaXN0KChjb3JuZXJPZldlbGxYICsgd2VsbFdpZHRoKSAod2VsbEJldmVsIC0gd2VsbEVuY0RyYWluKSkgbGlzdCgoY29ybmVyT2ZXZWxsWCArIHdlbGxXaWR0aCkgKCh3IC0gd2VsbEJldmVsKSArIHdlbGxFbmNEcmFpbikpIGxpc3QoKChjb3JuZXJPZldlbGxYICsgd2VsbFdpZHRoKSAtIHdlbGxCZXZlbCkgKHcgKyB3ZWxsRW5jRHJhaW4pKSBsaXN0KChjb3JuZXJPZldlbGxYICsgd2VsbEJldmVsKSAod2VsbEVuY0RyYWluICsgdykpIGxpc3QoY29ybmVyT2ZXZWxsWCAoKHcgLSB3ZWxsQmV2ZWwpICsgd2VsbEVuY0RyYWluKSkgbGlzdChjb3JuZXJPZldlbGxYICh3ZWxsQmV2ZWwgLSB3ZWxsRW5jRHJhaW4pKSBsaXN0KDAuMCAod2VsbEJldmVsIC0gd2VsbEVuY0RyYWluKSkpKSkgZWxzZSAocEZldERyYWluV2VsbCA9IChyb2RDcmVhdGVQb2x5Z29uID9sYXllciBkcmFpbldlbGwgP3B0cyBsaXN0KGxpc3QoMC4wICh3ICsgd2VsbEVuY0RyYWluICsgbndlbGxFbmNEbndlbGwgKyBkbndlbGxFbmNOd2VsbCkpIGxpc3QoKC0gKGNvcm5lck9mV2VsbFggKyB3ZWxsV2lkdGggKyB3ZWxsRXh0SG9sZSArIG53ZWxsRW5jRG53ZWxsKSkgKHcgKyB3ZWxsRW5jRHJhaW4gKyBud2VsbEVuY0Rud2VsbCArIGRud2VsbEVuY053ZWxsKSkgbGlzdCgoLSAoY29ybmVyT2ZXZWxsWCArIHdlbGxXaWR0aCArIHdlbGxFeHRIb2xlICsgbndlbGxFbmNEbndlbGwpKSAoMCAtIHdlbGxFbmNEcmFpbiAtIG53ZWxsRW5jRG53ZWxsIC0gZG53ZWxsRW5jTndlbGwpKSBsaXN0KDAuMCAoMCAtIHdlbGxFbmNEcmFpbiAtIG53ZWxsRW5jRG53ZWxsIC0gZG53ZWxsRW5jTndlbGwpKSBsaXN0KDAuMCAod2VsbEJldmVsIC0gd2VsbEVuY0RyYWluKSkgbGlzdCgoLSBjb3JuZXJPZldlbGxYKSAod2VsbEJldmVsIC0gd2VsbEVuY0RyYWluKSkgbGlzdCgoLSAoY29ybmVyT2ZXZWxsWCArIHdlbGxCZXZlbCkpICgtIHdlbGxFbmNEcmFpbikpIGxpc3QoKC0gKChjb3JuZXJPZldlbGxYICsgd2VsbFdpZHRoKSAtIHdlbGxCZXZlbCkpICgtIHdlbGxFbmNEcmFpbikpIGxpc3QoKC0gKGNvcm5lck9mV2VsbFggKyB3ZWxsV2lkdGgpKSAod2VsbEJldmVsIC0gd2VsbEVuY0RyYWluKSkgbGlzdCgoLSAoY29ybmVyT2ZXZWxsWCArIHdlbGxXaWR0aCkpICgodyAtIHdlbGxCZXZlbCkgKyB3ZWxsRW5jRHJhaW4pKSBsaXN0KCgtICgoY29ybmVyT2ZXZWxsWCArIHdlbGxXaWR0aCkgLSB3ZWxsQmV2ZWwpKSAodyArIHdlbGxFbmNEcmFpbikpIGxpc3QoKC0gKGNvcm5lck9mV2VsbFggKyB3ZWxsQmV2ZWwpKSAod2VsbEVuY0RyYWluICsgdykpIGxpc3QoKC0gY29ybmVyT2ZXZWxsWCkgKCh3IC0gd2VsbEJldmVsKSArIHdlbGxFbmNEcmFpbikpIGxpc3QoKC0gY29ybmVyT2ZXZWxsWCkgKHdlbGxCZXZlbCAtIHdlbGxFbmNEcmFpbikpIGxpc3QoMC4wICh3ZWxsQmV2ZWwgLSB3ZWxsRW5jRHJhaW4pKSkpKSkgaWYoKChuID09IG0pICYmIChtb2QobSAyKSA9PSAxKSkgdGhlbiAocm9kQWxpZ24gP2FsaWduT2JqIHBGZXREcmFpbldlbGwgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBzb3VyY2VEaWZmID9yZWZIYW5kbGUgImNMIikgZWxzZSBpZigobW9kKG4gMikgPT0gMSkgdGhlbiAocm9kQWxpZ24gP2FsaWduT2JqIHBGZXREcmFpbldlbGwgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBzb3VyY2VEaWZmID9yZWZIYW5kbGUgImNMIikgZWxzZSAocm9kQWxpZ24gP2FsaWduT2JqIHBGZXREcmFpbldlbGwgP2FsaWduSGFuZGxlICJjUiIgP3JlZk9iaiBzb3VyY2VEaWZmID9yZWZIYW5kbGUgImNSIikpKSBpZihkbldlbGwgdGhlbiBpZigobW9kKG4gMikgPT0gMCkgdGhlbiAocEZldERuV2VsbCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkbldlbGwgP3dpZHRoIChjb3JuZXJPZldlbGxYICsgd2VsbFdpZHRoKSA/bGVuZ3RoICh3ICsgKDIgKiAod2VsbEVuY0RyYWluICsgZG53ZWxsRW5jTndlbGwpKSkpKSBlbHNlIChwRmV0RG5XZWxsID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRuV2VsbCA/d2lkdGggKGNvcm5lck9mV2VsbFggKyB3ZWxsV2lkdGggKyBkbndlbGxFbmNOd2VsbCkgP2xlbmd0aCAodyArICgyICogKHdlbGxFbmNEcmFpbiArIGRud2VsbEVuY053ZWxsKSkpKSkpIGlmKChtb2QobiAyKSA9PSAwKSB0aGVuIChyb2RBbGlnbiA/YWxpZ25PYmogcEZldERuV2VsbCA/YWxpZ25IYW5kbGUgImNSIiA/cmVmT2JqIHBGZXREcmFpbldlbGwgP3JlZkhhbmRsZSAiY1IiKSBlbHNlIChyb2RBbGlnbiA/YWxpZ25PYmogcEZldERuV2VsbCA/YWxpZ25IYW5kbGUgImNMIiA/cmVmT2JqIHBGZXREcmFpbldlbGwgP3JlZkhhbmRsZSAiY0wiKSkpKSAoZXh0ZW5kZWREcmFpbiA9IChyb2RDcmVhdGVQb2x5Z29uID9sYXllciBkcm5MYXllciA/cHRzIGxpc3QobGlzdChkcm5CZXZlbCAwLjApIGxpc3QoKG1pbkRybldpZHRoIC0gZHJuQmV2ZWwpIDAuMCkgbGlzdChtaW5Ecm5XaWR0aCBkcm5CZXZlbCkgbGlzdChtaW5Ecm5XaWR0aCAodyAtIGRybkJldmVsKSkgbGlzdCgobWluRHJuV2lkdGggLSBkcm5CZXZlbCkgdykgbGlzdChkcm5CZXZlbCB3KSBsaXN0KDAuMCAodyAtIGRybkJldmVsKSkgbGlzdCgwLjAgZHJuQmV2ZWwpKSA/cGluIGV2YWwoKGNvbnRhY3RzID09ICJubyBjb250YWN0cyIpKSA/dGVybU5hbWUgIkQiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/cGluTGFiZWwgdCA/cGluTGFiZWxIZWlnaHQgMC4xID9waW5MYWJlbExheWVyIGxpc3QoInRleHQiICJkcmF3aW5nIikgP3BpbkxhYmVsRm9udCAicm9tYW4iKSkgaWYoKG1vZChuIDIpID09IDEpIHRoZW4gKHJvZEFsaWduID9hbGlnbk9iaiBleHRlbmRlZERyYWluID9hbGlnbkhhbmRsZSAiY0wiID9yZWZPYmogc291cmNlRGlmZiA/cmVmSGFuZGxlICJjUiIgP3hTZXAgbWluU3BhY2VTcmNEcm4pIGVsc2UgKHJvZEFsaWduID9hbGlnbk9iaiBleHRlbmRlZERyYWluID9hbGlnbkhhbmRsZSAiY1IiID9yZWZPYmogc291cmNlRGlmZiA/cmVmSGFuZGxlICJjTCIgP3hTZXAgKC0gbWluU3BhY2VTcmNEcm4pKSkgaWYoKGNvbnRhY3RzICE9ICJubyBjb250YWN0cyIpIHRoZW4gKG51bUNvbnRhY3RzID0gKGZsb29yICh3IC8gdmlhMFdpZHRoKSkpIHdoaWxlKCgoKDIgKiBtaW5FbmNWaWEwU3JjWSkgKyAobnVtQ29udGFjdHMgKiB2aWEwV2lkdGgpICsgKChudW1Db250YWN0cyAtIDEpICogdmlhME1pblNwYWNlKSkgPiB3KSAobnVtQ29udGFjdHMgPSAobnVtQ29udGFjdHMgLSAxKSkpIChudW1Db250YWN0c1cgPSAoZmxvb3IgKHNyY0V4dFdpZHRoIC8gdmlhMFdpZHRoKSkpIHdoaWxlKCgoKDIgKiBtaW5FbmNWaWEwU3JjWCkgKyAobnVtQ29udGFjdHNXICogdmlhMFdpZHRoKSArICgobnVtQ29udGFjdHNXIC0gMSkgKiB2aWEwTWluU3BhY2UpKSA+IChzbmFwR3JpZCArIHNyY0V4dFdpZHRoKSkgKG51bUNvbnRhY3RzVyA9IChudW1Db250YWN0c1cgLSAxKSkpICh2aWEwQ29udGFjdHMgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MExheWVyID93aWR0aCAoKDIgKiBtZXQwRW5jVmlhMFgpICsgKChudW1Db250YWN0c1cgLSAxKSAqIHZpYTBNaW5TcGFjZSkgKyAobnVtQ29udGFjdHNXICogdmlhMFdpZHRoKSkgP2xlbmd0aCAoKDIgKiBtYXgobWluRW5jVmlhMFNyY1kgbWV0MEVuY1ZpYTBZKSkgKyAoKG51bUNvbnRhY3RzIC0gMSkgKiB2aWEwTWluU3BhY2UpICsgKG51bUNvbnRhY3RzICogdmlhMFdpZHRoKSkgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHZpYTBMYXllciA/d2lkdGggdmlhMFdpZHRoID9sZW5ndGggdmlhMFdpZHRoID9zcGFjZVkgdmlhME1pblNwYWNlID9zcGFjZVggdmlhME1pblNwYWNlID9sb3dlckxlZnRPZmZzZXRZIG1ldDBFbmNWaWEwWSA/dXBwZXJSaWdodE9mZnNldFkgKC0gbWV0MEVuY1ZpYTBZKSA/bG93ZXJMZWZ0T2Zmc2V0WCBtZXQwRW5jVmlhMFggP3VwcGVyUmlnaHRPZmZzZXRYICgtIG1ldDBFbmNWaWEwWCkgP2dhcCAibWluaW11bSIpKSA/cGluIGV2YWwoKGNvbnRhY3RzID09ICJmaXJzdCBtZXRhbCIpKSA/dGVybU5hbWUgIlMiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/cGluTGFiZWwgdCA/cGluTGFiZWxIZWlnaHQgMC4xID9waW5MYWJlbExheWVyIGxpc3QoInRleHQiICJkcmF3aW5nIikgP3BpbkxhYmVsRm9udCAicm9tYW4iKSkgaWYoKG1vZChuIDIpID09IDEpIHRoZW4gKHJvZEFsaWduID9hbGlnbk9iaiB2aWEwQ29udGFjdHMgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBzb3VyY2VEaWZmID9yZWZIYW5kbGUgImNMIiA/eFNlcCBtYXgoKHNyY0V4dFdpZHRoIC8gMikgbWluRW5jVmlhMFNyY1gpKSBlbHNlIChyb2RBbGlnbiA/YWxpZ25PYmogdmlhMENvbnRhY3RzID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogc291cmNlRGlmZiA/cmVmSGFuZGxlICJjUiIgP3hTZXAgKC0gbWF4KChzcmNFeHRXaWR0aCAvIDIpIG1pbkVuY1ZpYTBTcmNYKSkpKSBpZigoY29udGFjdHMgPT0gInNlY29uZCBtZXRhbCIpIHRoZW4gKG51bUNvbnRhY3RzID0gKGZsb29yICh3IC8gdmlhMVdpZHRoKSkpIHdoaWxlKCgoKG51bUNvbnRhY3RzICogdmlhMVdpZHRoKSArICgobnVtQ29udGFjdHMgLSAxKSAqIHZpYTFNaW5TcGFjZSkpID4gdykgKG51bUNvbnRhY3RzID0gKG51bUNvbnRhY3RzIC0gMSkpKSAobnVtQ29udGFjdHNXID0gKGZsb29yIChzcmNFeHRXaWR0aCAvIHZpYTBXaWR0aCkpKSB3aGlsZSgoKCgyICogbWV0MUVuY1ZpYTFYKSArIChudW1Db250YWN0c1cgKiB2aWExV2lkdGgpICsgKChudW1Db250YWN0c1cgLSAxKSAqIHZpYTFNaW5TcGFjZSkpID4gKHNuYXBHcmlkICsgc3JjRXh0V2lkdGgpKSAobnVtQ29udGFjdHNXID0gKG51bUNvbnRhY3RzVyAtIDEpKSkgKG1ldDBFbmNWaWExID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllciA/d2lkdGggKCgobnVtQ29udGFjdHNXIC0gMSkgKiB2aWExTWluU3BhY2UpICsgKG51bUNvbnRhY3RzVyAqIHZpYTFXaWR0aCkgKyAoMiAqIG1heChtZXQxRW5jVmlhMVggbWV0MEVuY1ZpYTFYKSkpID9sZW5ndGggKCgobnVtQ29udGFjdHMgLSAxKSAqIHZpYTFNaW5TcGFjZSkgKyAobnVtQ29udGFjdHMgKiB2aWExV2lkdGgpICsgKDIgKiBtYXgobWV0MUVuY1ZpYTFZIG1ldDBFbmNWaWExWSkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbWV0MEVuY1ZpYTEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiB2aWEwQ29udGFjdHMgP3JlZkhhbmRsZSAiY0MiKSAodmlhMUNvbnRhY3RzID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDFMYXllciA/d2lkdGggKCgyICogbWF4KG1ldDBFbmNWaWExWCBtZXQxRW5jVmlhMVgpKSArICgobnVtQ29udGFjdHNXIC0gMSkgKiB2aWExTWluU3BhY2UpICsgKG51bUNvbnRhY3RzVyAqIHZpYTFXaWR0aCkpID9sZW5ndGggKCgyICogbWF4KG1ldDBFbmNWaWExWSBtZXQxRW5jVmlhMVkpKSArICgobnVtQ29udGFjdHMgLSAxKSAqIHZpYTFNaW5TcGFjZSkgKyAobnVtQ29udGFjdHMgKiB2aWExV2lkdGgpKSA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgdmlhMUxheWVyID93aWR0aCB2aWExV2lkdGggP2xlbmd0aCB2aWExV2lkdGggP3NwYWNlWSB2aWExTWluU3BhY2UgP3NwYWNlWCB2aWExTWluU3BhY2UgP2xvd2VyTGVmdE9mZnNldFkgbWF4KG1ldDBFbmNWaWExWSBtZXQxRW5jVmlhMVkpID91cHBlclJpZ2h0T2Zmc2V0WSAoLSBtYXgobWV0MEVuY1ZpYTFZIG1ldDFFbmNWaWExWSkpID9sb3dlckxlZnRPZmZzZXRYIG1heChtZXQwRW5jVmlhMVggbWV0MUVuY1ZpYTFYKSA/dXBwZXJSaWdodE9mZnNldFggKC0gbWF4KG1ldDBFbmNWaWExWCBtZXQxRW5jVmlhMVgpKSA/Z2FwICJtaW5pbXVtIikpID9waW4gdCA/dGVybU5hbWUgIlMiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/cGluTGFiZWwgdCA/cGluTGFiZWxIZWlnaHQgMC4xID9waW5MYWJlbExheWVyIGxpc3QoInRleHQiICJkcmF3aW5nIikgP3BpbkxhYmVsRm9udCAicm9tYW4iKSkgKHJvZEFsaWduID9hbGlnbk9iaiB2aWExQ29udGFjdHMgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBtZXQwRW5jVmlhMSA/cmVmSGFuZGxlICJjQyIpKSkgaWYoKGRybkltcGxhbnQgIT0gbmlsKSB0aGVuIChiZXZlbERyYWluSW1wbGFudCA9IChyb2RDcmVhdGVQb2x5Z29uID9sYXllciBkcm5JbXBsYW50ID9wdHMgbGlzdChsaXN0KChkcm5CZXZlbCAtIGRybkltcGxhbnRFbmMpICgtIGRybkltcGxhbnRFbmMpKSBsaXN0KCgoZHJuSW1wbGFudEVuYyArIG1pbkRybldpZHRoKSAtIGRybkJldmVsKSAoLSBkcm5JbXBsYW50RW5jKSkgbGlzdCgoZHJuSW1wbGFudEVuYyArIG1pbkRybldpZHRoKSAoZHJuQmV2ZWwgLSBkcm5JbXBsYW50RW5jKSkgbGlzdCgoZHJuSW1wbGFudEVuYyArIG1pbkRybldpZHRoKSAoKGRybkltcGxhbnRFbmMgKyB3KSAtIGRybkJldmVsKSkgbGlzdCgoKGRybkltcGxhbnRFbmMgKyBtaW5Ecm5XaWR0aCkgLSBkcm5CZXZlbCkgKGRybkltcGxhbnRFbmMgKyB3KSkgbGlzdCgoZHJuQmV2ZWwgLSBkcm5JbXBsYW50RW5jKSAoZHJuSW1wbGFudEVuYyArIHcpKSBsaXN0KCgtIGRybkltcGxhbnRFbmMpICgoZHJuSW1wbGFudEVuYyArIHcpIC0gZHJuQmV2ZWwpKSBsaXN0KCgtIGRybkltcGxhbnRFbmMpIChkcm5CZXZlbCAtIGRybkltcGxhbnRFbmMpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGJldmVsRHJhaW5JbXBsYW50ID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogZXh0ZW5kZWREcmFpbiA/cmVmSGFuZGxlICJjQyIpKSBpZigoKG4gPT0gbSkgJiYgKHBGZXQgPT0gdCkpIHRoZW4gaWYoKG1vZChtIDIpID09IDApIHRoZW4gKG53ZWxsRXh0TGFzdCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkcmFpbldlbGwgP3dpZHRoIG1heCh3ZWxsRW5jU3JjIG53ZWxsRW5jRG53ZWxsICgoZG53ZWxsRW5jTndlbGwgLSBzcmNFeHRXaWR0aCAtIHNyY1VuZGVyUG9seSkgKyBtaW5TcGFjZVNyY092ZXJXZWxsICsgbndlbGxFbmNEbndlbGwpKSA/bGVuZ3RoICh3ICsgKDIgKiAod2VsbEVuY0RyYWluICsgbndlbGxFbmNEbndlbGwgKyBkbndlbGxFbmNOd2VsbCkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbndlbGxFeHRMYXN0ID9hbGlnbkhhbmRsZSAiY0wiID9yZWZPYmogc291cmNlRGlmZiA/cmVmSGFuZGxlICJjUiIpIChsYXN0UG9seSA9IG53ZWxsRXh0TGFzdCkgZWxzZSAobndlbGxFeHRMYXN0ID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRyYWluV2VsbCA/d2lkdGggKGRud2VsbEVuY053ZWxsICsgbndlbGxFbmNEbndlbGwpID9sZW5ndGggKHcgKyAoMiAqICh3ZWxsRW5jRHJhaW4gKyBud2VsbEVuY0Rud2VsbCArIGRud2VsbEVuY053ZWxsKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBud2VsbEV4dExhc3QgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBleHRlbmRlZERyYWluID9yZWZIYW5kbGUgImNSIiA/eFNlcCB3ZWxsRW5jRHJhaW4pIChsYXN0UG9seSA9IG53ZWxsRXh0TGFzdCkpKSBpZigoY29udGFjdHMgIT0gIm5vIGNvbnRhY3RzIikgdGhlbiAobnVtQ29udGFjdHMgPSAoZmxvb3IgKHcgLyB2aWEwV2lkdGgpKSkgd2hpbGUoKCgoMiAqIG1pbkVuY1ZpYTBEcm5ZKSArIChudW1Db250YWN0cyAqIHZpYTBXaWR0aCkgKyAoKG51bUNvbnRhY3RzIC0gMSkgKiB2aWEwTWluU3BhY2UpKSA+ICh3IC0gKDIgKiBkcm5CZXZlbCkpKSAobnVtQ29udGFjdHMgPSAobnVtQ29udGFjdHMgLSAxKSkpIChudW1Db250YWN0c1cgPSAoZmxvb3IgKG1pbkRybldpZHRoIC8gdmlhMFdpZHRoKSkpIHdoaWxlKCgoKDIgKiBtaW5FbmNWaWEwRHJuWCkgKyAobnVtQ29udGFjdHNXICogdmlhMFdpZHRoKSArICgobnVtQ29udGFjdHNXIC0gMSkgKiB2aWEwTWluU3BhY2UpKSA+IG1pbkRybldpZHRoKSAobnVtQ29udGFjdHNXID0gKG51bUNvbnRhY3RzVyAtIDEpKSkgKHZpYTBDb250YWN0cyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXIgP3dpZHRoICgoMiAqIG1ldDBFbmNWaWEwWCkgKyAoKChudW1Db250YWN0c1cgLSAxKSAqIHZpYTBNaW5TcGFjZSkgKyAobnVtQ29udGFjdHNXICogdmlhMFdpZHRoKSkpID9sZW5ndGggKCgyICogbWF4KG1pbkVuY1ZpYTBTcmNZIG1ldDBFbmNWaWEwWSkpICsgKCgobnVtQ29udGFjdHMgLSAxKSAqIHZpYTBNaW5TcGFjZSkgKyAobnVtQ29udGFjdHMgKiB2aWEwV2lkdGgpKSkgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHZpYTBMYXllciA/d2lkdGggdmlhMFdpZHRoID9sZW5ndGggdmlhMFdpZHRoID9zcGFjZVkgdmlhME1pblNwYWNlID9zcGFjZVggdmlhME1pblNwYWNlID9sb3dlckxlZnRPZmZzZXRZIG1ldDBFbmNWaWEwWSA/dXBwZXJSaWdodE9mZnNldFkgKC0gbWV0MEVuY1ZpYTBZKSA/bG93ZXJMZWZ0T2Zmc2V0WCBtZXQwRW5jVmlhMFggP3VwcGVyUmlnaHRPZmZzZXRYICgtIG1ldDBFbmNWaWEwWCkgP2dhcCAibWluaW11bSIpKSA/cGluIGV2YWwoKGNvbnRhY3RzID09ICJmaXJzdCBtZXRhbCIpKSA/dGVybU5hbWUgIkQiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/cGluTGFiZWwgdCA/cGluTGFiZWxIZWlnaHQgMC4xID9waW5MYWJlbExheWVyIGxpc3QoInRleHQiICJkcmF3aW5nIikgP3BpbkxhYmVsRm9udCAicm9tYW4iKSkgKHJvZEFsaWduID9hbGlnbk9iaiB2aWEwQ29udGFjdHMgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBleHRlbmRlZERyYWluID9yZWZIYW5kbGUgImNDIikgaWYoKGNvbnRhY3RzID09ICJzZWNvbmQgbWV0YWwiKSB0aGVuIChudW1Db250YWN0cyA9IChmbG9vciAodyAvIHZpYTFXaWR0aCkpKSB3aGlsZSgoKChudW1Db250YWN0cyAqIHZpYTFXaWR0aCkgKyAoKG51bUNvbnRhY3RzIC0gMSkgKiB2aWExTWluU3BhY2UpKSA+IHcpIChudW1Db250YWN0cyA9IChudW1Db250YWN0cyAtIDEpKSkgKG51bUNvbnRhY3RzVyA9IChmbG9vciAobWluRHJuV2lkdGggLyB2aWExV2lkdGgpKSkgd2hpbGUoKCgobnVtQ29udGFjdHNXICogdmlhMVdpZHRoKSArICgobnVtQ29udGFjdHNXIC0gMSkgKiB2aWExTWluU3BhY2UpKSA+IG1pbkRybldpZHRoKSAobnVtQ29udGFjdHNXID0gKG51bUNvbnRhY3RzVyAtIDEpKSkgKG1ldDBFbmNWaWExID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllciA/d2lkdGggKG1heCgoMiAqIG1ldDFFbmNWaWExWCkgKDIgKiBtZXQwRW5jVmlhMVgpKSArICgobnVtQ29udGFjdHNXIC0gMSkgKiB2aWExTWluU3BhY2UpICsgKG51bUNvbnRhY3RzVyAqIHZpYTFXaWR0aCkpID9sZW5ndGggKG1heCgoMiAqIG1ldDBFbmNWaWExWSkgKDIgKiBtZXQxRW5jVmlhMVkpKSArICgobnVtQ29udGFjdHMgLSAxKSAqIHZpYTFNaW5TcGFjZSkgKyAobnVtQ29udGFjdHMgKiB2aWExV2lkdGgpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbWV0MEVuY1ZpYTEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiB2aWEwQ29udGFjdHMgP3JlZkhhbmRsZSAiY0MiKSAodmlhMUNvbnRhY3RzID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDFMYXllciA/d2lkdGggKCgyICogbWF4KG1ldDFFbmNWaWExWCBtZXQwRW5jVmlhMVgpKSArICgobnVtQ29udGFjdHNXIC0gMSkgKiB2aWExTWluU3BhY2UpICsgKG51bUNvbnRhY3RzVyAqIHZpYTFXaWR0aCkpID9sZW5ndGggKCgyICogbWF4KG1ldDBFbmNWaWExWSBtZXQxRW5jVmlhMVkpKSArICgobnVtQ29udGFjdHMgLSAxKSAqIHZpYTFNaW5TcGFjZSkgKyAobnVtQ29udGFjdHMgKiB2aWExV2lkdGgpKSA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgdmlhMUxheWVyID93aWR0aCB2aWExV2lkdGggP2xlbmd0aCB2aWExV2lkdGggP3NwYWNlWSB2aWExTWluU3BhY2UgP3NwYWNlWCB2aWExTWluU3BhY2UgP2xvd2VyTGVmdE9mZnNldFkgbWF4KG1ldDBFbmNWaWExWSBtZXQxRW5jVmlhMVkpID91cHBlclJpZ2h0T2Zmc2V0WSAoLSBtYXgobWV0MEVuY1ZpYTFZIG1ldDFFbmNWaWExWSkpID9sb3dlckxlZnRPZmZzZXRYIG1heChtZXQxRW5jVmlhMVggbWV0MEVuY1ZpYTFYKSA/dXBwZXJSaWdodE9mZnNldFggKC0gbWF4KG1ldDFFbmNWaWExWCBtZXQwRW5jVmlhMVgpKSA/Z2FwICJtaW5pbXVtIikpID9waW4gdCA/dGVybU5hbWUgIkQiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/cGluTGFiZWwgdCA/cGluTGFiZWxIZWlnaHQgMC4xID9waW5MYWJlbExheWVyIGxpc3QoInRleHQiICJkcmF3aW5nIikgP3BpbkxhYmVsRm9udCAicm9tYW4iKSkgKHJvZEFsaWduID9hbGlnbk9iaiB2aWExQ29udGFjdHMgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBtZXQwRW5jVmlhMSA/cmVmSGFuZGxlICJjQyIpKSkgaWYoKGlkTGF5ZXIgIT0gbmlsKSB0aGVuIChpZFJlY3QgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgaWRMYXllciA/ZnJvbU9iaiBsaXN0KHNvdXJjZURpZmYgZXh0ZW5kZWREcmFpbikpKSBpZigobW9kKG4gMikgPT0gMSkgdGhlbiAocm9kQWxpZ24gP2FsaWduT2JqIGlkUmVjdCA/YWxpZ25IYW5kbGUgImNSIiA/cmVmT2JqIGV4dGVuZGVkRHJhaW4gP3JlZkhhbmRsZSAiY1IiKSBlbHNlIChyb2RBbGlnbiA/YWxpZ25PYmogaWRSZWN0ID9hbGlnbkhhbmRsZSAiY0wiID9yZWZPYmogZXh0ZW5kZWREcmFpbiA/cmVmSGFuZGxlICJjTCIpKSkgaWYoKG0gPT0gMSkgdGhlbiAocnVuVHdpY2UgPSAyKSBlbHNlIChydW5Ud2ljZSA9IDEpKSBmb3IocnVucyAxIHJ1blR3aWNlIGlmKCgoZW5kVGFwcyA9PSAiVFJVRSIpICYmICgobiA9PSAxKSB8fCAobiA9PSBtKSkpIHRoZW4gKGVuZFRhcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBlbmRUYXBMYXllciA/d2lkdGggZW5kVGFwV2lkdGggP2xlbmd0aCB3ID9waW4gZXZhbCgoY29udGFjdHMgPT0gIm5vIGNvbnRhY3RzIikpID90ZXJtTmFtZSAiQiIgP3Rlcm1JT1R5cGUgImlucHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpID9waW5MYWJlbCB0ID9waW5MYWJlbEhlaWdodCAwLjEgP3BpbkxhYmVsTGF5ZXIgbGlzdCgidGV4dCIgImRyYXdpbmciKSA/cGluTGFiZWxGb250ICJyb21hbiIpKSBpZigoZW5kVGFwSW1wbGFudCAhPSBuaWwpIHRoZW4gKHRhcEltcGxhbnQgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZW5kVGFwSW1wbGFudCA/ZnJvbU9iaiBlbmRUYXAgP3NpemUgZW5kVGFwSW1wRW5jKSkgKHJvZEFsaWduID9hbGlnbk9iaiB0YXBJbXBsYW50ID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogZW5kVGFwID9yZWZIYW5kbGUgImNDIikpIGlmKCgobiA9PSAxKSAmJiAocnVucyA9PSAxKSkgdGhlbiAocm9kQWxpZ24gP2FsaWduT2JqIGVuZFRhcCA/YWxpZ25IYW5kbGUgImNSIiA/cmVmT2JqIHNvdXJjZURpZmYgP3JlZkhhbmRsZSAiY0wiID94U2VwICgtIG1pblNwYWNlRW5kVGFwU291cmNlKSkgaWYoKHBGZXQgPT0gdCkgdGhlbiAoZmlyc3RUYXBOd2VsbCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkcmFpbldlbGwgP2xlbmd0aCAodyArICgyICogKHdlbGxFbmNEcmFpbiArIG53ZWxsRW5jRG53ZWxsICsgZG53ZWxsRW5jTndlbGwpKSkgP3dpZHRoICh3ZWxsRW5jVGFwICsgZW5kVGFwV2lkdGggKyBtaW5TcGFjZUVuZFRhcFNvdXJjZSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGZpcnN0VGFwTndlbGwgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBlbmRUYXAgP3JlZkhhbmRsZSAiY0wiID94U2VwICgtIG1heChud2VsbEVuY0Rud2VsbCB3ZWxsRW5jVGFwKSkpIGlmKChkbldlbGwgIT0gbmlsKSB0aGVuIChmaXJzdFRhcERud2VsbCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkbldlbGwgP2xlbmd0aCAodyArICgyICogKHdlbGxFbmNEcmFpbiArIGRud2VsbEVuY053ZWxsKSkpID93aWR0aCAoZW5kVGFwV2lkdGggKyBtaW5TcGFjZUVuZFRhcFNvdXJjZSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGZpcnN0VGFwRG53ZWxsID9hbGlnbkhhbmRsZSAiY0wiID9yZWZPYmogZmlyc3RUYXBOd2VsbCA/cmVmSGFuZGxlICJjTCIgP3hTZXAgbndlbGxFbmNEbndlbGwpKSBlbHNlIChmaXJzdFBvbHkgPSBlbmRUYXApKSBlbHNlIGlmKCgobW9kKG0gMikgPT0gMSkgfHwgKHJ1bnMgPT0gMikpIHRoZW4gKHJvZEFsaWduID9hbGlnbk9iaiBlbmRUYXAgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBleHRlbmRlZERyYWluID9yZWZIYW5kbGUgImNSIiA/eFNlcCBtaW5TcGFjZUVuZFRhcERyYWluKSBpZigocEZldCA9PSB0KSB0aGVuIChsYXN0VGFwTndlbGwgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZHJhaW5XZWxsID9sZW5ndGggKHcgKyAoMiAqICh3ZWxsRW5jRHJhaW4gKyBud2VsbEVuY0Rud2VsbCArIGRud2VsbEVuY053ZWxsKSkpID93aWR0aCAod2VsbEVuY1RhcCArIGVuZFRhcFdpZHRoKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbGFzdFRhcE53ZWxsID9hbGlnbkhhbmRsZSAiY1IiID9yZWZPYmogZW5kVGFwID9yZWZIYW5kbGUgImNSIiA/eFNlcCAod2VsbEVuY1RhcCArIG53ZWxsRW5jRG53ZWxsKSkgaWYoKGRuV2VsbCAhPSBuaWwpIHRoZW4gKGxhc3RUYXBEbndlbGwgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZG5XZWxsID9sZW5ndGggKHcgKyAoMiAqICh3ZWxsRW5jRHJhaW4gKyBkbndlbGxFbmNOd2VsbCkpKSA/d2lkdGggKGVuZFRhcFdpZHRoICsgbWluU3BhY2VFbmRUYXBEcmFpbikpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxhc3RUYXBEbndlbGwgP2FsaWduSGFuZGxlICJjUiIgP3JlZk9iaiBsYXN0VGFwTndlbGwgP3JlZkhhbmRsZSAiY1IiID94U2VwICgtIG53ZWxsRW5jRG53ZWxsKSkpIGVsc2UgKGxhc3RQb2x5ID0gZW5kVGFwKSkgZWxzZSAocm9kQWxpZ24gP2FsaWduT2JqIGVuZFRhcCA/YWxpZ25IYW5kbGUgImNMIiA/cmVmT2JqIHNvdXJjZURpZmYgP3JlZkhhbmRsZSAiY1IiID94U2VwIG1pblNwYWNlRW5kVGFwU291cmNlKSBpZigocEZldCA9PSB0KSB0aGVuIChsYXN0VGFwTndlbGwgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZHJhaW5XZWxsID9sZW5ndGggKHcgKyAoMiAqICh3ZWxsRW5jRHJhaW4gKyBud2VsbEVuY0Rud2VsbCArIGRud2VsbEVuY053ZWxsKSkpID93aWR0aCAod2VsbEVuY1RhcCArIGVuZFRhcFdpZHRoICsgbWluU3BhY2VFbmRUYXBTb3VyY2UpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsYXN0VGFwTndlbGwgP2FsaWduSGFuZGxlICJjUiIgP3JlZk9iaiBlbmRUYXAgP3JlZkhhbmRsZSAiY1IiID94U2VwIG1heCh3ZWxsRW5jVGFwIG53ZWxsRW5jRG53ZWxsKSkgaWYoKGRuV2VsbCAhPSBuaWwpIHRoZW4gKGxhc3RUYXBEbndlbGwgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZG5XZWxsID9sZW5ndGggKHcgKyAoMiAqICh3ZWxsRW5jRHJhaW4gKyBkbndlbGxFbmNOd2VsbCkpKSA/d2lkdGggKGVuZFRhcFdpZHRoICsgbWluU3BhY2VFbmRUYXBTb3VyY2UpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsYXN0VGFwRG53ZWxsID9hbGlnbkhhbmRsZSAiY1IiID9yZWZPYmogbGFzdFRhcE53ZWxsID9yZWZIYW5kbGUgImNSIiA/eFNlcCAoLSBud2VsbEVuY0Rud2VsbCkpKSBlbHNlIChsYXN0UG9seSA9IGVuZFRhcCkpKSkgaWYoKGNvbnRhY3RzICE9ICJubyBjb250YWN0cyIpIHRoZW4gKG51bUNvbnRhY3RzID0gKGZsb29yICh3IC8gdmlhMFdpZHRoKSkpIHdoaWxlKCgoKDIgKiBtaW5FbmNWaWEwRHJuWSkgKyAobnVtQ29udGFjdHMgKiB2aWEwV2lkdGgpICsgKChudW1Db250YWN0cyAtIDEpICogdmlhME1pblNwYWNlKSkgPiB3KSAobnVtQ29udGFjdHMgPSAobnVtQ29udGFjdHMgLSAxKSkpIChudW1Db250YWN0c1cgPSAoZmxvb3IgKG1pbkRybldpZHRoIC8gdmlhMFdpZHRoKSkpIHdoaWxlKCgoKDIgKiBtaW5FbmNWaWEwRHJuWCkgKyAobnVtQ29udGFjdHNXICogdmlhMFdpZHRoKSArICgobnVtQ29udGFjdHNXIC0gMSkgKiB2aWEwTWluU3BhY2UpKSA+IGVuZFRhcFdpZHRoKSAobnVtQ29udGFjdHNXID0gKG51bUNvbnRhY3RzVyAtIDEpKSkgKHZpYTBDb250YWN0cyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXIgP3dpZHRoICgoMiAqIG1ldDBFbmNWaWEwWCkgKyAoKChudW1Db250YWN0c1cgLSAxKSAqIHZpYTBNaW5TcGFjZSkgKyAobnVtQ29udGFjdHNXICogdmlhMFdpZHRoKSkpID9sZW5ndGggKCgyICogbWV0MEVuY1ZpYTBZKSArICgoKG51bUNvbnRhY3RzIC0gMSkgKiB2aWEwTWluU3BhY2UpICsgKG51bUNvbnRhY3RzICogdmlhMFdpZHRoKSkpID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciB2aWEwTGF5ZXIgP3dpZHRoIHZpYTBXaWR0aCA/bGVuZ3RoIHZpYTBXaWR0aCA/c3BhY2VZIHZpYTBNaW5TcGFjZSA/c3BhY2VYIHZpYTBNaW5TcGFjZSA/bG93ZXJMZWZ0T2Zmc2V0WSBtZXQwRW5jVmlhMFkgP3VwcGVyUmlnaHRPZmZzZXRZICgtIG1ldDBFbmNWaWEwWSkgP2xvd2VyTGVmdE9mZnNldFggbWV0MEVuY1ZpYTBYID91cHBlclJpZ2h0T2Zmc2V0WCAoLSBtZXQwRW5jVmlhMFgpID9nYXAgIm1pbmltdW0iKSkgP3BpbiBldmFsKChjb250YWN0cyA9PSAiZmlyc3QgbWV0YWwiKSkgP3Rlcm1OYW1lICJCIiA/dGVybUlPVHlwZSAiaW5wdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikgP3BpbkxhYmVsIHQgP3BpbkxhYmVsSGVpZ2h0IDAuMSA/cGluTGFiZWxMYXllciBsaXN0KCJ0ZXh0IiAiZHJhd2luZyIpID9waW5MYWJlbEZvbnQgInJvbWFuIikpIChyb2RBbGlnbiA/YWxpZ25PYmogdmlhMENvbnRhY3RzID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogZW5kVGFwID9yZWZIYW5kbGUgImNDIikgaWYoKGNvbnRhY3RzID09ICJzZWNvbmQgbWV0YWwiKSB0aGVuIChudW1Db250YWN0cyA9IChmbG9vciAodyAvIHZpYTFXaWR0aCkpKSB3aGlsZSgoKChudW1Db250YWN0cyAqIHZpYTFXaWR0aCkgKyAoKG51bUNvbnRhY3RzIC0gMSkgKiB2aWExTWluU3BhY2UpKSA+IHcpIChudW1Db250YWN0cyA9IChudW1Db250YWN0cyAtIDEpKSkgKG51bUNvbnRhY3RzVyA9IChmbG9vciAobWluRHJuV2lkdGggLyB2aWExV2lkdGgpKSkgd2hpbGUoKCgobnVtQ29udGFjdHNXICogdmlhMVdpZHRoKSArICgobnVtQ29udGFjdHNXIC0gMSkgKiB2aWExTWluU3BhY2UpKSA+IGVuZFRhcFdpZHRoKSAobnVtQ29udGFjdHNXID0gKG51bUNvbnRhY3RzVyAtIDEpKSkgKG1ldDBFbmNWaWExID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllciA/d2lkdGggKCgyICogbWV0MUVuY1ZpYTFYKSArICgobnVtQ29udGFjdHNXIC0gMSkgKiB2aWExTWluU3BhY2UpICsgKG51bUNvbnRhY3RzVyAqIHZpYTFXaWR0aCkgKyAoMiAqIG1ldDBFbmNWaWExWCkpID9sZW5ndGggKCgyICogbWV0MUVuY1ZpYTFZKSArICgobnVtQ29udGFjdHMgLSAxKSAqIHZpYTFNaW5TcGFjZSkgKyAobnVtQ29udGFjdHMgKiB2aWExV2lkdGgpICsgKDIgKiBtZXQwRW5jVmlhMVkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbWV0MEVuY1ZpYTEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiB2aWEwQ29udGFjdHMgP3JlZkhhbmRsZSAiY0MiKSAodmlhMUNvbnRhY3RzID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDFMYXllciA/d2lkdGggKCgyICogbWV0MUVuY1ZpYTFYKSArICgobnVtQ29udGFjdHNXIC0gMSkgKiB2aWExTWluU3BhY2UpICsgKG51bUNvbnRhY3RzVyAqIHZpYTFXaWR0aCkpID9sZW5ndGggKCgyICogbWV0MUVuY1ZpYTFZKSArICgobnVtQ29udGFjdHMgLSAxKSAqIHZpYTFNaW5TcGFjZSkgKyAobnVtQ29udGFjdHMgKiB2aWExV2lkdGgpKSA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgdmlhMUxheWVyID93aWR0aCB2aWExV2lkdGggP2xlbmd0aCB2aWExV2lkdGggP3NwYWNlWSB2aWExTWluU3BhY2UgP3NwYWNlWCB2aWExTWluU3BhY2UgP2xvd2VyTGVmdE9mZnNldFkgbWV0MUVuY1ZpYTFZID91cHBlclJpZ2h0T2Zmc2V0WSAoLSBtZXQxRW5jVmlhMVkpID9sb3dlckxlZnRPZmZzZXRYIG1ldDFFbmNWaWExWCA/dXBwZXJSaWdodE9mZnNldFggKC0gbWV0MUVuY1ZpYTFYKSA/Z2FwICJtaW5pbXVtIikpID9waW4gdCA/dGVybU5hbWUgIkIiID90ZXJtSU9UeXBlICJpbnB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/cGluTGFiZWwgdCA/cGluTGFiZWxIZWlnaHQgMC4xID9waW5MYWJlbExheWVyIGxpc3QoInRleHQiICJkcmF3aW5nIikgP3BpbkxhYmVsRm9udCAicm9tYW4iKSkgKHJvZEFsaWduID9hbGlnbk9iaiB2aWExQ29udGFjdHMgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBtZXQwRW5jVmlhMSA/cmVmSGFuZGxlICJjQyIpKSkpKSAoZ2F0ZURyYXdpbmdQcmV2ID0gZ2F0ZURyYXdpbmcpKSBpZigocEZldCA9PSB0KSB0aGVuIChodmlJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgaHZpTGF5ZXIgP2Zyb21PYmogbGlzdChmaXJzdFBvbHkgbGFzdFBvbHkgcEZldERyYWluV2VsbCkgP3NpemUgaHZpRW5jKSkgZWxzZSAoaHZpSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGh2aUxheWVyID9mcm9tT2JqIGxpc3QoZmlyc3RQb2x5IGxhc3RQb2x5IGJldmVsRHJhaW5XZWxsKSA/c2l6ZSBodmlFbmMpKSkpAChzcmNMYXllciBzcmNJbXBsYW50IHNyY0ltcGxhbnRFbmMgZHJuTGF5ZXIgZHJuSW1wbGFudCBkcm5JbXBsYW50RW5jIGdhdGVMYXllciBkcmFpbldlbGwgZG5XZWxsIG53ZWxsRW5jRG53ZWxsIGRud2VsbEVuY053ZWxsIHdlbGxFbmNTcmMgd2VsbEVuY0RybiBwRmV0IHZpYTBMYXllciB2aWEwV2lkdGggbWV0MExheWVyIHZpYTFMYXllciB2aWExV2lkdGggbWV0MUxheWVyIGh2aUxheWVyIGh2aUVuYyBzbmFwR3JpZCBtaW5FbmNWaWEwU3JjWCBtaW5FbmNWaWEwU3JjWSBtaW5FbmNWaWEwRHJuWCBtaW5FbmNWaWEwRHJuWSB2aWEwTWluU3BhY2UgbWV0MEVuY1ZpYTBYIG1ldDBFbmNWaWEwWSBtZXQwRW5jVmlhMVggbWV0MEVuY1ZpYTFZIHZpYTFNaW5TcGFjZSBtZXQxRW5jVmlhMVggbWV0MUVuY1ZpYTFZIGlkTGF5ZXIgd2VsbEVuY0RyYWluIG1pblNwYWNlU3JjRHJuIG1pbkRybldpZHRoIHdlbGxCZXZlbCB3ZWxsRXh0SG9sZSBkcm5CZXZlbCBzcmNFeHRGcm9tUG9seSBwb2x5RXh0U291cmNlIG1pblNwYWNlU3JjT3ZlcldlbGwgbWluU3BhY2VFbmRUYXBEcmFpbiBtaW5TcGFjZUVuZFRhcFNvdXJjZSBlbmRUYXBMYXllciBlbmRUYXBXaWR0aCBlbmRUYXBJbXBsYW50IGVuZFRhcEltcEVuYyB3ZWxsRW5jRGlmZlRhcCB3ZWxsRW5jVGFwIHNoYXJlZFNyY1dpZHRoIG0gbCB3IGdhdGVFeHQgY29udGFjdHMgZW5kVGFwcyBzcmNVbmRlclBvbHkgbiBzcmNFeHRXaWR0aCBnYXRlRHJhd2luZyBnYXRlRHJhd2luZ1ByZXYgc291cmNlRGlmZiBzb3VyY2VJbXBsYW50IGZpcnN0UG9seSBzb3VyY2VQaW4gbGFzdFBvbHkgd2VsbFdpZHRoIG53ZWxsRXh0U291cmNlIGRud2VsbFdpZHRoIGRud2VsbEV4dFNvdXJjZSBiZXZlbERyYWluV2VsbCBjb3JuZXJPZldlbGxYIHBGZXREcmFpbldlbGwgcEZldERuV2VsbCBleHRlbmRlZERyYWluIG51bUNvbnRhY3RzIG51bUNvbnRhY3RzVyB2aWEwQ29udGFjdHMgbWV0MEVuY1ZpYTEgdmlhMUNvbnRhY3RzIGJldmVsRHJhaW5JbXBsYW50IG53ZWxsRXh0TGFzdCBpZFJlY3QgcnVuVHdpY2UgcnVucyBlbmRUYXAgdGFwSW1wbGFudCBmaXJzdFRhcE53ZWxsIGZpcnN0VGFwRG53ZWxsIGxhc3RUYXBOd2VsbCBsYXN0VGFwRG53ZWxsIGh2aUltcCkAKChtIDEpIChsIDAuMCkgKHcgMC4wKSAoZ2F0ZUV4dCAwLjApIChjb250YWN0cyAibm8gY29udGFjdHMiKSAoZW5kVGFwcyAiRkFMU0UiKSkAKChzcmNMYXllciAiaGlsaXRlIikgKHNyY0ltcGxhbnQgbmlsKSAoc3JjSW1wbGFudEVuYyAwLjApIChkcm5MYXllciAiaGlsaXRlIikgKGRybkltcGxhbnQgbmlsKSAoZHJuSW1wbGFudEVuYyAwLjApIChnYXRlTGF5ZXIgImhpbGl0ZSIpIChkcmFpbldlbGwgImhpbGl0ZSIpIChkbldlbGwgbmlsKSAobndlbGxFbmNEbndlbGwgMC4wKSAoZG53ZWxsRW5jTndlbGwgMC4wKSAod2VsbEVuY1NyYyAwLjApICh3ZWxsRW5jRHJuIDAuMCkgKHBGZXQgIkZBTFNFIikgKHZpYTBMYXllciAiaGlsaXRlIikgKHZpYTBXaWR0aCAwLjApIChtZXQwTGF5ZXIgImhpbGl0ZSIpICh2aWExTGF5ZXIgImhpbGl0ZSIpICh2aWExV2lkdGggMC4wKSAobWV0MUxheWVyICJoaWxpdGUiKSAoaHZpTGF5ZXIgImhpbGl0ZSIpIChodmlFbmMgMC4wKSAoc25hcEdyaWQgMC4wKSAobWluRW5jVmlhMFNyY1ggMC4wKSAobWluRW5jVmlhMFNyY1kgMC4wKSAobWluRW5jVmlhMERyblggMC4wKSAobWluRW5jVmlhMERyblkgMC4wKSAodmlhME1pblNwYWNlIDAuMCkgKG1ldDBFbmNWaWEwWCAwLjApIChtZXQwRW5jVmlhMFkgMC4wKSAobWV0MEVuY1ZpYTFYIDAuMCkgKG1ldDBFbmNWaWExWSAwLjApICh2aWExTWluU3BhY2UgMC4wKSAobWV0MUVuY1ZpYTFYIDAuMCkgKG1ldDFFbmNWaWExWSAwLjApIChpZExheWVyIG5pbCkgKHdlbGxFbmNEcmFpbiAwLjApIChtaW5TcGFjZVNyY0RybiAwLjApIChtaW5Ecm5XaWR0aCAwLjApICh3ZWxsQmV2ZWwgMC4wKSAod2VsbEV4dEhvbGUgMC4wKSAoZHJuQmV2ZWwgMC4wKSAoc3JjRXh0RnJvbVBvbHkgMC4wKSAocG9seUV4dFNvdXJjZSAwLjApIChtaW5TcGFjZVNyY092ZXJXZWxsIDAuMCkgKG1pblNwYWNlRW5kVGFwRHJhaW4gMC4wKSAobWluU3BhY2VFbmRUYXBTb3VyY2UgMC4wKSAoZW5kVGFwTGF5ZXIgImhpbGl0ZSIpIChlbmRUYXBXaWR0aCAwLjApIChlbmRUYXBJbXBsYW50IG5pbCkgKGVuZFRhcEltcEVuYyAwLjApICh3ZWxsRW5jRGlmZlRhcCAwLjApICh3ZWxsRW5jVGFwIDAuMCkgKHNoYXJlZFNyY1dpZHRoIDAuMCkpAChpZigoKGluV2VsbCA9PSB0KSB8fCAoaW5XZWxsID09ICJUUlVFIikpIHRoZW4gKGluV2VsbCA9IHQpIGVsc2UgKGluV2VsbCA9IG5pbCkpIGlmKCgoY2VudGVyID09IHQpIHx8IChjZW50ZXIgPT0gIlRSVUUiKSkgdGhlbiAoY2VudGVyID0gdCkgZWxzZSAoY2VudGVyID0gbmlsKSkgKGxheWVycGFyYW1zID0gY2FhcihsYXllcnBhcmFtcykpIChsYXllcjFwYXJhbXMgPSBjYXIobGF5ZXJwYXJhbXMpKSAobGF5ZXIxUmVjdCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBjYXIobGF5ZXIxcGFyYW1zKSA/d2lkdGggdyA/bGVuZ3RoIGwpKSBpZigoY2VudGVyID09IHQpIHRoZW4gKHJvZEFsaWduID9hbGlnbk9iaiBsYXllcjFSZWN0ID9hbGlnbkhhbmRsZSAiY0MiID9yZWZQb2ludCBsaXN0KDAgMCkpKSAocmVmUG9pbnQgPSBsYXllcjFSZWN0KSAocmVjdElkID0gKGxheWVyMVJlY3R+PmRiSWQpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJvdExheWVyIiAibGlzdCIgKHJlY3RJZH4+bHBwKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllckJib3giICJsaXN0IiAocmVjdElkfj5iQm94KSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJkaWZmTGF5ZXIiICJsaXN0IiAocmVjdElkfj5scHApKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImRpZmZMYXllckJib3giICJsaXN0IiAocmVjdElkfj5iQm94KSkgKGlzTGF5ZXIxID0gdCkgdW5sZXNzKChsZW5ndGgobGF5ZXIxcGFyYW1zKSA8IDgpIGlmKGluV2VsbCB0aGVuIChsYXllcjFJbXBQYXJhbXMgPSBjYWRyKGNhZGRkcihjZGRkZHIobGF5ZXIxcGFyYW1zKSkpKSBlbHNlIChsYXllcjFJbXBQYXJhbXMgPSBjYXIoY2FkZGRyKGNkZGRkcihsYXllcjFwYXJhbXMpKSkpKSBmb3JlYWNoKGxheWVyMUltcCBsYXllcjFJbXBQYXJhbXMgKGxheWVyMUltcFJlY3QgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgY2FyKGxheWVyMUltcCkgP2Zyb21PYmogbGF5ZXIxUmVjdCA/c2l6ZSBjYWRyKGxheWVyMUltcCkpKSkpIHdoaWxlKChsYXllcnBhcmFtcyAhPSBuaWwpIGlmKChsZW5ndGgobGF5ZXJwYXJhbXMpID09IDEpIHRoZW4gKHRvcExheWVyUGFyYW1zID0gY2FyKGxheWVycGFyYW1zKSkgKGxheWVycGFyYW1zID0gbmlsKSAodmlhUGFyYW1zID0gbmlsKSAoYm90TGF5ZXJQYXJhbXMgPSBuaWwpIGVsc2UgKGJvdExheWVyUGFyYW1zID0gY2FyKGxheWVycGFyYW1zKSkgKHZpYVBhcmFtcyA9IGNhZHIobGF5ZXJwYXJhbXMpKSAodG9wTGF5ZXJQYXJhbXMgPSBjYWRkcihsYXllcnBhcmFtcykpIChsYXllcnBhcmFtcyA9IGNkZHIobGF5ZXJwYXJhbXMpKSkgaWYodmlhUGFyYW1zIHRoZW4gKHZpYUxheWVyID0gY2FyKHZpYVBhcmFtcykpICh2aWFXaWR0aCA9IGNhZHIodmlhUGFyYW1zKSkgKHZpYVNwYWNpbmcgPSBjYWRkcih2aWFQYXJhbXMpKSBpZigobGVuZ3RoKHZpYVBhcmFtcykgPiAzKSB0aGVuICh2aWFJbXBQYXJhbXMgPSBjYWRkZHIodmlhUGFyYW1zKSkgKHZpYUltcExheWVyID0gY2FyKHZpYUltcFBhcmFtcykpICh2aWFJbXBFbmMgPSBjYWRyKHZpYUltcFBhcmFtcykpIGVsc2UgKHZpYUltcFBhcmFtcyA9IG5pbCkpKSBpZihib3RMYXllclBhcmFtcyB0aGVuIChib3RMYXllciA9IGNhcihib3RMYXllclBhcmFtcykpIChib3RMYXllckVuY1ZpYVhSID0gY2FkZGRyKGNkcihib3RMYXllclBhcmFtcykpKSAoYm90TGF5ZXJFbmNWaWFYTCA9IGNhZGRkcihjZGRyKGJvdExheWVyUGFyYW1zKSkpIChib3RMYXllckVuY1ZpYVkgPSBjYWRkZHIoY2RkZHIoYm90TGF5ZXJQYXJhbXMpKSkgaWYoKGxlbmd0aChib3RMYXllclBhcmFtcykgPiA3KSB0aGVuIChib3RMYXllckltcFBhcmFtcyA9IGNhZGRkcihjZGRkcihjZHIoYm90TGF5ZXJQYXJhbXMpKSkpIGlmKGluV2VsbCB0aGVuIChib3RMYXllckltcFBhcmFtcyA9IGNhZHIoYm90TGF5ZXJJbXBQYXJhbXMpKSBlbHNlIChib3RMYXllckltcFBhcmFtcyA9IGNhcihib3RMYXllckltcFBhcmFtcykpKSkpICh0b3BMYXllciA9IGNhcih0b3BMYXllclBhcmFtcykpICh0b3BMYXllckVuY1ZpYVhSID0gY2Fkcih0b3BMYXllclBhcmFtcykpICh0b3BMYXllckVuY1ZpYVhMID0gY2FkZHIodG9wTGF5ZXJQYXJhbXMpKSAodG9wTGF5ZXJFbmNWaWFZID0gY2FkZGRyKHRvcExheWVyUGFyYW1zKSkgaWYoKGxlbmd0aCh0b3BMYXllclBhcmFtcykgPiA3KSB0aGVuICh0b3BMYXllckltcFBhcmFtcyA9IGNhZGRkcihjZGRkcihjZHIodG9wTGF5ZXJQYXJhbXMpKSkpIGlmKGluV2VsbCB0aGVuICh0b3BMYXllckltcFBhcmFtcyA9IGNhZHIodG9wTGF5ZXJJbXBQYXJhbXMpKSBlbHNlICh0b3BMYXllckltcFBhcmFtcyA9IGNhcih0b3BMYXllckltcFBhcmFtcykpKSkgaWYodmlhUGFyYW1zIHRoZW4gKG51bVZpYUNvbnRhY3RzVyA9IChmbG9vciAodyAvIHZpYVdpZHRoKSkpIChudW1WaWFDb250YWN0c0wgPSAoZmxvb3IgKGwgLyB2aWFXaWR0aCkpKSBpZihpc0xheWVyMSB0aGVuIHdoaWxlKChtYXgoKCh0b3BMYXllckVuY1ZpYVhSICsgdG9wTGF5ZXJFbmNWaWFYTCArIChudW1WaWFDb250YWN0c1cgKiB2aWFXaWR0aCkgKyAoKG51bVZpYUNvbnRhY3RzVyAtIDEpICogdmlhU3BhY2luZykpIC0gMWUtMDYpICgoYm90TGF5ZXJFbmNWaWFYUiArIGJvdExheWVyRW5jVmlhWEwgKyAobnVtVmlhQ29udGFjdHNXICogdmlhV2lkdGgpICsgKChudW1WaWFDb250YWN0c1cgLSAxKSAqIHZpYVNwYWNpbmcpKSAtIDFlLTA2KSkgPiB3KSAobnVtVmlhQ29udGFjdHNXID0gKG51bVZpYUNvbnRhY3RzVyAtIDEpKSkgd2hpbGUoKG1heCgoKCgyICogdG9wTGF5ZXJFbmNWaWFZKSArIChudW1WaWFDb250YWN0c0wgKiB2aWFXaWR0aCkgKyAoKG51bVZpYUNvbnRhY3RzTCAtIDEpICogdmlhU3BhY2luZykpIC0gMWUtMDYpICgoKDIgKiBib3RMYXllckVuY1ZpYVkpICsgKG51bVZpYUNvbnRhY3RzTCAqIHZpYVdpZHRoKSArICgobnVtVmlhQ29udGFjdHNMIC0gMSkgKiB2aWFTcGFjaW5nKSkgLSAxZS0wNikpID4gbCkgKG51bVZpYUNvbnRhY3RzTCA9IChudW1WaWFDb250YWN0c0wgLSAxKSkpIGVsc2Ugd2hpbGUoKCgoKG51bVZpYUNvbnRhY3RzVyAqIHZpYVdpZHRoKSArICgobnVtVmlhQ29udGFjdHNXIC0gMSkgKiB2aWFTcGFjaW5nKSkgLSAxZS0wNikgPiB3KSAobnVtVmlhQ29udGFjdHNXID0gKG51bVZpYUNvbnRhY3RzVyAtIDEpKSkgd2hpbGUoKG1heCgoKCgyICogdG9wTGF5ZXJFbmNWaWFZKSArIChudW1WaWFDb250YWN0c0wgKiB2aWFXaWR0aCkgKyAoKG51bVZpYUNvbnRhY3RzTCAtIDEpICogdmlhU3BhY2luZykpIC0gMWUtMDYpICgoKDIgKiBib3RMYXllckVuY1ZpYVkpICsgKG51bVZpYUNvbnRhY3RzTCAqIHZpYVdpZHRoKSArICgobnVtVmlhQ29udGFjdHNMIC0gMSkgKiB2aWFTcGFjaW5nKSkgLSAxZS0wNikpID4gbCkgKG51bVZpYUNvbnRhY3RzTCA9IChudW1WaWFDb250YWN0c0wgLSAxKSkpKSBpZigobnVtVmlhQ29udGFjdHNXIDwgMSkgdGhlbiBlcnJvcigic2ltcGxlQ29udGFjdENsYXNzOiBXaWR0aCBnaXZlbiBpcyB0b28gc21hbGwgdG8gZml0IHZpYXMgLSAlTCIgKHRjQ2VsbFZpZXd+PmNlbGxOYW1lKSkpIGlmKChudW1WaWFDb250YWN0c0wgPCAxKSB0aGVuIGVycm9yKCJzaW1wbGVDb250YWN0Q2xhc3M6IExlbmd0aCBnaXZlbiBpcyB0b28gc21hbGwgdG8gZml0IHZpYXMgLSAlTCIgKHRjQ2VsbFZpZXd+PmNlbGxOYW1lKSkpICh2aWFDb250YWN0cyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBib3RMYXllciA/d2lkdGggKGJvdExheWVyRW5jVmlhWFIgKyBib3RMYXllckVuY1ZpYVhMICsgKCgobnVtVmlhQ29udGFjdHNXIC0gMSkgKiB2aWFTcGFjaW5nKSArIChudW1WaWFDb250YWN0c1cgKiB2aWFXaWR0aCkpKSA/bGVuZ3RoICgoMiAqIGJvdExheWVyRW5jVmlhWSkgKyAoKChudW1WaWFDb250YWN0c0wgLSAxKSAqIHZpYVNwYWNpbmcpICsgKG51bVZpYUNvbnRhY3RzTCAqIHZpYVdpZHRoKSkpID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciB2aWFMYXllciA/d2lkdGggdmlhV2lkdGggP2xlbmd0aCB2aWFXaWR0aCA/c3BhY2VZIHZpYVNwYWNpbmcgP3NwYWNlWCB2aWFTcGFjaW5nID9sb3dlckxlZnRPZmZzZXRZIGJvdExheWVyRW5jVmlhWSA/dXBwZXJSaWdodE9mZnNldFkgKC0gYm90TGF5ZXJFbmNWaWFZKSA/bG93ZXJMZWZ0T2Zmc2V0WCBib3RMYXllckVuY1ZpYVhMID91cHBlclJpZ2h0T2Zmc2V0WCAoLSBib3RMYXllckVuY1ZpYVhSKSA/Z2FwICJtaW5pbXVtIikpKSkgdW5sZXNzKChsZW5ndGgoYm90TGF5ZXJQYXJhbXMpIDwgOCkgZm9yZWFjaChib3RMYXllckltcCBib3RMYXllckltcFBhcmFtcyAoYm90TGF5ZXJJbXBSZWN0ID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGNhcihib3RMYXllckltcCkgP2Zyb21PYmogdmlhQ29udGFjdHMgP3NpemUgY2Fkcihib3RMYXllckltcCkpKSkpIGlmKHZpYUltcFBhcmFtcyB0aGVuICh2aWFJbXBsYW50ID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHZpYUltcExheWVyID93aWR0aCAoKDIgKiB2aWFJbXBFbmMpICsgKCgobnVtVmlhQ29udGFjdHNXIC0gMSkgKiB2aWFTcGFjaW5nKSArIChudW1WaWFDb250YWN0c1cgKiB2aWFXaWR0aCkpKSA/bGVuZ3RoICgoMiAqIHZpYUltcEVuYykgKyAoKChudW1WaWFDb250YWN0c0wgLSAxKSAqIHZpYVNwYWNpbmcpICsgKG51bVZpYUNvbnRhY3RzTCAqIHZpYVdpZHRoKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiB2aWFJbXBsYW50ID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogdmlhQ29udGFjdHMgP3JlZkhhbmRsZSAiY0MiID94U2VwICgoYm90TGF5ZXJFbmNWaWFYTCAtIGJvdExheWVyRW5jVmlhWFIpIC8gMikpKSBpZihpc0xheWVyMSB0aGVuIChyb2RBbGlnbiA/YWxpZ25PYmogdmlhQ29udGFjdHMgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiByZWZQb2ludCA/cmVmSGFuZGxlICJjQyIpIGVsc2UgKHJvZEFsaWduID9hbGlnbk9iaiB2aWFDb250YWN0cyA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIHJlZlBvaW50ID9yZWZIYW5kbGUgImNDIiA/eFNlcCAoKGJvdExheWVyRW5jVmlhWEwgLSBib3RMYXllckVuY1ZpYVhSKSAvIDIpKSkgKHJlZlBvaW50ID0gdmlhQ29udGFjdHMpKSAobGF5ZXIyVyA9ICgoKG51bVZpYUNvbnRhY3RzVyAtIDEpICogdmlhU3BhY2luZykgKyAobnVtVmlhQ29udGFjdHNXICogdmlhV2lkdGgpICsgdG9wTGF5ZXJFbmNWaWFYUiArIHRvcExheWVyRW5jVmlhWEwpKSAobGF5ZXIyTCA9ICgoKG51bVZpYUNvbnRhY3RzTCAtIDEpICogdmlhU3BhY2luZykgKyAobnVtVmlhQ29udGFjdHNMICogdmlhV2lkdGgpICsgKDIgKiB0b3BMYXllckVuY1ZpYVkpKSkgKGxheWVyMlJlY3QgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdG9wTGF5ZXIgP3dpZHRoIGxheWVyMlcgP2xlbmd0aCBsYXllcjJMKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsYXllcjJSZWN0ID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogcmVmUG9pbnQgP3JlZkhhbmRsZSAiY0MiID94U2VwICgoYm90TGF5ZXJFbmNWaWFYTCAtIGJvdExheWVyRW5jVmlhWFIpIC8gMikpIHdoZW4oKGxheWVycGFyYW1zID09IG5pbCkgKHJlY3RJZCA9IChsYXllcjJSZWN0fj5kYklkKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllciIgImxpc3QiIChyZWN0SWR+PmxwcCkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAibGlzdCIgKHJlY3RJZH4+YkJveCkpKSB1bmxlc3MoKGxlbmd0aChsYXllcnBhcmFtcykgPT0gMSkgKHJlZlBvaW50ID0gbGF5ZXIyUmVjdCkpIHVubGVzcygobGVuZ3RoKHRvcExheWVyUGFyYW1zKSA8IDgpIGZvcmVhY2godG9wTGF5ZXJJbXAgdG9wTGF5ZXJJbXBQYXJhbXMgKHRvcExheWVySW1wUmVjdCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBjYXIodG9wTGF5ZXJJbXApID9mcm9tT2JqIGxheWVyMlJlY3QgP3NpemUgY2Fkcih0b3BMYXllckltcCkpKSkpIChpc0xheWVyMSA9IG5pbCkpKQAobGF5ZXJwYXJhbXMgdyBsIGluV2VsbCBjZW50ZXIgbGF5ZXIxcGFyYW1zIGxheWVyMVJlY3QgcmVmUG9pbnQgcmVjdElkIGlzTGF5ZXIxIGxheWVyMUltcFBhcmFtcyBsYXllcjFJbXAgbGF5ZXIxSW1wUmVjdCB0b3BMYXllclBhcmFtcyB2aWFQYXJhbXMgYm90TGF5ZXJQYXJhbXMgdmlhTGF5ZXIgdmlhV2lkdGggdmlhU3BhY2luZyB2aWFJbXBQYXJhbXMgdmlhSW1wTGF5ZXIgdmlhSW1wRW5jIGJvdExheWVyIGJvdExheWVyRW5jVmlhWFIgYm90TGF5ZXJFbmNWaWFYTCBib3RMYXllckVuY1ZpYVkgYm90TGF5ZXJJbXBQYXJhbXMgdG9wTGF5ZXIgdG9wTGF5ZXJFbmNWaWFYUiB0b3BMYXllckVuY1ZpYVhMIHRvcExheWVyRW5jVmlhWSB0b3BMYXllckltcFBhcmFtcyBudW1WaWFDb250YWN0c1cgbnVtVmlhQ29udGFjdHNMIHZpYUNvbnRhY3RzIGJvdExheWVySW1wIGJvdExheWVySW1wUmVjdCB2aWFJbXBsYW50IGxheWVyMlcgbGF5ZXIyTCBsYXllcjJSZWN0IHRvcExheWVySW1wIHRvcExheWVySW1wUmVjdCkAKCh3IDAuMCkgKGwgMC4wKSAoaW5XZWxsICJUUlVFIikgKGNlbnRlciAiRkFMU0UiKSkAKChsYXllcnBhcmFtcyBuaWwpKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKChzaGFyZWRDb250YWN0ID0gY29udGFjdHMpIChsYXN0Q29udGFjdCA9IGNvbnRhY3RzKSAoZmlyc3RDb250YWN0ID0gY29udGFjdHMpIChnTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImMwIikpIChkYkNyZWF0ZVRlcm0gZ05ldCAiYzAiICJpbnB1dCIpIChiTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImMxIikpIChkYkNyZWF0ZVRlcm0gYk5ldCAiYzEiICJpbnB1dE91dHB1dCIpIChuZXRMID0gIkIiKSB3aGVuKChtIDwgMSkgKG0gPSAxKSkgKHgxQ29vcmQgPSAwLjApICh5MUNvb3JkID0gMC4wKSAobGFzdFgxQ29vcmQgPSAoLSAoMi4wICogKGRlcFhFbmMgKyBkZXBTcGFjZSkpKSkgd2hlbihkZXBMYXllciAoeTFEZXBDb29yZCA9ICh5MUNvb3JkIC0gZGVwWUVuYykpICh5MkRlcENvb3JkID0gKHkxQ29vcmQgKyB3ICsgZGVwWUVuYykpKSB3aGVuKChmaXJzdENvbnRhY3QgIT0gIiIpIChjb250YWN0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZmlyc3RDb250YWN0ICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoY29udGFjdElkIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZC9vcGVuIGZpcnN0Q29udGFjdCBjb250YWN0IGNlbGwgYCVzJyIgZmlyc3RDb250YWN0KSkpIHVubGVzcygoY29udGFjdElkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgZmlyc3RDb250YWN0KSkpIChvZmZzZXQgPSAoYnVsa09mZnNldCArIGNvbnRhY3RHYXRlU3BhY2UpKSAoaW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGNvbnRhY3RJZCAiYzAiICgoLSBvZmZzZXQpOjApICJNWSIgMSBsaXN0KGxpc3QoImwiICJmbG9hdCIgdykgbGlzdCgiaW5XZWxsIiAiYm9vbGVhbiIgdCkpKSkgdW5sZXNzKGluc3QgZXJyb3Ioc3ByaW50ZihuaWwgIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgYCVzJyIgZmlyc3RDb250YWN0KSkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwTGF5ZXIgbGlzdCgoKHgxQ29vcmQgLSBvZmZzZXQpOnkxQ29vcmQpICh4MUNvb3JkOncpKSkpIChtYXN0ZXIgPSAoaW5zdH4+bWFzdGVyKSkgKGZpcnN0Q29uTWFzdGVyID0gbWFzdGVyKSB1bmxlc3MoKChtYXN0ZXJ+PnRvcExheWVyKSAmJiAobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSBlcnJvcihzcHJpbnRmKG5pbCAiTWlzc2luZyB0b3BMYXllciBhbmQvb3IgdG9wTGF5ZXJQaW5CYm94IGNlbGwgcHJvcGVydGllcyBpbiBgJXMnIiBmaXJzdENvbnRhY3QpKSkgKHlvZmZzZXQgPSAwKSAoYkJveCA9IGxpc3QobGlzdCgoLSAob2Zmc2V0ICsgY2FhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpICh5b2Zmc2V0ICsgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSBsaXN0KCgtIChvZmZzZXQgKyBjYWFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpICh5b2Zmc2V0ICsgY2FkYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkpKSAoZmlyc3RCYm94ID0gYkJveCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgKG1hc3Rlcn4+dG9wTGF5ZXIpIGJCb3gpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gYk5ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiKSBhY2Nlc3NEaXIpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoY2FhcihiQm94KSArICgoY2FhZHIoYkJveCkgLSBjYWFyKGJCb3gpKSAvIDIuMCkpIChjYWRhcihiQm94KSArICgoY2FkYWRyKGJCb3gpIC0gY2FkYXIoYkJveCkpIC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKHdlbGxMYXllciB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGZpcnN0Q29udGFjdCkpKSAoeDFEaWZmQ29vcmQgPSBjYWFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh4MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh4MVdlbGxDb29yZCA9ICgtIChvZmZzZXQgKyBtYXgoKHdlbGxFbmNUYXAgKyB4MURpZmZDb29yZCkgKHdlbGxFbmNUYXAgKyB4MVRhcENvb3JkKSkpKSkgKHkxRGlmZkNvb3JkID0gY2FkYXIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTFXZWxsQ29vcmQgPSAoLSBtYXgoKHdlbGxFbmNUYXAgKyB5MURpZmZDb29yZCkgKHdlbGxFbmNUYXAgKyB5MVRhcENvb3JkKSkpKSAoeTJEaWZmQ29vcmQgPSBjYWRhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTJUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFkcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkyV2VsbENvb3JkID0gbWF4KCh3ZWxsRW5jVGFwICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwICsgeTJUYXBDb29yZCkpKSkgd2hlbihpbXBsYW50TGF5ZXIgdW5sZXNzKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBkaWZmTGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnIiBmaXJzdENvbnRhY3QpKSkgKHgxRGlmZkNvb3JkID0gY2FhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeDFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeDFJbXBDb29yZCA9ICgtIChvZmZzZXQgKyBtYXgoKHRhcEltcEVuYyArIHgxRGlmZkNvb3JkKSAodGFwSW1wRW5jICsgeDFUYXBDb29yZCkpKSkpICh5MURpZmZDb29yZCA9IGNhZGFyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkxVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkxSW1wQ29vcmQgPSAoLSBtYXgoKHRhcEltcEVuYyArIHkxRGlmZkNvb3JkKSAodGFwSW1wRW5jICsgeTFUYXBDb29yZCkpKSkgKHkyRGlmZkNvb3JkID0gY2FkYWRyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkyVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MkltcENvb3JkID0gbWF4KCh0YXBJbXBFbmMgKyB5MkRpZmZDb29yZCkgKHRhcEltcEVuYyArIHkyVGFwQ29vcmQpKSkpIChkYkNsb3NlIGNvbnRhY3RJZCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGxpc3QoKCh4MUNvb3JkIC0gdGFwRXh0KTp5MUNvb3JkKSAoeDFDb29yZDp3KSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gYk5ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiKSBhY2Nlc3NEaXIpIHdoZW4oKGZpcnN0Q29udGFjdCA9PSAiIikgd2hlbihsYWJlbExheWVyIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KCgtICh4MUNvb3JkICsgKHRhcEV4dCAvIDIuMCkpKSAoeTFDb29yZCArICh3IC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKHdlbGxMYXllciAoeDFXZWxsQ29vcmQgPSAoLSAoeDFDb29yZCArIHRhcEV4dCArIHdlbGxFbmNUYXApKSkgKHkxV2VsbENvb3JkID0gKC0gKHkxQ29vcmQgKyB3ZWxsRW5jVGFwKSkpICh5MldlbGxDb29yZCA9ICh5MUNvb3JkICsgdyArIHdlbGxFbmNUYXApKSkgd2hlbihpbXBsYW50TGF5ZXIgKHgxSW1wQ29vcmQgPSAoLSAoeDFDb29yZCArIHRhcEV4dCArIHRhcEltcEVuYykpKSAoeTFJbXBDb29yZCA9ICgtICh5MUNvb3JkICsgdGFwSW1wRW5jKSkpICh5MkltcENvb3JkID0gKHkxQ29vcmQgKyB3ICsgdGFwSW1wRW5jKSkpKSB3aGVuKChtID4gMSkgd2hlbigoc2hhcmVkQ29udGFjdCA9PSAiIikgZXJyb3IoIk1pc3Npbmcgc2hhcmVkIGNvbnRhY3QgbmFtZSBwcm9wZXJ0eSIpKSAoc2hhcmVkQ29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIHNoYXJlZENvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhzaGFyZWRDb250YWN0SWQgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kL29wZW4gc2hhcmVkIGNvbnRhY3QgY2VsbCBgJXMnIiBzaGFyZWRDb250YWN0KSkpIHVubGVzcygoc2hhcmVkQ29udGFjdElkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgc2hhcmVkQ29udGFjdCkpKSkgdW5sZXNzKChnYXRlQ29udGFjdCA9PSAiIikgKGdhdGVDb24gPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZ2F0ZUNvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhnYXRlQ29uIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZC9vcGVuIGdhdGUgY29udGFjdCBjZWxsIGAlcyciIGdhdGVDb24pKSkgdW5sZXNzKChnYXRlQ29ufj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgZ2F0ZUNvbikpKSkgZm9yKG4gMSBtIHdoZW4oKG4gPT0gMSkgKGZpcnN0WCA9IHgxQ29vcmQpKSB3aGVuKChuID09IG0pIChsYXN0WCA9ICh4MUNvb3JkICsgbCkpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBnYXRlTGF5ZXIgbGlzdCgoeDFDb29yZDooeTFDb29yZCAtIGdhdGVFeHQpKSAoKHgxQ29vcmQgKyBsKTooeTFDb29yZCArIHcgKyBnYXRlRXh0KSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBnTmV0KSB3aGVuKHZhckNoYW5uZWxJbXAgKHZhckNoYW5uZWxJbXBJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2YXJDaGFubmVsSW1wIGxpc3QoKCh4MUNvb3JkIC0gdmFyQ2hhbm5lbEltcEVuYyk6KHkxQ29vcmQgLSB2YXJDaGFubmVsSW1wRW5jKSkgKCh4MUNvb3JkICsgbCArIHZhckNoYW5uZWxJbXBFbmMpOih5MUNvb3JkICsgdyArIHZhckNoYW5uZWxJbXBFbmMpKSkpKSkgd2hlbigoZ2F0ZUNvbnRhY3QgPT0gIiIpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciBsaXN0KCh4MUNvb3JkOih5MUNvb3JkICsgdykpICgoeDFDb29yZCArIGwpOih5MUNvb3JkICsgdyArIGdhdGVFeHQpKSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIpIGFjY2Vzc0RpcikgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIGxpc3QoKHgxQ29vcmQ6KHkxQ29vcmQgLSBnYXRlRXh0KSkgKCh4MUNvb3JkICsgbCk6eTFDb29yZCkpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGdOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJib3R0b20iKSBhY2Nlc3NEaXIpKSBpZigoKGdhdGVDb250YWN0ICE9ICIiKSAmJiAobiA9PSBtKSkgdGhlbiAoZHVtbXlHYXRlQ29udGFjdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGdhdGVDb24gc3ByaW50ZihuaWwgImR1bSVkIiBuKSAoMDowKSAiUjAiIDEpKSAoYmFzZUdhdGVDb25NYXN0ZXIgPSAoZHVtbXlHYXRlQ29udGFjdH4+bWFzdGVyKSkgKGJhc2VHYXRlQ29uQmJveCA9IChiYXNlR2F0ZUNvbk1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkgKGJhc2VHYXRlQ29uVyA9IGFicygoY2FhcihiYXNlR2F0ZUNvbkJib3gpIC0gY2FhZHIoYmFzZUdhdGVDb25CYm94KSkpKSAoYmFzZUdhdGVDb25MID0gYWJzKChjYWRhcihiYXNlR2F0ZUNvbkJib3gpIC0gY2FkYWRyKGJhc2VHYXRlQ29uQmJveCkpKSkgKGRiRGVsZXRlT2JqZWN0IGR1bW15R2F0ZUNvbnRhY3QpIChiaWdHYXRlU2l6ZSA9IG1heChiYXNlR2F0ZUNvblcgKCgyICogYmFzZUdhdGVDb25MKSArIChsYXN0WCAtIGZpcnN0WCkpKSkgKGdhdGVDb25JbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgZ2F0ZUNvbiBzcHJpbnRmKG5pbCAiZzAlZCIgbikgKGZpcnN0WDooeTFDb29yZCAtIGdhdGVFeHQpKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGJpZ0dhdGVTaXplKSBsaXN0KCJsIiAiZmxvYXQiIGJhc2VHYXRlQ29uTCkpKSkgaWYoZG91YmxlR2F0ZUNvbnRhY3RzIHRoZW4gKGdhdGVDb25JbnN0MiA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGdhdGVDb24gc3ByaW50ZihuaWwgImcxJWQiIG4pIChmaXJzdFg6KHkxQ29vcmQgLSBnYXRlRXh0KSkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBiaWdHYXRlU2l6ZSkgbGlzdCgibCIgImZsb2F0IiBiYXNlR2F0ZUNvbkwpKSkpKSB1bmxlc3MoZ2F0ZUNvbkluc3QgZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgZ2F0ZSBjb250YWN0IikpIChnYXRlQ29uTWFzdGVyID0gKGdhdGVDb25JbnN0fj5tYXN0ZXIpKSAoZ2F0ZUNvbk1hc3RlcjEgPSAoZ2F0ZUNvbkluc3R+Pm1hc3RlcikpIChnYXRlQ29uMUJib3ggPSAoZ2F0ZUNvbk1hc3RlcjF+PnRvcExheWVyUGluQmJveCkpIChnYXRlQ29uWU9mZnNldCA9IGNhZGFkcigoZ2F0ZUNvbk1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkpIHNldFNHcShnYXRlQ29uSW5zdCBsaXN0KChmaXJzdFggKyAoKGxhc3RYIC0gZmlyc3RYKSAvIDIpKSAoeTFDb29yZCAtIGdhdGVFeHQgLSBnYXRlQ29uWU9mZnNldCkpIHh5KSB1bmxlc3MoKChnYXRlQ29uTWFzdGVyMX4+dG9wTGF5ZXIpICYmIChnYXRlQ29uTWFzdGVyMX4+dG9wTGF5ZXJQaW5CYm94KSkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgdG9wTGF5ZXIgYW5kL29yIHRvcExheWVyUGluQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgKGNvbnRhY3RJZH4+Y2VsbE5hbWUpKSkpIChiQm94ID0gbGlzdChsaXN0KChjYWFyKChnYXRlQ29uTWFzdGVyMX4+dG9wTGF5ZXJQaW5CYm94KSkgKyBjYXIoKGdhdGVDb25JbnN0fj54eSkpKSAoY2FkYXIoKGdhdGVDb25NYXN0ZXIxfj50b3BMYXllclBpbkJib3gpKSArIGNhZHIoKGdhdGVDb25JbnN0fj54eSkpKSkgbGlzdCgoY2FhZHIoKGdhdGVDb25NYXN0ZXIxfj50b3BMYXllclBpbkJib3gpKSArIGNhcigoZ2F0ZUNvbkluc3R+Pnh5KSkpIChjYWRhZHIoKGdhdGVDb25NYXN0ZXIxfj50b3BMYXllclBpbkJib3gpKSArIGNhZHIoKGdhdGVDb25JbnN0fj54eSkpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyAoZ2F0ZUNvbk1hc3RlcjF+PnRvcExheWVyKSBiQm94KSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGdOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJib3R0b20iKSBhY2Nlc3NEaXIpIChiQm94MSA9IGxpc3QobGlzdChmaXJzdFggKGNhZGFyKChnYXRlQ29uTWFzdGVyMX4+Ym90TGF5ZXJCYm94KSkgKyBjYWRyKChnYXRlQ29uSW5zdH4+eHkpKSkpIGxpc3QobGFzdFggKGNhZGFkcigoZ2F0ZUNvbk1hc3RlcjF+PmJvdExheWVyQmJveCkpICsgY2FkcigoZ2F0ZUNvbkluc3R+Pnh5KSkpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyAoZ2F0ZUNvbk1hc3RlcjF+PmJvdExheWVyKSBiQm94MSkgaWYoZG91YmxlR2F0ZUNvbnRhY3RzIHRoZW4gc2V0U0dxKGdhdGVDb25JbnN0MiBsaXN0KChmaXJzdFggKyAoKGxhc3RYIC0gZmlyc3RYKSAvIDIpKSAodyArIHkxQ29vcmQgKyBnYXRlRXh0ICsgZ2F0ZUNvbllPZmZzZXQpKSB4eSkgKGdhdGVDb25NYXN0ZXIyID0gKGdhdGVDb25JbnN0Mn4+bWFzdGVyKSkgKGdhdGVDb24yQmJveCA9IChnYXRlQ29uTWFzdGVyMn4+dG9wTGF5ZXJQaW5CYm94KSkgdW5sZXNzKCgoZ2F0ZUNvbk1hc3RlcjJ+PnRvcExheWVyKSAmJiAoZ2F0ZUNvbk1hc3RlcjJ+PnRvcExheWVyUGluQmJveCkpIGVycm9yKHNwcmludGYobmlsICJNaXNzaW5nIHRvcExheWVyIGFuZC9vciB0b3BMYXllclBpbkJib3ggY2VsbCBwcm9wZXJ0aWVzIGluIGAlcyciIChjb250YWN0SWR+PmNlbGxOYW1lKSkpKSAoYkJveCA9IGxpc3QobGlzdCgoY2FhcigoZ2F0ZUNvbk1hc3RlcjJ+PnRvcExheWVyUGluQmJveCkpICsgY2FyKChnYXRlQ29uSW5zdDJ+Pnh5KSkpIChjYWRhcigoZ2F0ZUNvbk1hc3RlcjJ+PnRvcExheWVyUGluQmJveCkpICsgY2FkcigoZ2F0ZUNvbkluc3Qyfj54eSkpKSkgbGlzdCgoY2FhZHIoKGdhdGVDb25NYXN0ZXIyfj50b3BMYXllclBpbkJib3gpKSArIGNhcigoZ2F0ZUNvbkluc3Qyfj54eSkpKSAoY2FkYWRyKChnYXRlQ29uTWFzdGVyMn4+dG9wTGF5ZXJQaW5CYm94KSkgKyBjYWRyKChnYXRlQ29uSW5zdDJ+Pnh5KSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IChnYXRlQ29uTWFzdGVyMn4+dG9wTGF5ZXIpIGJCb3gpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIikgYWNjZXNzRGlyKSAoYkJveDIgPSBsaXN0KGxpc3QoZmlyc3RYIChjYWRhcigoZ2F0ZUNvbk1hc3RlcjJ+PmJvdExheWVyQmJveCkpICsgY2FkcigoZ2F0ZUNvbkluc3Qyfj54eSkpKSkgbGlzdChsYXN0WCAoY2FkYWRyKChnYXRlQ29uTWFzdGVyMn4+Ym90TGF5ZXJCYm94KSkgKyBjYWRyKChnYXRlQ29uSW5zdDJ+Pnh5KSkpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyAoZ2F0ZUNvbk1hc3RlcjJ+PmJvdExheWVyKSBiQm94MikpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKHgxQ29vcmQgKyBsKTooeTFDb29yZCArIHcpKSkpIHdoZW4oZGVwTGF5ZXIgY29uZCgoKCh4MUNvb3JkIC0gbGFzdFgxQ29vcmQgLSAoMi4wICogZGVwWEVuYykpIDwgZGVwU3BhY2UpICh4MURlcENvb3JkID0gKGxhc3RYMUNvb3JkICsgZGVwWEVuYykpKSAodCAoeDFEZXBDb29yZCA9ICh4MUNvb3JkIC0gZGVwWEVuYykpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRlcExheWVyIGxpc3QoKHgxRGVwQ29vcmQ6eTFEZXBDb29yZCkgKCh4MUNvb3JkICsgbCArIGRlcFhFbmMpOnkyRGVwQ29vcmQpKSkpICh4MUNvb3JkID0gKHgxQ29vcmQgKyBsKSkgd2hlbigobiAhPSBtKSAoY29udGFjdElkID0gc2hhcmVkQ29udGFjdElkKSAob2Zmc2V0ID0gKGJ1bGtPZmZzZXQgKyBjb250YWN0R2F0ZVNwYWNlKSkgKGluc3QgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBjb250YWN0SWQgc3ByaW50ZihuaWwgImMlZCIgbikgKChvZmZzZXQgKyB4MUNvb3JkKTp5MUNvb3JkKSAiUjAiIDEgbGlzdChsaXN0KCJsIiAiZmxvYXQiIHcpIGxpc3QoImluV2VsbCIgImJvb2xlYW4iIHQpKSkpIHVubGVzcyhpbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGAlcyciIChjb250YWN0SWR+PmNlbGxOYW1lKSkpKSAobWFzdGVyID0gKGluc3R+Pm1hc3RlcikpIChzaGFyZWRDb25NYXN0ZXIgPSBtYXN0ZXIpIHVubGVzcygoKG1hc3Rlcn4+dG9wTGF5ZXIpICYmIChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpIGVycm9yKHNwcmludGYobmlsICJNaXNzaW5nIHRvcExheWVyIGFuZC9vciB0b3BMYXllclBpbkJib3ggY2VsbCBwcm9wZXJ0aWVzIGluIGAlcyciIChjb250YWN0SWR+PmNlbGxOYW1lKSkpKSAoeW9mZnNldCA9IDApIChiQm94ID0gbGlzdChsaXN0KChjYWFyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpICsgeDFDb29yZCArIG9mZnNldCkgKHlvZmZzZXQgKyBjYWRhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpIGxpc3QoKGNhYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpICsgeDFDb29yZCArIG9mZnNldCkgKHlvZmZzZXQgKyBjYWRhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IChtYXN0ZXJ+PnRvcExheWVyKSBiQm94KSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGJOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iKSBhY2Nlc3NEaXIpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoY2FhcihiQm94KSArICgoY2FhZHIoYkJveCkgLSBjYWFyKGJCb3gpKSAvIDIuMCkpIChjYWRhcihiQm94KSArICgoY2FkYWRyKGJCb3gpIC0gY2FkYXIoYkJveCkpIC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKChvZmZzZXQgPiAxZS0wNikgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKChvZmZzZXQgKyB4MUNvb3JkKTooeTFDb29yZCArIHcpKSkpKSB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgZGlmZkxheWVyQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgKGNvbnRhY3RJZH4+Y2VsbE5hbWUpKSkpIChsYXN0WDFDb29yZCA9IHgxQ29vcmQpICh4MUNvb3JkID0gKCgyLjAgKiBvZmZzZXQpICsgKHgxQ29vcmQgKyAoY2FhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpIC0gY2FhcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpKSkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwTGF5ZXIgbGlzdCgoKHgxQ29vcmQgLSBvZmZzZXQpOnkxQ29vcmQpICh4MUNvb3JkOih5MUNvb3JkICsgdykpKSkpIHdoZW4od2VsbExheWVyICh5MURpZmZDb29yZCA9IGNhZGFyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkxVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkxV2VsbENvb3JkID0gbWluKCgtIG1heCgod2VsbEVuY1RhcCArIHkxRGlmZkNvb3JkKSAod2VsbEVuY1RhcCArIHkxVGFwQ29vcmQpKSkgeTFXZWxsQ29vcmQpKSAoeTJEaWZmQ29vcmQgPSBjYWRhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTJUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFkcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkyV2VsbENvb3JkID0gbWF4KCh3ZWxsRW5jVGFwICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwICsgeTJUYXBDb29yZCkgeTJXZWxsQ29vcmQpKSkgd2hlbihpbXBsYW50TGF5ZXIgKHkxRGlmZkNvb3JkID0gY2FkYXIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTFJbXBDb29yZCA9IG1pbigoLSBtYXgoKHRhcEltcEVuYyArIHkxRGlmZkNvb3JkKSAodGFwSW1wRW5jICsgeTFUYXBDb29yZCkpKSB5MUltcENvb3JkKSkgKHkyRGlmZkNvb3JkID0gY2FkYWRyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkyVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MkltcENvb3JkID0gbWF4KCh0YXBJbXBFbmMgKyB5MkRpZmZDb29yZCkgKHRhcEltcEVuYyArIHkyVGFwQ29vcmQpIHkySW1wQ29vcmQpKSkpKSB3aGVuKChtICE9IDEpIChkYkNsb3NlIHNoYXJlZENvbnRhY3RJZCkpIHdoZW4oKGxhc3RDb250YWN0ICE9ICIiKSAoY29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGxhc3RDb250YWN0ICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoY29udGFjdElkIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZC9vcGVuIGxhc3RDb250YWN0IGNvbnRhY3QgY2VsbCBgJXMnIiBsYXN0Q29udGFjdCkpKSB1bmxlc3MoKGNvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIGxhc3RDb250YWN0KSkpIChvZmZzZXQgPSAoYnVsa09mZnNldCArIGNvbnRhY3RHYXRlU3BhY2UpKSAoaW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGNvbnRhY3RJZCBzcHJpbnRmKG5pbCAiYyVkIiBtKSAoKG9mZnNldCArIHgxQ29vcmQpOnkxQ29vcmQpICJSMCIgMSBsaXN0KGxpc3QoImwiICJmbG9hdCIgdykgbGlzdCgiaW5XZWxsIiAiYm9vbGVhbiIgdCkpKSkgdW5sZXNzKGluc3QgZXJyb3Ioc3ByaW50ZihuaWwgIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgYCVzJyIgbGFzdENvbnRhY3QpKSkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBMYXllciBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICgob2Zmc2V0ICsgeDFDb29yZCk6KHkxQ29vcmQgKyB3KSkpKSkgKG1hc3RlciA9IChpbnN0fj5tYXN0ZXIpKSAobGFzdENvbk1hc3RlciA9IG1hc3RlcikgdW5sZXNzKCgobWFzdGVyfj50b3BMYXllcikgJiYgKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgdG9wTGF5ZXIgYW5kL29yIHRvcExheWVyUGluQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgbGFzdENvbnRhY3QpKSkgKHlvZmZzZXQgPSAwKSAoYkJveCA9IGxpc3QobGlzdCgoY2FhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSArIHgxQ29vcmQgKyBvZmZzZXQpICh5b2Zmc2V0ICsgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSBsaXN0KChjYWFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSArIHgxQ29vcmQgKyBvZmZzZXQpICh5b2Zmc2V0ICsgY2FkYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkpKSAobGFzdEJib3ggPSBiQm94KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyAobWFzdGVyfj50b3BMYXllcikgYkJveCkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBiTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAicmlnaHQiKSBhY2Nlc3NEaXIpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoY2FhcihiQm94KSArICgoY2FhZHIoYkJveCkgLSBjYWFyKGJCb3gpKSAvIDIuMCkpIChjYWRhcihiQm94KSArICgoY2FkYWRyKGJCb3gpIC0gY2FkYXIoYkJveCkpIC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKHdlbGxMYXllciB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGxhc3RDb250YWN0KSkpICh5MURpZmZDb29yZCA9IGNhZGFyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkxVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkxV2VsbENvb3JkID0gbWluKCgtIG1heCgod2VsbEVuY1RhcCArIHkxRGlmZkNvb3JkKSAod2VsbEVuY1RhcCArIHkxVGFwQ29vcmQpKSkgeTFXZWxsQ29vcmQpKSAoeTJEaWZmQ29vcmQgPSBjYWRhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTJUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFkcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkyV2VsbENvb3JkID0gbWF4KCh3ZWxsRW5jVGFwICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwICsgeTJUYXBDb29yZCkgeTJXZWxsQ29vcmQpKSAoeDJEaWZmQ29vcmQgPSBjYWFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh4MlRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh4MldlbGxDb29yZCA9IChvZmZzZXQgKyB4MUNvb3JkICsgbWF4KCh3ZWxsRW5jVGFwICsgeDJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwICsgeDJUYXBDb29yZCkpKSkpIHdoZW4oaW1wbGFudExheWVyIHVubGVzcygobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQgZGlmZkxheWVyQmJveCBwcm9wZXJ0eSBmb3IgYCVzJyIgbGFzdENvbnRhY3QpKSkgKHkxRGlmZkNvb3JkID0gY2FkYXIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTFJbXBDb29yZCA9IG1pbigoLSBtYXgoKHRhcEltcEVuYyArIHkxRGlmZkNvb3JkKSAodGFwSW1wRW5jICsgeTFUYXBDb29yZCkpKSB5MUltcENvb3JkKSkgKHkyRGlmZkNvb3JkID0gY2FkYWRyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkyVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MkltcENvb3JkID0gbWF4KCh0YXBJbXBFbmMgKyB5MkRpZmZDb29yZCkgKHRhcEltcEVuYyArIHkyVGFwQ29vcmQpIHkySW1wQ29vcmQpKSAoeDJEaWZmQ29vcmQgPSBjYWFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh4MlRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh4MkltcENvb3JkID0gKG9mZnNldCArIHgxQ29vcmQgKyBtYXgoKHRhcEltcEVuYyArIHgyRGlmZkNvb3JkKSAodGFwSW1wRW5jICsgeDJUYXBDb29yZCkpKSkpIChkYkNsb3NlIGNvbnRhY3RJZCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKCh4MUNvb3JkICsgdGFwRXh0KTooeTFDb29yZCArIHcpKSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gYk5ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgInJpZ2h0IikgYWNjZXNzRGlyKSB3aGVuKChsYXN0Q29udGFjdCA9PSAiIikgd2hlbihsYWJlbExheWVyIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KCh4MUNvb3JkICsgKHRhcEV4dCAvIDIuMCkpICh5MUNvb3JkICsgKHcgLyAyLjApKSkgbmV0TCAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgbGFiZWxXaWR0aCkpIHdoZW4od2VsbExheWVyICh4MldlbGxDb29yZCA9ICh4MUNvb3JkICsgdGFwRXh0ICsgd2VsbEVuY1RhcCkpICh5MldlbGxDb29yZCA9IG1heCgoeTFDb29yZCArIHcgKyB3ZWxsRW5jVGFwKSB5MldlbGxDb29yZCkpKSB3aGVuKGltcGxhbnRMYXllciAoeDJJbXBDb29yZCA9ICh4MUNvb3JkICsgdGFwRXh0ICsgdGFwSW1wRW5jKSkgKHkySW1wQ29vcmQgPSBtYXgoKHkxQ29vcmQgKyB3ICsgdGFwSW1wRW5jKSB5MldlbGxDb29yZCkpKSkgKHRvcE1ldGFsQm90WSA9IGNhZGFyKGZpcnN0QmJveCkpICh0b3BNZXRhbFRvcFkgPSBjYWRhZHIoZmlyc3RCYm94KSkgd2hlbih0b3BNZXRhbCBpZigoZ2F0ZUNvbnRhY3QgIT0gbmlsKSB0aGVuIGlmKCgoZ2F0ZUNvbk1hc3RlcjF+PnRvcExheWVyKSA9PSB0b3BNZXRhbCkgdGhlbiAodG9wTWV0YWxCb3RZID0gbWF4KGNhYWRyKGZpcnN0QmJveCkgKHRvcE1ldGFsR2F0ZURpc3QgKyBjYWRhZHIoKGdhdGVDb25NYXN0ZXIxfj50b3BMYXllclBpbkJib3gpKSArIGNhZHIoKGdhdGVDb25JbnN0fj54eSkpKSkpIGlmKGRvdWJsZUdhdGVDb250YWN0cyB0aGVuICh0b3BNZXRhbFRvcFkgPSBtaW4oY2FkYWRyKGZpcnN0QmJveCkgKChjYWRhcigoZ2F0ZUNvbk1hc3RlcjJ+PnRvcExheWVyUGluQmJveCkpICsgY2FkcigoZ2F0ZUNvbkluc3Qyfj54eSkpKSAtIHRvcE1ldGFsR2F0ZURpc3QpKSkpKSkgaWYoKChmaXJzdENvbk1hc3Rlcn4+dG9wTGF5ZXIpID09IHRvcE1ldGFsKSB0aGVuIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0b3BNZXRhbCBsaXN0KGxpc3QoY2FhcihmaXJzdEJib3gpIHRvcE1ldGFsQm90WSkgbGlzdChjYWFyKGxhc3RCYm94KSB0b3BNZXRhbFRvcFkpKSkpKSB3aGVuKHdlbGxMYXllciB1bmxlc3MoKGdhdGVDb250YWN0ID09ICIiKSAoeTFXZWxsQ29vcmQgPSAoKCh5MUNvb3JkIC0gZ2F0ZUV4dCkgLSB3ZWxsRW5jUG9seSkgLSAoMiAqIGdhdGVDb25ZT2Zmc2V0KSkpIGlmKGRvdWJsZUdhdGVDb250YWN0cyB0aGVuICh5MldlbGxDb29yZCA9ICgoKCh5MUNvb3JkICsgZ2F0ZUV4dCkgKyB3ZWxsRW5jUG9seSkgKyAoMiAqIGdhdGVDb25ZT2Zmc2V0KSkgKyB3KSkgZWxzZSAoeTJXZWxsQ29vcmQgPSAoKCh5MUNvb3JkICsgdykgKyBnYXRlRXh0KSArIHdlbGxFbmNQb2x5KSkpKSBpZigoZ2F0ZUNvbnRhY3QgPT0gIiIpIHRoZW4gKHkxV2VsbENvb3JkID0gKCh5MUNvb3JkIC0gd2VsbEVuY1BvbHkpIC0gZ2F0ZUV4dCkpICh5MldlbGxDb29yZCA9ICgoKHkxQ29vcmQgKyB3ZWxsRW5jUG9seSkgKyBnYXRlRXh0KSArIHcpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KGxpc3QoeDFXZWxsQ29vcmQgeTFXZWxsQ29vcmQpIGxpc3QoeDJXZWxsQ29vcmQgeTJXZWxsQ29vcmQpKSkgd2hlbih3ZWxsSW1wTGF5ZXIgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxJbXBMYXllciBsaXN0KGxpc3QoeDFXZWxsQ29vcmQgeTFXZWxsQ29vcmQpIGxpc3QoeDJXZWxsQ29vcmQgeTJXZWxsQ29vcmQpKSkpIHdoZW4od2VsbEltcExheWVyMiAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgd2VsbEltcExheWVyMiBsaXN0KGxpc3QoeDFXZWxsQ29vcmQgeTFXZWxsQ29vcmQpIGxpc3QoeDJXZWxsQ29vcmQgeTJXZWxsQ29vcmQpKSkpIHdoZW4od2VsbEltcExheWVyMyAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgd2VsbEltcExheWVyMyBsaXN0KGxpc3QoeDFXZWxsQ29vcmQgeTFXZWxsQ29vcmQpIGxpc3QoeDJXZWxsQ29vcmQgeTJXZWxsQ29vcmQpKSkpKSB3aGVuKGltcGxhbnRMYXllciAoYnVsa0lkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGltcGxhbnRMYXllciBsaXN0KGxpc3QoeDFJbXBDb29yZCB5MUltcENvb3JkKSBsaXN0KHgySW1wQ29vcmQgeTJJbXBDb29yZCkpKSkgKGJOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiYiIpKSAoZGJDcmVhdGVUZXJtIGJOZXQgImIiICJpbnB1dCIpIChkYkNyZWF0ZVBpbiBiTmV0IGJ1bGtJZCAiYiIpKSkAKHRhcExheWVyIGdhdGVMYXllciB3ZWxsTGF5ZXIgd2VsbEltcExheWVyIHdlbGxJbXBMYXllcjIgd2VsbEltcExheWVyMyBkZXBMYXllciB0YXBFeHQgd2VsbEVuY1BvbHkgd2VsbEVuY1RhcCBkZXBYRW5jIGRlcFlFbmMgZGVwU3BhY2UgbGFiZWxMYXllciBsYWJlbFdpZHRoIGltcGxhbnRMYXllciB0YXBJbXBFbmMgY29udGFjdEdhdGVTcGFjZSB0b3BNZXRhbCB0b3BNZXRhbEdhdGVEaXN0IHZhckNoYW5uZWxJbXAgdmFyQ2hhbm5lbEltcEVuYyBnYXRlQ29udGFjdCBjb250YWN0cyBnYXRlRXh0IGJ1bGtPZmZzZXQgbSBsIHcgZG91YmxlR2F0ZUNvbnRhY3RzIHNoYXJlZENvbnRhY3QgbGFzdENvbnRhY3QgZmlyc3RDb250YWN0IGdOZXQgYk5ldCBuZXRMIHgxQ29vcmQgeTFDb29yZCBsYXN0WDFDb29yZCB5MURlcENvb3JkIHkyRGVwQ29vcmQgY29udGFjdElkIG9mZnNldCBpbnN0IG1hc3RlciBmaXJzdENvbk1hc3RlciB5b2Zmc2V0IGJCb3ggZmlyc3RCYm94IGRiaWQgcGluaWQgeDFEaWZmQ29vcmQgeDFUYXBDb29yZCB4MVdlbGxDb29yZCB5MURpZmZDb29yZCB5MVRhcENvb3JkIHkxV2VsbENvb3JkIHkyRGlmZkNvb3JkIHkyVGFwQ29vcmQgeTJXZWxsQ29vcmQgeDFJbXBDb29yZCB5MUltcENvb3JkIHkySW1wQ29vcmQgc2hhcmVkQ29udGFjdElkIGdhdGVDb24gbiBmaXJzdFggbGFzdFggdmFyQ2hhbm5lbEltcElkIGR1bW15R2F0ZUNvbnRhY3QgYmFzZUdhdGVDb25NYXN0ZXIgYmFzZUdhdGVDb25CYm94IGJhc2VHYXRlQ29uVyBiYXNlR2F0ZUNvbkwgYmlnR2F0ZVNpemUgZ2F0ZUNvbkluc3QgZ2F0ZUNvbkluc3QyIGdhdGVDb25NYXN0ZXIgZ2F0ZUNvbk1hc3RlcjEgZ2F0ZUNvbjFCYm94IGdhdGVDb25ZT2Zmc2V0IGJCb3gxIGdhdGVDb25NYXN0ZXIyIGdhdGVDb24yQmJveCBiQm94MiB4MURlcENvb3JkIHNoYXJlZENvbk1hc3RlciBsYXN0Q29uTWFzdGVyIGxhc3RCYm94IHgyRGlmZkNvb3JkIHgyVGFwQ29vcmQgeDJXZWxsQ29vcmQgeDJJbXBDb29yZCB0b3BNZXRhbEJvdFkgdG9wTWV0YWxUb3BZIGJ1bGtJZCkAKChnYXRlQ29udGFjdCAiIikgKGNvbnRhY3RzICIiKSAoZ2F0ZUV4dCAwLjApIChidWxrT2Zmc2V0IDAuMCkgKG0gMSkgKGwgMC4wKSAodyAwLjApIChkb3VibGVHYXRlQ29udGFjdHMgIlRSVUUiKSkAKCh0YXBMYXllciAiaGlsaXRlIikgKGdhdGVMYXllciAibWFya2VyIikgKHdlbGxMYXllciBuaWwpICh3ZWxsSW1wTGF5ZXIgbmlsKSAod2VsbEltcExheWVyMiBuaWwpICh3ZWxsSW1wTGF5ZXIzIG5pbCkgKGRlcExheWVyIG5pbCkgKHRhcEV4dCAwLjApICh3ZWxsRW5jUG9seSAwLjApICh3ZWxsRW5jVGFwIDAuMCkgKGRlcFhFbmMgMC4wKSAoZGVwWUVuYyAwLjApIChkZXBTcGFjZSAwLjApIChsYWJlbExheWVyIGxpc3QoInRleHQiICJkcmF3aW5nIikpIChsYWJlbFdpZHRoIDAuNCkgKGltcGxhbnRMYXllciBuaWwpICh0YXBJbXBFbmMgMCkgKGNvbnRhY3RHYXRlU3BhY2UgMCkgKHRvcE1ldGFsIG5pbCkgKHRvcE1ldGFsR2F0ZURpc3QgMCkgKHZhckNoYW5uZWxJbXAgbmlsKSAodmFyQ2hhbm5lbEltcEVuYyAwLjApKQAoKFcyID0gKHcgLyAyLjApKSAoTDIgPSAobCAvIDIuMCkpIChuZXRJZCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAiRyIpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBnYXRlTGF5ZXIgbGlzdCgoKCgtIFcyKSAtIGdhdGVFeHQpOigtIEwyKSkgKCgoKC0gVzIpIC0gZ2F0ZUV4dCkgKyBnYXRlUGluV2lkdGgpOkwyKSkpKSAoZGJJZCA9IChkYkNyZWF0ZVBpbiBuZXRJZCBkYklkICJnbCIpKSAoZGJTZXRxIGRiSWQgbGlzdCgibGVmdCIpIGFjY2Vzc0RpcikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIGxpc3QoKCgoVzIgKyBnYXRlRXh0KSAtIGdhdGVQaW5XaWR0aCk6KC0gTDIpKSAoKFcyICsgZ2F0ZUV4dCk6TDIpKSkpIChkYklkID0gKGRiQ3JlYXRlUGluIG5ldElkIGRiSWQgImdyIikpIChkYlNldHEgZGJJZCBsaXN0KCJyaWdodCIpIGFjY2Vzc0RpcikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIGxpc3QoKCgoLSBXMikgLSBnYXRlRXh0KTooLSBMMikpICgoVzIgKyBnYXRlRXh0KTpMMikpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXRJZCkgKG5ldElkID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJTIikpIGlmKGFyZWFTRFBpbiB0aGVuIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHNkTGF5ZXIgbGlzdCgoKC0gVzIpOkwyKSAoVzI6KEwyICsgYXJlYVBpbkgpKSkpKSBlbHNlIChkYklkID0gKGRiQ3JlYXRlRG90IHRjQ2VsbFZpZXcgc2RMYXllciAoMDpMMikpKSkgKGRiSWQgPSAoZGJDcmVhdGVQaW4gbmV0SWQgZGJJZCAicyIpKSAoZGJTZXRxIGRiSWQgbGlzdCgidG9wIikgYWNjZXNzRGlyKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBzZExheWVyIGxpc3QoKCgtIFcyKTowKSAoVzI6KEwyICsgc2RFeHQpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldElkKSAobmV0SWQgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgIkQiKSkgaWYoYXJlYVNEUGluIHRoZW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgc2RMYXllciBsaXN0KCgoLSBXMik6KCgtIEwyKSAtIGFyZWFQaW5IKSkgKFcyOigtIEwyKSkpKSkgZWxzZSAoZGJJZCA9IChkYkNyZWF0ZURvdCB0Y0NlbGxWaWV3IHNkTGF5ZXIgKDA6KC0gTDIpKSkpKSAoZGJJZCA9IChkYkNyZWF0ZVBpbiBuZXRJZCBkYklkICJkIikpIChkYlNldHEgZGJJZCBsaXN0KCJib3R0b20iKSBhY2Nlc3NEaXIpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHNkTGF5ZXIgbGlzdCgoKC0gVzIpOigoLSBMMikgLSBzZEV4dCkpIChXMjowKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldElkKSBpZihzZEltcExheWVyIHRoZW4gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHNkSW1wTGF5ZXIgbGlzdCgoKCgtIFcyKSAtIHNkSW1wRW5jKTooKC0gTDIpIC0gc2RFeHQgLSBzZEltcEVuYykpICgoVzIgKyBzZEltcEVuYyk6KEwyICsgc2RFeHQgKyBzZEltcEVuYykpKSkpIGlmKHNkQ29yZUltcExheWVyIHRoZW4gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHNkQ29yZUltcExheWVyIGxpc3QoKCgoLSBXMikgLSBzZENvcmVJbXBFbmMpOigoLSBMMikgLSBzZEV4dCAtIHNkQ29yZUltcEVuYykpICgoVzIgKyBzZENvcmVJbXBFbmMpOihMMiArIHNkRXh0ICsgc2RDb3JlSW1wRW5jKSkpKSkpAChzZExheWVyIGdhdGVMYXllciBzZEV4dCBzZEltcExheWVyIHNkSW1wRW5jIHNkQ29yZUltcExheWVyIHNkQ29yZUltcEVuYyBnYXRlUGluV2lkdGggYXJlYVNEUGluIGFyZWFQaW5IIHcgbCBnYXRlRXh0IFcyIEwyIG5ldElkIGRiSWQpACgodyAwLjApIChsIDAuMCkgKGdhdGVFeHQgMC4wKSkAKChzZExheWVyICJoaWxpdGUiKSAoZ2F0ZUxheWVyICJoaWxpdGUiKSAoc2RFeHQgMC4wKSAoc2RJbXBMYXllciBuaWwpIChzZEltcEVuYyAwLjApIChzZENvcmVJbXBMYXllciBuaWwpIChzZENvcmVJbXBFbmMgMC4wKSAoZ2F0ZVBpbldpZHRoIDAuMSkgKGFyZWFTRFBpbiBuaWwpIChhcmVhUGluSCAwLjEpKQAoKGFsbERpciA9IGxpc3QoInJpZ2h0IiAibGVmdCIgInRvcCIgImJvdHRvbSIpKSAobmV0ID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJwcGQiKSkgKHJvdyA9IG1heCgocm93IC0gMSkgMSkpIHdoZW4oKHZpYTFJbXBFbmMgIT0gMC4wKSAodmlhMUltcEVuY1ggPSB2aWExSW1wRW5jKSAodmlhMUltcEVuY1kgPSB2aWExSW1wRW5jKSkgd2hlbigodmlhMUltcDJFbmMgIT0gMC4wKSAodmlhMUltcDJFbmNYID0gdmlhMUltcDJFbmMpICh2aWExSW1wMkVuY1kgPSB2aWExSW1wMkVuYykpIGNvbmQoKChsYXllcjFFbmNWaWExID09IDAuMCkgKGxheWVyMVggPSBsYXllcjFYRW5jVmlhMSkgKGxheWVyMVkgPSBsYXllcjFZRW5jVmlhMSkpICh0IChsYXllcjFYID0gbGF5ZXIxRW5jVmlhMSkgKGxheWVyMVkgPSBsYXllcjFFbmNWaWExKSkpIChsYXllcjFsZW5ndGggPSAoKDIgKiBsYXllcjFYKSArIChjb2x1bW4gKiB2aWExV2lkdGgpICsgKChjb2x1bW4gLSAxKSAqIHZpYTFTcGFjZSkpKSAobDF4T2Zmc2V0ID0gKGxheWVyMWxlbmd0aCAvIDIuMCkpIChvZGRwKHJvdW5kKChsMXhPZmZzZXQgLyBoYWxmZ3JpZCkpKSAmJiAobDF4T2Zmc2V0ID0gKGwxeE9mZnNldCAtIGhhbGZncmlkKSkpIChsYXllcjF3aWR0aCA9ICgoMiAqIGxheWVyMVkpICsgKHJvdyAqIHZpYTFXaWR0aCkgKyAoKHJvdyAtIDEpICogdmlhMVNwYWNlKSkpIChsMXlPZmZzZXQgPSAobGF5ZXIxd2lkdGggLyAyLjApKSAob2RkcChyb3VuZCgobDF5T2Zmc2V0IC8gaGFsZmdyaWQpKSkgJiYgKGwxeU9mZnNldCA9IChsMXlPZmZzZXQgLSBoYWxmZ3JpZCkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjEgbGlzdChsaXN0KCgtIGwxeE9mZnNldCkgKC0gbDF5T2Zmc2V0KSkgbGlzdCgobGF5ZXIxbGVuZ3RoIC0gbDF4T2Zmc2V0KSAobGF5ZXIxd2lkdGggLSBsMXlPZmZzZXQpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIHdoZW4obGF5ZXIxSW1wbGFudCAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjFJbXBsYW50IGxpc3QobGlzdCgoKC0gbDF4T2Zmc2V0KSArICgtIGxheWVyMUltcEVuYykpICgoLSBsMXlPZmZzZXQpICsgKC0gbGF5ZXIxSW1wRW5jKSkpIGxpc3QoKGxheWVyMWxlbmd0aCArICgtIGwxeE9mZnNldCkgKyBsYXllcjFJbXBFbmMpIChsYXllcjF3aWR0aCArICgtIGwxeU9mZnNldCkgKyBsYXllcjFJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIHdoZW4obGF5ZXIxQ29yZUltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIxQ29yZUltcGxhbnQgbGlzdChsaXN0KCgoLSBsMXhPZmZzZXQpICsgKC0gbGF5ZXIxQ29yZUltcEVuYykpICgoLSBsMXlPZmZzZXQpICsgKC0gbGF5ZXIxQ29yZUltcEVuYykpKSBsaXN0KChsYXllcjFsZW5ndGggKyAoLSBsMXhPZmZzZXQpICsgbGF5ZXIxQ29yZUltcEVuYykgKGxheWVyMXdpZHRoICsgKC0gbDF5T2Zmc2V0KSArIGxheWVyMUNvcmVJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIChjb250YWN0T2Zmc2V0ID0gKHZpYTFTcGFjZSArIHZpYTFXaWR0aCkpICh0aGVZID0gKGxheWVyMVkgKyAoLSBsMXlPZmZzZXQpKSkgZm9yKHIgMSByb3cgKHRoZVggPSAobGF5ZXIxWCArICgtIGwxeE9mZnNldCkpKSBmb3IoY29sIDEgY29sdW1uIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYUxheWVyIGxpc3QobGlzdCh0aGVYIHRoZVkpIGxpc3QoKHRoZVggKyB2aWExV2lkdGgpICh0aGVZICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh0aGVYID0gKHRoZVggKyBjb250YWN0T2Zmc2V0KSkpICh0aGVZID0gKHRoZVkgKyBjb250YWN0T2Zmc2V0KSkpIHdoZW4odmlhMUltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUltcGxhbnQgbGlzdChsaXN0KChsYXllcjFYICsgKC0gbDF4T2Zmc2V0KSArICgtIHZpYTFJbXBFbmNYKSkgKGxheWVyMVkgKyAoLSBsMXlPZmZzZXQpICsgKC0gdmlhMUltcEVuY1kpKSkgbGlzdCgobGF5ZXIxWCArICgtIGwxeE9mZnNldCkgKyB2aWExSW1wRW5jWCArIChyb3cgKiBjb250YWN0T2Zmc2V0KSArICgtIHZpYTFTcGFjZSkpIChsYXllcjFZICsgKC0gbDF5T2Zmc2V0KSArIHZpYTFJbXBFbmNZICsgKGNvbHVtbiAqIGNvbnRhY3RPZmZzZXQpICsgKC0gdmlhMVNwYWNlKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgd2hlbih2aWExSW1wbGFudDIgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUltcGxhbnQyIGxpc3QobGlzdCgobGF5ZXIxWCArICgtIGwxeE9mZnNldCkgKyAoLSB2aWExSW1wMkVuY1gpKSAobGF5ZXIxWSArICgtIGwxeU9mZnNldCkgKyAoLSB2aWExSW1wMkVuY1kpKSkgbGlzdCgobGF5ZXIxWCArICgtIGwxeE9mZnNldCkgKyB2aWExSW1wMkVuY1ggKyAocm93ICogY29udGFjdE9mZnNldCkgKyAoLSB2aWExU3BhY2UpKSAobGF5ZXIxWSArICgtIGwxeU9mZnNldCkgKyB2aWExSW1wMkVuY1kgKyAoY29sdW1uICogY29udGFjdE9mZnNldCkgKyAoLSB2aWExU3BhY2UpKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAobGF5ZXIybGVuZ3RoID0gKCgyICogbGF5ZXIyWEVuY1ZpYTEpICsgKGNvbHVtbiAqIHZpYTFXaWR0aCkgKyAoKGNvbHVtbiAtIDEpICogdmlhMVNwYWNlKSkpIChsYXllcjJ3aWR0aCA9ICgoMiAqIGxheWVyMllFbmNWaWExKSArIChyb3cgKiB2aWExV2lkdGgpICsgKChyb3cgLSAxKSAqIHZpYTFTcGFjZSkpKSBjb25kKCghbGF5ZXIzIHQpICh0IChtaW5MYXllcjJ3aWR0aCA9ICgoMi4wICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyV2lkdGgpKSAobWluTGF5ZXIybGVuZ3RoID0gKCgyLjAgKiBsYXllcjJFbmNWaWEyKSArIHZpYTJXaWR0aCkpICgobGF5ZXIybGVuZ3RoIDwgbWluTGF5ZXIybGVuZ3RoKSAmJiAobGF5ZXIybGVuZ3RoID0gbWluTGF5ZXIybGVuZ3RoKSkgKChsYXllcjJ3aWR0aCA8IG1pbkxheWVyMndpZHRoKSAmJiAobGF5ZXIyd2lkdGggPSBtaW5MYXllcjJ3aWR0aCkpKSkgKGwyeE9mZnNldCA9ICgobWF4KGxheWVyMlhFbmNWaWExIGxheWVyMkVuY1ZpYTIpIC0gbGF5ZXIxWCkgKyBsMXhPZmZzZXQpKSAobDJ5T2Zmc2V0ID0gKChtYXgobGF5ZXIyWUVuY1ZpYTEgbGF5ZXIyRW5jVmlhMikgLSBsYXllcjFZKSArIGwxeU9mZnNldCkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QoKC0gbDJ4T2Zmc2V0KSAoLSBsMnlPZmZzZXQpKSBsaXN0KChsYXllcjJsZW5ndGggLSBsMnhPZmZzZXQpIChsYXllcjJ3aWR0aCAtIGwyeU9mZnNldCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0Rpcikgd2hlbihsYXllcjJJbXBsYW50IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMkltcGxhbnQgbGlzdChsaXN0KCgoLSBsMnhPZmZzZXQpICsgKC0gbGF5ZXIySW1wRW5jKSkgKCgtIGwyeU9mZnNldCkgKyAoLSBsYXllcjJJbXBFbmMpKSkgbGlzdCgobGF5ZXIybGVuZ3RoICsgKC0gbDF4T2Zmc2V0KSArIGxheWVyMkltcEVuYykgKGxheWVyMndpZHRoICsgKC0gbDJ5T2Zmc2V0KSArIGxheWVyMkltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgY29uZCgoIWxheWVyMyB0KSAodCAoYzIzcm93ID0gZml4KCgobGF5ZXIyd2lkdGggKyAoLTIgKiBsYXllcjJFbmNWaWEyKSArIHZpYTJTcGFjZSkgLyAodmlhMldpZHRoICsgdmlhMlNwYWNlKSkpKSAoYzIzY29sdW1uID0gZml4KCgobGF5ZXIybGVuZ3RoICsgKC0yICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyU3BhY2UpIC8gKHZpYTJXaWR0aCArIHZpYTJTcGFjZSkpKSkgKGxheWVyM2xlbmd0aCA9ICgoMiAqIGxheWVyM1hFbmNWaWEyKSArIChjMjNjb2x1bW4gKiB2aWEyV2lkdGgpICsgKChjMjNjb2x1bW4gLSAxKSAqIHZpYTJTcGFjZSkpKSAodG1weCA9ICgobGF5ZXIzWEVuY1ZpYTIgLSBsYXllcjJFbmNWaWEyKSArIGwyeE9mZnNldCkpICh0bXB4MSA9IChsMnhPZmZzZXQgLSAoKGxheWVyMmxlbmd0aCAtIGxheWVyM2xlbmd0aCkgLyAyLjApKSkgKG9kZHAocm91bmQoKHRtcHgxIC8gaGFsZmdyaWQpKSkgJiYgKHRtcHgxID0gKHRtcHgxIC0gaGFsZmdyaWQpKSkgKGxheWVyM3dpZHRoID0gKCgyICogbGF5ZXIzWUVuY1ZpYTIpICsgKGMyM3JvdyAqIHZpYTJXaWR0aCkgKyAoKGMyM3JvdyAtIDEpICogdmlhMlNwYWNlKSkpICh0bXB5ID0gKChsYXllcjNZRW5jVmlhMiAtIGxheWVyMkVuY1ZpYTIpICsgbDJ5T2Zmc2V0KSkgKHRtcHkxID0gKGwyeU9mZnNldCAtICgobGF5ZXIyd2lkdGggLSBsYXllcjN3aWR0aCkgLyAyLjApKSkgKG9kZHAocm91bmQoKHRtcHkxIC8gaGFsZmdyaWQpKSkgJiYgKHRtcHkxID0gKHRtcHkxIC0gaGFsZmdyaWQpKSkgKGwzeE9mZnNldCA9IHRtcHgpIChsM3lPZmZzZXQgPSB0bXB5KSB3aGVuKGp1c3RpZnkgKGwzeE9mZnNldCA9IHRtcHgxKSAobDN5T2Zmc2V0ID0gdG1weTEpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KCgtIGwzeE9mZnNldCkgKC0gbDN5T2Zmc2V0KSkgbGlzdCgobGF5ZXIzbGVuZ3RoIC0gbDN4T2Zmc2V0KSAobGF5ZXIzd2lkdGggLSBsM3lPZmZzZXQpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIHdoZW4obGF5ZXIzSW1wbGFudCAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjNJbXBsYW50IGxpc3QobGlzdCgoKC0gbDN4T2Zmc2V0KSArICgtIGxheWVyM0ltcEVuYykpICgoLSBsM3lPZmZzZXQpICsgKC0gbGF5ZXIzSW1wRW5jKSkpIGxpc3QoKGxheWVyM2xlbmd0aCArICgtIGwzeE9mZnNldCkgKyBsYXllcjNJbXBFbmMpIChsYXllcjF3aWR0aCArICgtIGwzeU9mZnNldCkgKyBsYXllcjNJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIChjb250YWN0T2Zmc2V0ID0gKHZpYTJTcGFjZSArIHZpYTJXaWR0aCkpICh0aGVZID0gKGxheWVyM1lFbmNWaWEyICsgKC0gbDN5T2Zmc2V0KSkpIGZvcihyIDEgYzIzcm93ICh0aGVYID0gKGxheWVyM1hFbmNWaWEyICsgKC0gbDN4T2Zmc2V0KSkpIGZvcihjb2wgMSBjMjNjb2x1bW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhTGF5ZXIyIGxpc3QobGlzdCh0aGVYIHRoZVkpIGxpc3QoKHRoZVggKyB2aWEyV2lkdGgpICh0aGVZICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh0aGVYID0gKHRoZVggKyBjb250YWN0T2Zmc2V0KSkpICh0aGVZID0gKHRoZVkgKyBjb250YWN0T2Zmc2V0KSkpIHdoZW4odmlhMkltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkltcGxhbnQgbGlzdChsaXN0KChsYXllcjNYRW5jVmlhMiArICgtIGwzeE9mZnNldCkgKyAoLSB2aWEySW1wRW5jKSkgKGxheWVyM1lFbmNWaWEyICsgKC0gbDN5T2Zmc2V0KSArICgtIHZpYTJJbXBFbmMpKSkgbGlzdCgobGF5ZXIzWEVuY1ZpYTIgKyAoLSBsM3hPZmZzZXQpICsgdmlhMkltcEVuYyArIChjMjNyb3cgKiBjb250YWN0T2Zmc2V0KSArICgtIHZpYTJTcGFjZSkpIChsYXllcjNZRW5jVmlhMiArICgtIGwzeU9mZnNldCkgKyB2aWEySW1wRW5jICsgKGMyM2NvbHVtbiAqIGNvbnRhY3RPZmZzZXQpICsgKC0gdmlhMlNwYWNlKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkpKSkAKGxheWVyMSBsYXllcjIgbGF5ZXIzIHZpYUxheWVyIHZpYUxheWVyMiBsYXllcjFJbXBsYW50IGxheWVyMUNvcmVJbXBsYW50IGxheWVyMkltcGxhbnQgbGF5ZXIzSW1wbGFudCB2aWExSW1wbGFudCB2aWExSW1wbGFudDIgdmlhMkltcGxhbnQgbGF5ZXIxSW1wRW5jIGxheWVyMUNvcmVJbXBFbmMgbGF5ZXIySW1wRW5jIGxheWVyM0ltcEVuYyB2aWExSW1wRW5jIHZpYTFJbXBFbmNYIHZpYTFJbXBFbmNZIHZpYTFJbXAyRW5jIHZpYTFJbXAyRW5jWCB2aWExSW1wMkVuY1kgdmlhMkltcEVuYyB2aWExV2lkdGggdmlhMVNwYWNlIHZpYTJXaWR0aCB2aWEyU3BhY2UgbGF5ZXIxRW5jVmlhMSBsYXllcjFYRW5jVmlhMSBsYXllcjFZRW5jVmlhMSBsYXllcjJYRW5jVmlhMSBsYXllcjJZRW5jVmlhMSBsYXllcjJFbmNWaWEyIGxheWVyM1hFbmNWaWEyIGxheWVyM1lFbmNWaWEyIGhhbGZncmlkIHJvdyBjb2x1bW4geFBpdGNoIHlQaXRjaCB3IGwganVzdGlmeSBhbGxEaXIgbmV0IGxheWVyMVggbGF5ZXIxWSBsYXllcjFsZW5ndGggbDF4T2Zmc2V0IGxheWVyMXdpZHRoIGwxeU9mZnNldCBkYklkIHBpbklkIGNvbnRhY3RPZmZzZXQgdGhlWSByIHRoZVggY29sIGxheWVyMmxlbmd0aCBsYXllcjJ3aWR0aCBtaW5MYXllcjJ3aWR0aCBtaW5MYXllcjJsZW5ndGggbDJ4T2Zmc2V0IGwyeU9mZnNldCBjMjNyb3cgYzIzY29sdW1uIGxheWVyM2xlbmd0aCB0bXB4IHRtcHgxIGxheWVyM3dpZHRoIHRtcHkgdG1weTEgbDN4T2Zmc2V0IGwzeU9mZnNldCkAKChyb3cgMSkgKGNvbHVtbiAxKSAoeFBpdGNoIDAuMCkgKHlQaXRjaCAwLjApICh3IDAuMCkgKGwgMC4wKSAoanVzdGlmeSAiRkFMU0UiKSkAKChsYXllcjEgImhpbGl0ZSIpIChsYXllcjIgInByQm91bmRhcnkiKSAobGF5ZXIzIG5pbCkgKHZpYUxheWVyICJ5NSIpICh2aWFMYXllcjIgbmlsKSAobGF5ZXIxSW1wbGFudCBuaWwpIChsYXllcjFDb3JlSW1wbGFudCBuaWwpIChsYXllcjJJbXBsYW50IG5pbCkgKGxheWVyM0ltcGxhbnQgbmlsKSAodmlhMUltcGxhbnQgbmlsKSAodmlhMUltcGxhbnQyIG5pbCkgKHZpYTJJbXBsYW50IG5pbCkgKGxheWVyMUltcEVuYyAwLjApIChsYXllcjFDb3JlSW1wRW5jIDAuMCkgKGxheWVyMkltcEVuYyAwLjApIChsYXllcjNJbXBFbmMgMC4wKSAodmlhMUltcEVuYyAwLjApICh2aWExSW1wRW5jWCAwLjApICh2aWExSW1wRW5jWSAwLjApICh2aWExSW1wMkVuYyAwLjApICh2aWExSW1wMkVuY1ggMC4wKSAodmlhMUltcDJFbmNZIDAuMCkgKHZpYTJJbXBFbmMgMC4wKSAodmlhMVdpZHRoIDAuMCkgKHZpYTFTcGFjZSAwLjApICh2aWEyV2lkdGggMC4wKSAodmlhMlNwYWNlIDAuMCkgKGxheWVyMUVuY1ZpYTEgMC4wKSAobGF5ZXIxWEVuY1ZpYTEgMC4wKSAobGF5ZXIxWUVuY1ZpYTEgMC4wKSAobGF5ZXIyWEVuY1ZpYTEgMC4wKSAobGF5ZXIyWUVuY1ZpYTEgMC4wKSAobGF5ZXIyRW5jVmlhMiAwLjApIChsYXllcjNYRW5jVmlhMiAwLjApIChsYXllcjNZRW5jVmlhMiAwLjApIChoYWxmZ3JpZCAwLjAyNSkpACgobmV0MCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAibTAiKSkgKGRiQ3JlYXRlVGVybSBuZXQwICJtMCIgImlucHV0T3V0cHV0IikgKG5ldDEgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgIm0xIikpIChkYkNyZWF0ZVRlcm0gbmV0MSAibTEiICJpbnB1dE91dHB1dCIpIChuZXRCID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJwcGQiKSkgd2hlbihzdHJpbmdwKHNob3J0T25MYXllcikgKHNob3J0T25MYXllciA9IGxpc3Qoc2hvcnRPbkxheWVyICJkcmF3aW5nIikpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBzaG9ydE9uTGF5ZXIgbGlzdCgoMC4wOjAuMCkgKGw6dykpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXRCKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBzaG9ydE9uTGF5ZXIgbGlzdCgoKC0gbWluUGluV2lkdGgpOjAuMCkgKDAuMDp3KSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gbmV0MCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiKSBhY2Nlc3NEaXIpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHNob3J0T25MYXllciBsaXN0KChsOjAuMCkgKChsICsgbWluUGluV2lkdGgpOncpKSkpIChkYkNyZWF0ZVBpbiBuZXQxIGRiaWQpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJyaWdodCIpIGFjY2Vzc0RpcikgKHgxQ29vcmQgPSAoKGwgLSBtaW5TaG9ydFdpZHRoKSAvIDIuMCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHNob3J0TGF5ZXIgbGlzdCgoeDFDb29yZDowLjApICgoeDFDb29yZCArIG1pblNob3J0V2lkdGgpOncpKSkpKQAoc2hvcnRPbkxheWVyIG1pblBpbldpZHRoIHNob3J0TGF5ZXIgbWluU2hvcnRXaWR0aCB3IGwgbmV0MCBuZXQxIG5ldEIgZGJpZCBwaW5pZCB4MUNvb3JkKQAoKHcgMC4wKSAobCAwLjApKQAoKHNob3J0T25MYXllciAibWFya2VyIikgKG1pblBpbldpZHRoIDAuMCkgKHNob3J0TGF5ZXIgbGlzdCgic2hvcnQiICJkcmF3aW5nIikpIChtaW5TaG9ydFdpZHRoIDAuMCkpACh3aGVuKHdpZHRoRXFMZW5ndGggKHJpdmV0TGVuZ3RoID0gcml2ZXRXaWR0aCkpIChjb3JuZXJFeGNsdWRlV2lkdGggPSBtYXgoMC4wIGxsQmV2ZWxMZW5ndGggdWxCZXZlbExlbmd0aCBsckJldmVsTGVuZ3RoIHVyQmV2ZWxMZW5ndGgpKSAocml2ZXRQaXRjaFkgPSAocml2ZXRXaWR0aCArIHJpdmV0U3BhY2UpKSAocml2ZXRQaXRjaFggPSAocml2ZXRMZW5ndGggKyByaXZldFNwYWNlKSkgd2hlbihyaXZldDJMYXllciAocml2ZXQyUGl0Y2hMID0gKHJpdmV0Mkxlbmd0aCArIHJpdmV0MlNwYWNlKSkgKHJpdmV0MkFjdGl2ZUwgPSAocml2ZXRMZW5ndGggLSAoMiAqIHJpdmV0MkVuY0J5Uml2ZXQxTCkpKSAobnVtQ29sMiA9IGZpeCgoKChyaXZldDJBY3RpdmVMICsgcml2ZXQyU3BhY2UpIC8gcml2ZXQyUGl0Y2hMKSArIDFlLTA2KSkpIChyaXZldDFSZWFsTCA9ICgobnVtQ29sMiAqIHJpdmV0MlBpdGNoTCkgLSByaXZldDJTcGFjZSkpIChyaXZldDJPZmZzZXRMID0gKChyaXZldDJBY3RpdmVMIC0gcml2ZXQxUmVhbEwpIC8gMikpIChyaXZldDJPZmZzZXRMID0gKGZpeCgoKHJpdmV0Mk9mZnNldEwgLyBncmlkKSArIDFlLTA2KSkgKiBncmlkKSkpIChudW1Db2xzID0gZml4KCgoKHJpbmdXaWR0aCArIHJpdmV0U3BhY2UpIC8gcml2ZXRQaXRjaFkpICsgMWUtMDUpKSkgKHJpdmV0V2lkdGhHcmlkcyA9IGZpeCgoMC45OTkgKyAocml2ZXRXaWR0aCAvIGdyaWQpKSkpIChyaXZldFNwYWNlR3JpZHMgPSBmaXgoKDAuOTk5ICsgKHJpdmV0U3BhY2UgLyBncmlkKSkpKSBjb25kKCgoY29ybmVyRXhjbHVkZVdpZHRoIDwgKHJpdmV0U3BhY2UgLyAyLjApKSAoeFdvcmtpbmdXaWR0aCA9IChsIC0gcml2ZXRTcGFjZSkpIHdoZW4ob2RkcChyaXZldFNwYWNlR3JpZHMpICh4V29ya2luZ1dpZHRoID0gKHhXb3JraW5nV2lkdGggLSBncmlkKSkpKSAodCAoeFdvcmtpbmdXaWR0aCA9IChsIC0gKDIgKiBjb3JuZXJFeGNsdWRlV2lkdGgpKSkpKSAoeFdvcmtpbmdHcmlkcyA9IGZpeCgoMC45OTkgKyAoeFdvcmtpbmdXaWR0aCAvIGdyaWQpKSkpIChudW1SaXZldHMgPSBmaXgoKDFlLTA1ICsgKCh4V29ya2luZ1dpZHRoICsgcml2ZXRTcGFjZSkgLyAocml2ZXRMZW5ndGggKyByaXZldFNwYWNlKSkpKSkgKGRlbHRhV2lkdGggPSAoeFdvcmtpbmdXaWR0aCAtICgobnVtUml2ZXRzICogcml2ZXRMZW5ndGgpICsgKChudW1SaXZldHMgLSAxKSAqIHJpdmV0U3BhY2UpKSkpIChjZW50ZXJTcGFjZSA9IHJpdmV0U3BhY2UpIHdoZW4oZXZlbnAobnVtUml2ZXRzKSBjb25kKChldmVucCh4V29ya2luZ0dyaWRzKSB3aGVuKG9kZHAocml2ZXRTcGFjZUdyaWRzKSBjb25kKCgoZGVsdGFXaWR0aCA+PSBncmlkKSAoY2VudGVyU3BhY2UgPSAoY2VudGVyU3BhY2UgKyBncmlkKSkpICh0IChudW1SaXZldHMgPSAobnVtUml2ZXRzIC0gMSkpKSkpKSAodCB3aGVuKGV2ZW5wKHJpdmV0U3BhY2VHcmlkcykgY29uZCgoKGRlbHRhV2lkdGggPj0gZ3JpZCkgKGNlbnRlclNwYWNlID0gKGNlbnRlclNwYWNlICsgZ3JpZCkpKSAodCAobnVtUml2ZXRzID0gKG51bVJpdmV0cyAtIDEpKSkpKSkpKSB3aGVuKG9kZHAobnVtUml2ZXRzKSBjb25kKChldmVucCh4V29ya2luZ0dyaWRzKSB3aGVuKG9kZHAocml2ZXRXaWR0aEdyaWRzKSAobnVtUml2ZXRzID0gKG51bVJpdmV0cyAtIDEpKSB3aGVuKG9kZHAocml2ZXRTcGFjZUdyaWRzKSAoY2VudGVyU3BhY2UgPSAoY2VudGVyU3BhY2UgKyBncmlkKSkpKSkgKHQgd2hlbihldmVucChyaXZldFdpZHRoR3JpZHMpIChudW1SaXZldHMgPSAobnVtUml2ZXRzIC0gMSkpIHdoZW4oZXZlbnAocml2ZXRTcGFjZUdyaWRzKSAoY2VudGVyU3BhY2UgPSAoY2VudGVyU3BhY2UgKyBncmlkKSkpKSkpKSAoeE9yaWdpbiA9ICgoeE9mZnNldCArIChsIC8gMi4wKSkgLSAoKChudW1SaXZldHMgKiByaXZldExlbmd0aCkgKyAoKG51bVJpdmV0cyAtIDIpICogcml2ZXRTcGFjZSkgKyBjZW50ZXJTcGFjZSkgLyAyLjApKSkgd2hlbigoKG51bVJpdmV0cyA9PSAwKSB8fCAobnVtQ29scyA9PSAwKSkgZXJyb3IobmlsICJyaXZlclJpbmdNaXJyb3JDbGFzczogbnVtYmVyIG9mIHZpYUNvbnMgbGVzcyB0aGFuIHplcm8iKSkgd2hlbigocml2ZXQyTGF5ZXIgJiYgKG51bUNvbDIgPT0gMCkpIGVycm9yKG5pbCAicml2ZXJSaW5nTWlycm9yQ2xhc3M6IG51bWJlciBvZiB2aWFDb25zIGxlc3MgdGhhbiB6ZXJvIikpIGZvcihyb3cgMSBudW1SaXZldHMgKHlPcmlnaW5Cb3QgPSB5T2Zmc2V0KSAoeU9yaWdpblRvcCA9ICh5T2Zmc2V0ICsgdykpIGZvcihjb2wgMSBudW1Db2xzIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByaXZldExheWVyIGxpc3QoKHhPcmlnaW46eU9yaWdpbkJvdCkgKCh4T3JpZ2luICsgcml2ZXRMZW5ndGgpOih5T3JpZ2luQm90ICsgcml2ZXRXaWR0aCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJpdmV0TGF5ZXIgbGlzdCgoeE9yaWdpbjp5T3JpZ2luVG9wKSAoKHhPcmlnaW4gKyByaXZldExlbmd0aCk6KHlPcmlnaW5Ub3AgLSByaXZldFdpZHRoKSkpKSB3aGVuKHJpdmV0MkxheWVyICh5T3JpZ2luQm90MiA9ICh5T3JpZ2luQm90ICsgcml2ZXQyRW5jQnlSaXZldDFXKSkgKHlPcmlnaW5Ub3AyID0gKHlPcmlnaW5Ub3AgLSByaXZldDJFbmNCeVJpdmV0MVcpKSAoeE9yaWdpbjIgPSAoeE9yaWdpbiArIHJpdmV0MkVuY0J5Uml2ZXQxTCArIHJpdmV0Mk9mZnNldEwpKSBmb3IoY29sMiAxIG51bUNvbDIgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJpdmV0MkxheWVyIGxpc3QoKHhPcmlnaW4yOnlPcmlnaW5Cb3QyKSAoKHhPcmlnaW4yICsgcml2ZXQyTGVuZ3RoKTooeU9yaWdpbkJvdDIgKyByaXZldDJXaWR0aCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJpdmV0MkxheWVyIGxpc3QoKHhPcmlnaW4yOnlPcmlnaW5Ub3AyKSAoKHhPcmlnaW4yICsgcml2ZXQyTGVuZ3RoKTooeU9yaWdpblRvcDIgLSByaXZldDJXaWR0aCkpKSkgKHhPcmlnaW4yID0gKHhPcmlnaW4yICsgcml2ZXQyUGl0Y2hMKSkpKSAoeU9yaWdpbkJvdCA9ICh5T3JpZ2luQm90ICsgcml2ZXRQaXRjaFkpKSAoeU9yaWdpblRvcCA9ICh5T3JpZ2luVG9wIC0gcml2ZXRQaXRjaFkpKSkgY29uZCgoKGV2ZW5wKG51bVJpdmV0cykgJiYgKGFicygocm93IC0gKG51bVJpdmV0cyAvIDIuMCkpKSA8IDFlLTA1KSkgKHhPcmlnaW4gPSAoeE9yaWdpbiArIHJpdmV0TGVuZ3RoICsgY2VudGVyU3BhY2UpKSkgKHQgKHhPcmlnaW4gPSAoeE9yaWdpbiArIHJpdmV0UGl0Y2hYKSkpKSkgY29uZCgoKGNvcm5lckV4Y2x1ZGVXaWR0aCA8IChudW1Db2xzICogcml2ZXRQaXRjaFkpKSAoeVdvcmtpbmdXaWR0aCA9ICh3IC0gKDIgKiBudW1Db2xzICogcml2ZXRQaXRjaFkpKSkpICh0ICh5V29ya2luZ1dpZHRoID0gKHcgLSAoMiAqIGNvcm5lckV4Y2x1ZGVXaWR0aCkpKSkpICh5V29ya2luZ0dyaWRzID0gZml4KCgwLjk5OSArICh5V29ya2luZ1dpZHRoIC8gZ3JpZCkpKSkgKG51bVJpdmV0cyA9IGZpeCgoMWUtMDUgKyAoKHlXb3JraW5nV2lkdGggKyByaXZldFNwYWNlKSAvIChyaXZldExlbmd0aCArIHJpdmV0U3BhY2UpKSkpKSAoZGVsdGFXaWR0aCA9ICh5V29ya2luZ1dpZHRoIC0gKChudW1SaXZldHMgKiByaXZldExlbmd0aCkgKyAoKG51bVJpdmV0cyAtIDEpICogcml2ZXRTcGFjZSkpKSkgKGNlbnRlclNwYWNlID0gcml2ZXRTcGFjZSkgd2hlbihldmVucChudW1SaXZldHMpIGNvbmQoKGV2ZW5wKHlXb3JraW5nR3JpZHMpIHdoZW4ob2RkcChyaXZldFNwYWNlR3JpZHMpIGNvbmQoKChkZWx0YVdpZHRoID49IGdyaWQpIChjZW50ZXJTcGFjZSA9IChjZW50ZXJTcGFjZSArIGdyaWQpKSkgKHQgKG51bVJpdmV0cyA9IChudW1SaXZldHMgLSAxKSkpKSkpICh0IHdoZW4oZXZlbnAocml2ZXRTcGFjZUdyaWRzKSBjb25kKCgoZGVsdGFXaWR0aCA+PSBncmlkKSAoY2VudGVyU3BhY2UgPSAoY2VudGVyU3BhY2UgKyBncmlkKSkpICh0IChudW1SaXZldHMgPSAobnVtUml2ZXRzIC0gMSkpKSkpKSkpIHdoZW4ob2RkcChudW1SaXZldHMpIGNvbmQoKGV2ZW5wKHlXb3JraW5nR3JpZHMpIHdoZW4ob2RkcChyaXZldFdpZHRoR3JpZHMpIChudW1SaXZldHMgPSAobnVtUml2ZXRzIC0gMSkpIHdoZW4ob2RkcChyaXZldFNwYWNlR3JpZHMpIChjZW50ZXJTcGFjZSA9IChjZW50ZXJTcGFjZSArIGdyaWQpKSkpKSAodCB3aGVuKGV2ZW5wKHJpdmV0V2lkdGhHcmlkcykgKG51bVJpdmV0cyA9IChudW1SaXZldHMgLSAxKSkgd2hlbihldmVucChyaXZldFNwYWNlR3JpZHMpIChjZW50ZXJTcGFjZSA9IChjZW50ZXJTcGFjZSArIGdyaWQpKSkpKSkpICh5T3JpZ2luID0gKCh5T2Zmc2V0ICsgKHcgLyAyLjApKSAtICgoKG51bVJpdmV0cyAqIHJpdmV0TGVuZ3RoKSArICgobnVtUml2ZXRzIC0gMikgKiByaXZldFNwYWNlKSArIGNlbnRlclNwYWNlKSAvIDIuMCkpKSBmb3Iocm93IDEgbnVtUml2ZXRzICh4T3JpZ2luTGVmdCA9IHhPZmZzZXQpICh4T3JpZ2luUmlnaHQgPSAoeE9mZnNldCArIGwpKSBmb3IoY29sIDEgbnVtQ29scyAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcml2ZXRMYXllciBsaXN0KCh4T3JpZ2luTGVmdDp5T3JpZ2luKSAoKHhPcmlnaW5MZWZ0ICsgcml2ZXRXaWR0aCk6KHlPcmlnaW4gKyByaXZldExlbmd0aCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJpdmV0TGF5ZXIgbGlzdCgoeE9yaWdpblJpZ2h0OnlPcmlnaW4pICgoeE9yaWdpblJpZ2h0IC0gcml2ZXRXaWR0aCk6KHlPcmlnaW4gKyByaXZldExlbmd0aCkpKSkgd2hlbihyaXZldDJMYXllciAoeE9yaWdpbkxlZnQyID0gKHhPcmlnaW5MZWZ0ICsgcml2ZXQyRW5jQnlSaXZldDFXKSkgKHhPcmlnaW5SaWdodDIgPSAoeE9yaWdpblJpZ2h0IC0gcml2ZXQyRW5jQnlSaXZldDFXKSkgKHlPcmlnaW4yID0gKHlPcmlnaW4gKyByaXZldDJFbmNCeVJpdmV0MUwgKyByaXZldDJPZmZzZXRMKSkgZm9yKGNvbDIgMSBudW1Db2wyIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByaXZldDJMYXllciBsaXN0KCh4T3JpZ2luTGVmdDI6eU9yaWdpbjIpICgoeE9yaWdpbkxlZnQyICsgcml2ZXQyV2lkdGgpOih5T3JpZ2luMiArIHJpdmV0Mkxlbmd0aCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJpdmV0MkxheWVyIGxpc3QoKHhPcmlnaW5SaWdodDI6eU9yaWdpbjIpICgoeE9yaWdpblJpZ2h0MiAtIHJpdmV0MldpZHRoKTooeU9yaWdpbjIgKyByaXZldDJMZW5ndGgpKSkpICh5T3JpZ2luMiA9ICh5T3JpZ2luMiArIHJpdmV0MlBpdGNoTCkpKSkgKHhPcmlnaW5MZWZ0ID0gKHhPcmlnaW5MZWZ0ICsgcml2ZXRQaXRjaFkpKSAoeE9yaWdpblJpZ2h0ID0gKHhPcmlnaW5SaWdodCAtIHJpdmV0UGl0Y2hZKSkpIGNvbmQoKChldmVucChudW1SaXZldHMpICYmIChhYnMoKHJvdyAtIChudW1SaXZldHMgLyAyLjApKSkgPCAxZS0wNSkpICh5T3JpZ2luID0gKHlPcmlnaW4gKyByaXZldExlbmd0aCArIGNlbnRlclNwYWNlKSkpICh0ICh5T3JpZ2luID0gKHlPcmlnaW4gKyByaXZldFBpdGNoWCkpKSkpKQAod2lkdGhFcUxlbmd0aCB3IGwgeE9mZnNldCB5T2Zmc2V0IHJpdmV0TGF5ZXIgcml2ZXQyTGF5ZXIgcml2ZXRMYXllcjIgcmluZ1dpZHRoIHJpdmV0V2lkdGggcml2ZXRMZW5ndGggcml2ZXRTcGFjZSByaXZldDJXaWR0aCByaXZldDJMZW5ndGggcml2ZXQyU3BhY2Ugcml2ZXQyRW5jQnlSaXZldDFMIHJpdmV0MkVuY0J5Uml2ZXQxVyBsbEJldmVsTGVuZ3RoIHVsQmV2ZWxMZW5ndGggbHJCZXZlbExlbmd0aCB1ckJldmVsTGVuZ3RoIGF1dG9JbmNyZWFzZUJldmVsV2lkdGggZ3JpZCBjb3JuZXJFeGNsdWRlV2lkdGggcml2ZXRQaXRjaFkgcml2ZXRQaXRjaFggcml2ZXQyUGl0Y2hMIHJpdmV0MkFjdGl2ZUwgbnVtQ29sMiByaXZldDFSZWFsTCByaXZldDJPZmZzZXRMIG51bUNvbHMgcml2ZXRXaWR0aEdyaWRzIHJpdmV0U3BhY2VHcmlkcyB4V29ya2luZ1dpZHRoIHhXb3JraW5nR3JpZHMgbnVtUml2ZXRzIGRlbHRhV2lkdGggY2VudGVyU3BhY2UgeE9yaWdpbiByb3cgeU9yaWdpbkJvdCB5T3JpZ2luVG9wIGNvbCB5T3JpZ2luQm90MiB5T3JpZ2luVG9wMiB4T3JpZ2luMiBjb2wyIHlXb3JraW5nV2lkdGggeVdvcmtpbmdHcmlkcyB5T3JpZ2luIHhPcmlnaW5MZWZ0IHhPcmlnaW5SaWdodCB4T3JpZ2luTGVmdDIgeE9yaWdpblJpZ2h0MiB5T3JpZ2luMikAKCh3IDUwLjApIChsIDUwLjApICh4T2Zmc2V0IDAuMCkgKHlPZmZzZXQgMC4wKSAocml2ZXRMYXllciBsaXN0KCJ5MyIgImRyYXdpbmciKSkgKHJpdmV0MkxheWVyIG5pbCkgKHJpdmV0TGF5ZXIyIG5pbCkgKHJpbmdXaWR0aCA2LjApIChyaXZldFdpZHRoIDAuNikgKHJpdmV0TGVuZ3RoIDEuMCkgKHJpdmV0U3BhY2UgMC44KSAocml2ZXQyV2lkdGggMC4wKSAocml2ZXQyTGVuZ3RoIDAuMCkgKHJpdmV0MlNwYWNlIDAuMCkgKHJpdmV0MkVuY0J5Uml2ZXQxTCAwLjApIChyaXZldDJFbmNCeVJpdmV0MVcgMC4wKSAobGxCZXZlbExlbmd0aCAxMC4wKSAodWxCZXZlbExlbmd0aCAxMC4wKSAobHJCZXZlbExlbmd0aCAxMC4wKSAodXJCZXZlbExlbmd0aCAxMC4wKSAoYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCAiRkFMU0UiKSAoZ3JpZCAwLjA1KSkAKCh3aWR0aEVxTGVuZ3RoIHQpKQAoKHMyID0gc3FydCgyLjApKSBkZWNsYXJlKHRoaXNMYXllclsyXSkgKHRoaXNMYXllclswXSA9IHJpdmV0TGF5ZXIpICh0aGlzTGF5ZXJbMV0gPSAocml2ZXRMYXllcjIgfHwgcml2ZXRMYXllcikpIChjb250YWN0TnVtID0gMCkgKHJpdmV0U3BhY2VZID0gcml2ZXRTcGFjZSkgd2hlbigocml2ZXRTcGFjZVggPT0gMC4wKSAocml2ZXRTcGFjZVggPSByaXZldFNwYWNlKSkgKHJpdmV0UGl0Y2hZID0gKHJpdmV0V2lkdGggKyByaXZldFNwYWNlWSkpIChyaXZldFBpdGNoWCA9IChyaXZldFdpZHRoICsgcml2ZXRTcGFjZVgpKSAocml2ZXRQaXRjaFhfb3JpZyA9IHJpdmV0UGl0Y2hYKSAocml2ZXRQaXRjaFlfb3JpZyA9IHJpdmV0UGl0Y2hZKSAocml2ZXRQaXRjaE1heCA9IG1heChyaXZldFBpdGNoWSByaXZldFBpdGNoWCkpIChyaXZldFBpdGNoTWluID0gbWluKHJpdmV0UGl0Y2hZIHJpdmV0UGl0Y2hYKSkgaWYoKHJpdmV0UGl0Y2hZID4gcml2ZXRQaXRjaFgpIHRoZW4gKHJpdmV0UGl0Y2hPZmZzZXQgPSAocml2ZXRQaXRjaFkgLSByaXZldFBpdGNoWCkpIGVsc2UgKHJpdmV0UGl0Y2hPZmZzZXQgPSAocml2ZXRQaXRjaFggLSByaXZldFBpdGNoWSkpKSAocml2ZXRQaXRjaE9mZnNldEhhbGYgPSAocml2ZXRQaXRjaE9mZnNldCAvIDIpKSAobnVtQ29scyA9IGZpeCgoKChyaW5nV2lkdGggKyByaXZldFNwYWNlWCkgLyByaXZldFBpdGNoWCkgKyAxZS0wNSkpKSAodXNlZFJpbmdXaWR0aCA9ICgobnVtQ29scyAqIHJpdmV0UGl0Y2hYKSAtIHJpdmV0U3BhY2VYKSkgY29uZCgoKChhdXRvSW5jcmVhc2VCZXZlbFdpZHRoID09ICJUUlVFIikgJiYgKHJpbmdXaWR0aCA8IChzMiAqIHJpdmV0V2lkdGgpKSkgKGFkZGl0aW9uYWxCZXZlbFdpZHRoID0gKChyaXZldFdpZHRoICsgKCgxIC0gczIpICogdXNlZFJpbmdXaWR0aCkpIC8gczIpKSAobnVtQ29sc0luQmV2ZWwgPSBudW1Db2xzKSkgKHQgKGFkZGl0aW9uYWxCZXZlbFdpZHRoID0gMC4wKSAobnVtQ29sc0luQmV2ZWwgPSBmaXgoKDFlLTA1ICsgKCgocml2ZXRTcGFjZVggKyAoczIgKiByaW5nV2lkdGgpKSAtIHJpdmV0V2lkdGgpIC8gcml2ZXRQaXRjaFgpKSkpKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJhZGRpdGlvbmFsQmV2ZWxXaWR0aCIgImZsb2F0IiBhZGRpdGlvbmFsQmV2ZWxXaWR0aCkgKG1pbkJldmVsQ3V0Rm9yUml2ZXQgPSAoKDIuMCAqIHJpdmV0UGl0Y2hYKSAtIDFlLTA1KSkgKGJldmVsSW5zaWRlT2Zmc2V0ID0gKCgocmluZ1dpZHRoICogKHMyIC0gMS4wKSkgKyAoczIgKiBhZGRpdGlvbmFsQmV2ZWxXaWR0aCkpIC8gZ3JpZCkpIChmaXhlZEJldiA9IGZpeCgoMC45OTkgKyBiZXZlbEluc2lkZU9mZnNldCkpKSAoYmV2ZWxJbnNpZGVPZmZzZXQgPSAoZ3JpZCAqIGZpeGVkQmV2KSkgKGNhbm5vdEJldmVsTGVuZ3RoID0gKHJpbmdXaWR0aCAtIGJldmVsSW5zaWRlT2Zmc2V0KSkgKGxsQmV2ZWwgPSAobGxCZXZlbExlbmd0aCA+IGNhbm5vdEJldmVsTGVuZ3RoKSkgKGxyQmV2ZWwgPSAobHJCZXZlbExlbmd0aCA+IGNhbm5vdEJldmVsTGVuZ3RoKSkgKHVyQmV2ZWwgPSAodXJCZXZlbExlbmd0aCA+IGNhbm5vdEJldmVsTGVuZ3RoKSkgKHVsQmV2ZWwgPSAodWxCZXZlbExlbmd0aCA+IGNhbm5vdEJldmVsTGVuZ3RoKSkgY29uZCgobGxCZXZlbCAoeE9yaWdpbiA9ICh4T2Zmc2V0ICsgbGxCZXZlbExlbmd0aCkpICh5T3JpZ2luID0geU9mZnNldCkpICh0ICh4T3JpZ2luID0geE9mZnNldCkgKHlPcmlnaW4gPSB5T2Zmc2V0KSkpIHdoZW4oKGxsQmV2ZWxMZW5ndGggPCAodXNlZFJpbmdXaWR0aCArIHJpdmV0U3BhY2VYKSkgKHhPcmlnaW4gPSAoeE9mZnNldCArIG1heCgodXNlZFJpbmdXaWR0aCArIHJpdmV0U3BhY2VYKSByaXZldFBpdGNoWCkpKSkgY29uZCgobHJCZXZlbCAoeFN0b3AgPSAoeE9mZnNldCArIGwgKyAoLSBsckJldmVsTGVuZ3RoKSArICgtIHJpdmV0V2lkdGgpKSkpICh0ICh4U3RvcCA9ICh4T2Zmc2V0ICsgbCArICgtIHJpdmV0V2lkdGgpKSkpKSB3aGVuKChsZXNzQ29uTmVhcmJldmVsID09ICJUUlVFIikgKHhTdG9wID0gKHhTdG9wICsgKC0gcml2ZXRQaXRjaFgpKSkpICh0ZW1wQ29udGFjdE51bSA9IGNvbnRhY3ROdW0pICh5TG9vcE9yaWdpbiA9IHlPcmlnaW4pIGZvcihjb2wgMSBudW1Db2xzIChjb250YWN0TnVtID0gbW9kKCh0ZW1wQ29udGFjdE51bSArIDEpIDIpKSAodGVtcENvbnRhY3ROdW0gPSBjb250YWN0TnVtKSAoeExvb3BPcmlnaW4gPSB4T3JpZ2luKSB3aGVuKChsZXNzQ29uTmVhcmJldmVsID09ICJUUlVFIikgKHhMb29wT3JpZ2luID0gKHhPcmlnaW4gKyByaXZldFBpdGNoWSkpKSB3aGlsZSgoeExvb3BPcmlnaW4gPCB4U3RvcCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRoaXNMYXllcltjb250YWN0TnVtXSBsaXN0KCh4TG9vcE9yaWdpbjp5TG9vcE9yaWdpbikgKCh4TG9vcE9yaWdpbiArIHJpdmV0V2lkdGgpOih5TG9vcE9yaWdpbiArIHJpdmV0V2lkdGgpKSkpIChjb250YWN0TnVtID0gbW9kKChjb250YWN0TnVtICsgMSkgMikpICh4TG9vcE9yaWdpbiA9ICh4TG9vcE9yaWdpbiArIHJpdmV0UGl0Y2hZKSkpICh5TG9vcE9yaWdpbiA9ICh5TG9vcE9yaWdpbiArIHJpdmV0UGl0Y2hYKSkpIHdoZW4oKGxlc3NDb25OZWFyYmV2ZWwgPT0gIlRSVUUiKSAoeExvb3BPcmlnaW4gPSAoeExvb3BPcmlnaW4gKyByaXZldFBpdGNoWCkpKSB3aGVuKCh1cGRhdGVkQ2xhc3MgPT0gIlRSVUUiKSAocml2ZXRQaXRjaFggPSByaXZldFBpdGNoTWF4KSAocml2ZXRQaXRjaFkgPSByaXZldFBpdGNoTWF4KSAodGhpc0xheWVyWzBdID0gcml2ZXRMYXllcikgKHRoaXNMYXllclsxXSA9IHJpdmV0TGF5ZXIyKSAocml2ZXRQaXRjaE9mZnNldEhhbGYgPSAwLjApIChyaXZldFBpdGNoT2Zmc2V0ID0gMC4wKSkgKG51bUNvbHNMUiA9IChudW1Db2xzICsgKC0gbnVtQ29sc0xlc3MpKSkgKG51bUNvbHNJbkJldmVsTFIgPSAobnVtQ29sc0luQmV2ZWwgKyAoLSBudW1Db2xzTGVzcykpKSBjb25kKCgobHJCZXZlbCAmJiAobHJCZXZlbExlbmd0aCA+IG1pbkJldmVsQ3V0Rm9yUml2ZXQpKSAoc2xhY2tGcm9tTGFzdFJ1biA9ICh4T2Zmc2V0ICsgbCArICgtIGxyQmV2ZWxMZW5ndGgpICsgKC0geExvb3BPcmlnaW4pICsgcml2ZXRTcGFjZVgpKSBjb25kKCgobHJCZXZlbExlbmd0aCA8ICh1c2VkUmluZ1dpZHRoICsgcml2ZXRTcGFjZVgpKSAoZGVsdGEgPSBtaW4oKCgtIGxyQmV2ZWxMZW5ndGgpICsgdXNlZFJpbmdXaWR0aCArIHJpdmV0U3BhY2VYKSByaXZldFBpdGNoWCkpICh0aGVTdGFydFJvdyA9ICgxIC0gZml4KCgxZS0wNSArICgodXNlZFJpbmdXaWR0aCArIHJpdmV0U3BhY2VYICsgKC0gbHJCZXZlbExlbmd0aCkpIC8gcml2ZXRQaXRjaFgpKSkpKSkgKHQgKGRlbHRhID0gMC4wKSAodGhlU3RhcnRSb3cgPSAxKSkpICh0b3RhbFNsYWNrID0gKChsckJldmVsTGVuZ3RoICsgZGVsdGEgKyBzbGFja0Zyb21MYXN0UnVuKSAtIChyaXZldFBpdGNoWCAqIGZpeCgoMWUtMDUgKyAoKGxyQmV2ZWxMZW5ndGggKyBkZWx0YSArIHNsYWNrRnJvbUxhc3RSdW4pIC8gcml2ZXRQaXRjaFgpKSkpKSkgKGhhbGZUb3RhbFNsYWNrID0gKDAuNSAqIHRvdGFsU2xhY2spKSAoZml4ZWRIYWxmU2xhY2sgPSBmaXgoKDAuOTk5ICsgKGhhbGZUb3RhbFNsYWNrIC8gZ3JpZCkpKSkgKGV4dHJhT2Zmc2V0ID0gKGZpeGVkSGFsZlNsYWNrICogZ3JpZCkpICh4T3JpZ2luID0gKHhPZmZzZXQgKyBsICsgKC0gcml2ZXRQaXRjaFgpICsgKC0gcml2ZXRXaWR0aCkgKyAoLSBleHRyYU9mZnNldCkgKyBkZWx0YSArIHJpdmV0UGl0Y2hPZmZzZXRIYWxmKSkgKHlPcmlnaW4gPSAoeU9mZnNldCArIGxyQmV2ZWxMZW5ndGggKyAoLSByaXZldFBpdGNoWSkgKyAoLSBleHRyYU9mZnNldCkgKyBkZWx0YSArICgtIHJpdmV0UGl0Y2hPZmZzZXRIYWxmKSkpICh4U3RvcCA9ICh4T2Zmc2V0ICsgbCArICgtIGxyQmV2ZWxMZW5ndGgpICsgcml2ZXRTcGFjZVggKyAoLSBzbGFja0Zyb21MYXN0UnVuKSArIC0xZS0wNSkpIChjb2wgPSAxKSB3aGlsZSgoeE9yaWdpbiA+PSB4U3RvcCkgKHN0b3BSb3cgPSBtaW4oY29sIG51bUNvbHNJbkJldmVsTFIpKSBjb25kKCgoKG51bUNvbHNJbkJldmVsTFIgPiBudW1Db2xzTFIpICYmIChjb2wgPj0gbnVtQ29sc0xSKSkgKHN0YXJ0Um93ID0gKChzdG9wUm93IC0gbnVtQ29sc0luQmV2ZWxMUikgKyAxKSkpICh0IChzdGFydFJvdyA9IHRoZVN0YXJ0Um93KSkpIGZvcihyb3cgc3RhcnRSb3cgc3RvcFJvdyAoeUxvb3BPcmlnaW4gPSAoeU9yaWdpbiArICgocm93IC0gMSkgKiAoLSByaXZldFBpdGNoWSkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRoaXNMYXllcltjb250YWN0TnVtXSBsaXN0KCh4T3JpZ2luOnlMb29wT3JpZ2luKSAoKHhPcmlnaW4gKyByaXZldFdpZHRoKTooeUxvb3BPcmlnaW4gKyByaXZldFdpZHRoKSkpKSAoY29udGFjdE51bSA9IG1vZCgoY29udGFjdE51bSArIDEpIDIpKSB3aGVuKCgodXBkYXRlZENsYXNzID09ICJUUlVFIikgJiYgKGFsdENvckNvbiA9PSAiVFJVRSIpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGhpc0xheWVyW2NvbnRhY3ROdW1dIGxpc3QoKHhPcmlnaW46eUxvb3BPcmlnaW4pICgoeE9yaWdpbiArIHJpdmV0V2lkdGgpOih5TG9vcE9yaWdpbiArIHJpdmV0V2lkdGgpKSkpIChjb250YWN0TnVtID0gbW9kKChjb250YWN0TnVtICsgMSkgMikpKSkgKHlPcmlnaW4gPSAoeU9yaWdpbiAtIHJpdmV0UGl0Y2hPZmZzZXQpKSAoY29sID0gKGNvbCArIDEpKSB3aGVuKChjb2wgPiBudW1Db2xzSW5CZXZlbExSKSAoeU9yaWdpbiA9ICh5T3JpZ2luIC0gcml2ZXRQaXRjaFkpKSkgKHhPcmlnaW4gPSAoeE9yaWdpbiAtIHJpdmV0UGl0Y2hYKSkpIHdoZW4oKChudW1Db2xzSW5CZXZlbExSID4gbnVtQ29sc0xSKSAmJiAobHJCZXZlbExlbmd0aCA+IHJpbmdXaWR0aCkpICh5U3RvcCA9ICh5T2Zmc2V0ICsgdXNlZFJpbmdXaWR0aCArIHJpdmV0U3BhY2VZKSkgKHlMb29wT3JpZ2luID0geU9yaWdpbikgd2hpbGUoKHhPcmlnaW4gPj0gKHhPZmZzZXQgKyBsICsgKC0gbHJCZXZlbExlbmd0aCkgKyAoLSBiZXZlbEluc2lkZU9mZnNldCkpKSB3aGlsZSgoeUxvb3BPcmlnaW4gPiB5U3RvcCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRoaXNMYXllcltjb250YWN0TnVtXSBsaXN0KCh4T3JpZ2luOnlMb29wT3JpZ2luKSAoKHhPcmlnaW4gKyByaXZldFdpZHRoKTooeUxvb3BPcmlnaW4gKyByaXZldFdpZHRoKSkpKSAoY29udGFjdE51bSA9IG1vZCgoY29udGFjdE51bSArIDEpIDIpKSAoeUxvb3BPcmlnaW4gPSAoeUxvb3BPcmlnaW4gLSByaXZldFBpdGNoWSkpKSAoeU9yaWdpbiA9ICh5T3JpZ2luIC0gcml2ZXRQaXRjaFkpKSAoeUxvb3BPcmlnaW4gPSB5T3JpZ2luKSAoeE9yaWdpbiA9ICh4T3JpZ2luIC0gcml2ZXRQaXRjaFgpKSkpICh4T3JpZ2luID0gKHhPZmZzZXQgKyBsICsgKC0gdXNlZFJpbmdXaWR0aCkpKSAoeU9yaWdpbiA9ICh5T2Zmc2V0ICsgbHJCZXZlbExlbmd0aCkpKSAobHJCZXZlbCAoeE9yaWdpbiA9ICh4T2Zmc2V0ICsgbCArICgtIHVzZWRSaW5nV2lkdGgpKSkgKHlPcmlnaW4gPSAoeU9mZnNldCArIGxyQmV2ZWxMZW5ndGgpKSkgKHQgKHhPcmlnaW4gPSAoeE9mZnNldCArIGwgKyAoLSB1c2VkUmluZ1dpZHRoKSkpICh5T3JpZ2luID0gKHlPZmZzZXQgKyB1c2VkUmluZ1dpZHRoICsgcml2ZXRTcGFjZVkpKSkpIHdoZW4oKGxyQmV2ZWxMZW5ndGggPCAodXNlZFJpbmdXaWR0aCArIHJpdmV0U3BhY2VZKSkgKHlPcmlnaW4gPSAoeU9mZnNldCArIHVzZWRSaW5nV2lkdGggKyByaXZldFNwYWNlWSkpKSBjb25kKCh1ckJldmVsICh5U3RvcCA9ICh5T2Zmc2V0ICsgdyArICgtIHVyQmV2ZWxMZW5ndGgpICsgKC0gcml2ZXRXaWR0aCkpKSkgKHQgKHlTdG9wID0gKHlPZmZzZXQgKyB3ICsgKC0gcml2ZXRXaWR0aCkpKSkpIHdoZW4oKGxlc3NDb25OZWFyYmV2ZWwgPT0gIlRSVUUiKSAoeVN0b3AgPSAoeVN0b3AgKyAoLSByaXZldFBpdGNoWSkpKSkgd2hlbigodXBkYXRlZENsYXNzID09ICJUUlVFIikgKHJpdmV0UGl0Y2hYID0gcml2ZXRQaXRjaFhfb3JpZykgKHJpdmV0UGl0Y2hZID0gcml2ZXRQaXRjaFlfb3JpZykgKHRoaXNMYXllclswXSA9IHJpdmV0TGF5ZXIpICh0aGlzTGF5ZXJbMV0gPSAocml2ZXRMYXllcjIgfHwgcml2ZXRMYXllcikpKSAoeExvb3BPcmlnaW4gPSB4T3JpZ2luKSBmb3IoY29sIDEgbnVtQ29scyAoY29udGFjdE51bSA9IG1vZCgodGVtcENvbnRhY3ROdW0gKyAxKSAyKSkgKHRlbXBDb250YWN0TnVtID0gY29udGFjdE51bSkgKHlMb29wT3JpZ2luID0geU9yaWdpbikgd2hlbigobGVzc0Nvbk5lYXJiZXZlbCA9PSAiVFJVRSIpICh5TG9vcE9yaWdpbiA9ICh5T3JpZ2luICsgcml2ZXRQaXRjaFkpKSkgd2hpbGUoKHlMb29wT3JpZ2luIDwgeVN0b3ApIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0aGlzTGF5ZXJbY29udGFjdE51bV0gbGlzdCgoeExvb3BPcmlnaW46eUxvb3BPcmlnaW4pICgoeExvb3BPcmlnaW4gKyByaXZldFdpZHRoKTooeUxvb3BPcmlnaW4gKyByaXZldFdpZHRoKSkpKSAoY29udGFjdE51bSA9IG1vZCgoY29udGFjdE51bSArIDEpIDIpKSAoeUxvb3BPcmlnaW4gPSAoeUxvb3BPcmlnaW4gKyByaXZldFBpdGNoWSkpKSAoeExvb3BPcmlnaW4gPSAoeExvb3BPcmlnaW4gKyByaXZldFBpdGNoWCkpKSB3aGVuKChsZXNzQ29uTmVhcmJldmVsID09ICJUUlVFIikgKHlMb29wT3JpZ2luID0gKHlMb29wT3JpZ2luICsgcml2ZXRQaXRjaFkpKSkgd2hlbigodXBkYXRlZENsYXNzID09ICJUUlVFIikgKHJpdmV0UGl0Y2hYID0gcml2ZXRQaXRjaE1heCkgKHJpdmV0UGl0Y2hZID0gcml2ZXRQaXRjaE1heCkgKHRoaXNMYXllclswXSA9IHJpdmV0TGF5ZXIpICh0aGlzTGF5ZXJbMV0gPSByaXZldExheWVyMikgKHJpdmV0UGl0Y2hPZmZzZXRIYWxmID0gMC4wKSAocml2ZXRQaXRjaE9mZnNldCA9IDAuMCkpIChudW1Db2xzVVIgPSAobnVtQ29scyArICgtIG51bUNvbHNMZXNzKSkpIChudW1Db2xzSW5CZXZlbFVSID0gKG51bUNvbHNJbkJldmVsICsgKC0gbnVtQ29sc0xlc3MpKSkgY29uZCgoKHVyQmV2ZWwgJiYgKHVyQmV2ZWxMZW5ndGggPiBtaW5CZXZlbEN1dEZvclJpdmV0KSkgKHNsYWNrRnJvbUxhc3RSdW4gPSAoeU9mZnNldCArIHcgKyAoLSB1ckJldmVsTGVuZ3RoKSArICgtIHlMb29wT3JpZ2luKSArIHJpdmV0U3BhY2VZKSkgY29uZCgoKHVyQmV2ZWxMZW5ndGggPCAodXNlZFJpbmdXaWR0aCArIHJpdmV0U3BhY2VYKSkgKGRlbHRhID0gbWluKCgoLSB1ckJldmVsTGVuZ3RoKSArIHVzZWRSaW5nV2lkdGggKyByaXZldFNwYWNlWCkgcml2ZXRQaXRjaFgpKSAodGhlU3RhcnRSb3cgPSAoMSAtIGZpeCgoMWUtMDUgKyAoKHVzZWRSaW5nV2lkdGggKyByaXZldFNwYWNlWCArICgtIHVyQmV2ZWxMZW5ndGgpKSAvIHJpdmV0UGl0Y2hYKSkpKSkpICh0IChkZWx0YSA9IDAuMCkgKHRoZVN0YXJ0Um93ID0gMSkpKSAodG90YWxTbGFjayA9ICgodXJCZXZlbExlbmd0aCArIGRlbHRhKSAtIChyaXZldFBpdGNoWCAqIGZpeCgoMWUtMDUgKyAoKHVyQmV2ZWxMZW5ndGggKyBkZWx0YSkgLyByaXZldFBpdGNoWCkpKSkpKSBjb25kKCgoKHRvdGFsU2xhY2sgKyBzbGFja0Zyb21MYXN0UnVuICsgMWUtMDUpID4gcml2ZXRQaXRjaFgpICh0b3RhbFNsYWNrID0gKCgtIHJpdmV0UGl0Y2hYKSArIHRvdGFsU2xhY2sgKyBzbGFja0Zyb21MYXN0UnVuKSkpICh0ICh0b3RhbFNsYWNrID0gKHRvdGFsU2xhY2sgKyBzbGFja0Zyb21MYXN0UnVuKSkpKSAoaGFsZlRvdGFsU2xhY2sgPSAoMC41ICogdG90YWxTbGFjaykpIChmaXhlZEhhbGZTbGFjayA9IGZpeCgoMC45OTkgKyAoaGFsZlRvdGFsU2xhY2sgLyBncmlkKSkpKSAoZXh0cmFPZmZzZXQgPSAoZml4ZWRIYWxmU2xhY2sgKiBncmlkKSkgKHhPcmlnaW4gPSAoeE9mZnNldCArIGwgKyAoLSByaXZldFdpZHRoKSArICgtIHJpdmV0UGl0Y2hYKSArICgtIGV4dHJhT2Zmc2V0KSArIHNsYWNrRnJvbUxhc3RSdW4gKyByaXZldFBpdGNoT2Zmc2V0SGFsZikpICh5T3JpZ2luID0gKHlMb29wT3JpZ2luICsgZXh0cmFPZmZzZXQgKyByaXZldFBpdGNoT2Zmc2V0SGFsZikpIGNvbmQoKCgwLjAgPiAoc2xhY2tGcm9tTGFzdFJ1biArICgtIGV4dHJhT2Zmc2V0KSkpIChkcmF3RXh0cmFJbnNpZGVDb2x1bW4gPSB0KSkgKHQgKGRyYXdFeHRyYUluc2lkZUNvbHVtbiA9IG5pbCkpKSAoeFN0b3AgPSBtaW4oKHhPZmZzZXQgKyBsICsgKC0gdXJCZXZlbExlbmd0aCkgKyByaXZldFNwYWNlWCArIC0xZS0wNSkgKHhPZmZzZXQgKyBsICsgKC0gdXNlZFJpbmdXaWR0aCkgKyAtMWUtMDUpKSkgKGNvbCA9IDEpIHdoaWxlKCh4T3JpZ2luID49IHhTdG9wKSAoc3RvcFJvdyA9IG1pbihjb2wgbnVtQ29sc0luQmV2ZWxVUikpIGNvbmQoKCgobnVtQ29sc0luQmV2ZWxVUiA+IG51bUNvbHNVUikgJiYgKGNvbCA+PSBudW1Db2xzVVIpKSBjb25kKChkcmF3RXh0cmFJbnNpZGVDb2x1bW4gKHN0YXJ0Um93ID0gKChzdG9wUm93IC0gbnVtQ29sc0luQmV2ZWxVUikgKyAxKSkpICh0IChkcmF3RXh0cmFJbnNpZGVDb2x1bW4gPSB0KSkpKSAodCAoc3RhcnRSb3cgPSB0aGVTdGFydFJvdykpKSBmb3Iocm93IHN0YXJ0Um93IHN0b3BSb3cgKHlMb29wT3JpZ2luID0gKHlPcmlnaW4gKyAoKHJvdyAtIDEpICogcml2ZXRQaXRjaFkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRoaXNMYXllcltjb250YWN0TnVtXSBsaXN0KCh4T3JpZ2luOnlMb29wT3JpZ2luKSAoKHhPcmlnaW4gKyByaXZldFdpZHRoKTooeUxvb3BPcmlnaW4gKyByaXZldFdpZHRoKSkpKSAoY29udGFjdE51bSA9IG1vZCgoY29udGFjdE51bSArIDEpIDIpKSB3aGVuKCgodXBkYXRlZENsYXNzID09ICJUUlVFIikgJiYgKGFsdENvckNvbiA9PSAiVFJVRSIpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGhpc0xheWVyW2NvbnRhY3ROdW1dIGxpc3QoKHhPcmlnaW46eUxvb3BPcmlnaW4pICgoeE9yaWdpbiArIHJpdmV0V2lkdGgpOih5TG9vcE9yaWdpbiArIHJpdmV0V2lkdGgpKSkpIChjb250YWN0TnVtID0gbW9kKChjb250YWN0TnVtICsgMSkgMikpKSkgKHlPcmlnaW4gPSAoeU9yaWdpbiArIHJpdmV0UGl0Y2hPZmZzZXQpKSAoY29sID0gKGNvbCArIDEpKSB3aGVuKChjb2wgPiBudW1Db2xzSW5CZXZlbFVSKSAoeU9yaWdpbiA9ICh5T3JpZ2luICsgcml2ZXRQaXRjaFkpKSkgKHhPcmlnaW4gPSAoeE9yaWdpbiAtIHJpdmV0UGl0Y2hYKSkpIHdoZW4oKGNvbCA8PSBudW1Db2xzSW5CZXZlbFVSKSAoeU9yaWdpbiA9ICh5T3JpZ2luICsgKHN0YXJ0Um93ICogcml2ZXRQaXRjaFkpKSkpIHdoZW4oKChudW1Db2xzSW5CZXZlbFVSID4gbnVtQ29sc1VSKSAmJiAodXJCZXZlbExlbmd0aCA+IHJpbmdXaWR0aCkpICh5U3RvcCA9ICh5T2Zmc2V0ICsgdyArICgtIHVzZWRSaW5nV2lkdGgpICsgKC0gcml2ZXRQaXRjaFkpKSkgKHlMb29wT3JpZ2luID0geU9yaWdpbikgd2hpbGUoKHhPcmlnaW4gPj0gKHhPZmZzZXQgKyBsICsgKC0gdXJCZXZlbExlbmd0aCkgKyAoLSBiZXZlbEluc2lkZU9mZnNldCkpKSB3aGlsZSgoeUxvb3BPcmlnaW4gPD0geVN0b3ApIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0aGlzTGF5ZXJbY29udGFjdE51bV0gbGlzdCgoeE9yaWdpbjp5TG9vcE9yaWdpbikgKCh4T3JpZ2luICsgcml2ZXRXaWR0aCk6KHlMb29wT3JpZ2luICsgcml2ZXRXaWR0aCkpKSkgKGNvbnRhY3ROdW0gPSBtb2QoKGNvbnRhY3ROdW0gKyAxKSAyKSkgKHlMb29wT3JpZ2luID0gKHlMb29wT3JpZ2luICsgcml2ZXRQaXRjaFkpKSkgKHlPcmlnaW4gPSAoeU9yaWdpbiArIHJpdmV0UGl0Y2hZKSkgKHlMb29wT3JpZ2luID0geU9yaWdpbikgKHhPcmlnaW4gPSAoeE9yaWdpbiAtIHJpdmV0UGl0Y2hYKSkpKSAoeE9yaWdpbiA9ICh4T2Zmc2V0ICsgbCArICgtIHVyQmV2ZWxMZW5ndGgpICsgKC0gcml2ZXRXaWR0aCkpKSAoeU9yaWdpbiA9ICh5T2Zmc2V0ICsgdyArICgtIHVzZWRSaW5nV2lkdGgpKSkpIChsckJldmVsICh4T3JpZ2luID0gKHhPZmZzZXQgKyBsICsgKC0gdXJCZXZlbExlbmd0aCkgKyAoLSByaXZldFdpZHRoKSkpICh5T3JpZ2luID0gKHlPZmZzZXQgKyB3ICsgKC0gdXNlZFJpbmdXaWR0aCkpKSkgKHQgKHhPcmlnaW4gPSAoeE9mZnNldCArIGwgKyAoLSB1c2VkUmluZ1dpZHRoKSArICgtIHJpdmV0U3BhY2VYKSkpICh5T3JpZ2luID0gKHlPZmZzZXQgKyB3ICsgKC0gdXNlZFJpbmdXaWR0aCkpKSkpIHdoZW4oKHhPcmlnaW4gPiAoeE9mZnNldCArIGwgKyAoLSB1c2VkUmluZ1dpZHRoKSArICgtIHJpdmV0UGl0Y2hYKSkpICh4T3JpZ2luID0gKHhPZmZzZXQgKyBsICsgKC0gdXNlZFJpbmdXaWR0aCkgKyAoLSByaXZldFBpdGNoWCkpKSkgY29uZCgodWxCZXZlbCAoeFN0b3AgPSAoeE9mZnNldCArIHVsQmV2ZWxMZW5ndGggKyAtMWUtMDUpKSkgKHQgKHhTdG9wID0gKHhPZmZzZXQgKyAtMWUtMDUpKSkpIHdoZW4oKGxlc3NDb25OZWFyYmV2ZWwgPT0gIlRSVUUiKSAoeFN0b3AgPSAoeFN0b3AgKyByaXZldFBpdGNoWCkpKSB3aGVuKCh1cGRhdGVkQ2xhc3MgPT0gIlRSVUUiKSAocml2ZXRQaXRjaFggPSByaXZldFBpdGNoWF9vcmlnKSAocml2ZXRQaXRjaFkgPSByaXZldFBpdGNoWV9vcmlnKSAodGhpc0xheWVyWzBdID0gcml2ZXRMYXllcikgKHRoaXNMYXllclsxXSA9IChyaXZldExheWVyMiB8fCByaXZldExheWVyKSkpICh5TG9vcE9yaWdpbiA9IHlPcmlnaW4pIGZvcihjb2wgMSBudW1Db2xzIChjb250YWN0TnVtID0gbW9kKCh0ZW1wQ29udGFjdE51bSArIDEpIDIpKSAodGVtcENvbnRhY3ROdW0gPSBjb250YWN0TnVtKSAoeExvb3BPcmlnaW4gPSB4T3JpZ2luKSB3aGVuKChsZXNzQ29uTmVhcmJldmVsID09ICJUUlVFIikgKHhMb29wT3JpZ2luID0gKHhPcmlnaW4gKyAoLSByaXZldFBpdGNoWCkpKSkgd2hpbGUoKHhMb29wT3JpZ2luID4geFN0b3ApIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0aGlzTGF5ZXJbY29udGFjdE51bV0gbGlzdCgoeExvb3BPcmlnaW46eUxvb3BPcmlnaW4pICgoeExvb3BPcmlnaW4gKyByaXZldFdpZHRoKTooeUxvb3BPcmlnaW4gKyByaXZldFdpZHRoKSkpKSAoY29udGFjdE51bSA9IG1vZCgoY29udGFjdE51bSArIDEpIDIpKSAoeExvb3BPcmlnaW4gPSAoeExvb3BPcmlnaW4gLSByaXZldFBpdGNoWSkpKSAoeUxvb3BPcmlnaW4gPSAoeUxvb3BPcmlnaW4gKyByaXZldFBpdGNoWCkpKSB3aGVuKChsZXNzQ29uTmVhcmJldmVsID09ICJUUlVFIikgKHhMb29wT3JpZ2luID0gKHhMb29wT3JpZ2luICsgKC0gcml2ZXRQaXRjaFgpKSkpIHdoZW4oKHVwZGF0ZWRDbGFzcyA9PSAiVFJVRSIpIChyaXZldFBpdGNoWCA9IHJpdmV0UGl0Y2hNYXgpIChyaXZldFBpdGNoWSA9IHJpdmV0UGl0Y2hNYXgpICh0aGlzTGF5ZXJbMF0gPSByaXZldExheWVyKSAodGhpc0xheWVyWzFdID0gcml2ZXRMYXllcjIpIChyaXZldFBpdGNoT2Zmc2V0SGFsZiA9IDAuMCkgKHJpdmV0UGl0Y2hPZmZzZXQgPSAwLjApKSAobnVtQ29sc1VMID0gKG51bUNvbHMgKyAoLSBudW1Db2xzTGVzcykpKSAobnVtQ29sc0luQmV2ZWxVTCA9IChudW1Db2xzSW5CZXZlbCArICgtIG51bUNvbHNMZXNzKSkpIGNvbmQoKCh1bEJldmVsICYmICh1bEJldmVsTGVuZ3RoID4gbWluQmV2ZWxDdXRGb3JSaXZldCkpIChzbGFja0Zyb21MYXN0UnVuID0gKHhMb29wT3JpZ2luICsgcml2ZXRQaXRjaFggKyAoLSB4T2Zmc2V0KSArICgtIHVsQmV2ZWxMZW5ndGgpKSkgY29uZCgoKHVsQmV2ZWxMZW5ndGggPCAodXNlZFJpbmdXaWR0aCArIHJpdmV0U3BhY2VYKSkgKGRlbHRhID0gbWluKCgoLSB1bEJldmVsTGVuZ3RoKSArIHVzZWRSaW5nV2lkdGggKyByaXZldFNwYWNlWCkgcml2ZXRQaXRjaFgpKSAodGhlU3RhcnRSb3cgPSAoMSAtIGZpeCgoMWUtMDUgKyAoKHVzZWRSaW5nV2lkdGggKyByaXZldFNwYWNlWCArICgtIHVsQmV2ZWxMZW5ndGgpKSAvIHJpdmV0UGl0Y2hYKSkpKSkpICh0IChkZWx0YSA9IDAuMCkgKHRoZVN0YXJ0Um93ID0gMSkpKSAodG90YWxTbGFjayA9ICgodWxCZXZlbExlbmd0aCArIGRlbHRhICsgc2xhY2tGcm9tTGFzdFJ1bikgLSAocml2ZXRQaXRjaFggKiBmaXgoKDFlLTA1ICsgKCh1bEJldmVsTGVuZ3RoICsgZGVsdGEgKyBzbGFja0Zyb21MYXN0UnVuKSAvIHJpdmV0UGl0Y2hYKSkpKSkpIChoYWxmVG90YWxTbGFjayA9ICgwLjUgKiB0b3RhbFNsYWNrKSkgKGZpeGVkSGFsZlNsYWNrID0gZml4KCgwLjk5OSArIChoYWxmVG90YWxTbGFjayAvIGdyaWQpKSkpIChleHRyYU9mZnNldCA9IChmaXhlZEhhbGZTbGFjayAqIGdyaWQpKSAoeE9yaWdpbiA9ICh4T2Zmc2V0ICsgcml2ZXRQaXRjaFggKyBleHRyYU9mZnNldCArICgtIGRlbHRhKSArICgtIHJpdmV0UGl0Y2hPZmZzZXRIYWxmKSkpICh5T3JpZ2luID0gKHlPZmZzZXQgKyB3ICsgKC0gdWxCZXZlbExlbmd0aCkgKyByaXZldFNwYWNlWSArIGV4dHJhT2Zmc2V0ICsgKC0gZGVsdGEpICsgcml2ZXRQaXRjaE9mZnNldEhhbGYpKSAoeFN0b3AgPSAoKHhPZmZzZXQgKyB1bEJldmVsTGVuZ3RoICsgc2xhY2tGcm9tTGFzdFJ1biArIDFlLTA1KSAtIHJpdmV0UGl0Y2hYKSkgKGNvbCA9IDEpIHdoaWxlKCh4T3JpZ2luIDw9IHhTdG9wKSAoc3RvcFJvdyA9IG1pbihjb2wgbnVtQ29sc0luQmV2ZWxVTCkpIGNvbmQoKCgobnVtQ29sc0luQmV2ZWxVTCA+IG51bUNvbHNVTCkgJiYgKGNvbCA+PSBudW1Db2xzVUwpKSAoc3RhcnRSb3cgPSAoKHN0b3BSb3cgLSBudW1Db2xzSW5CZXZlbFVMKSArIDEpKSkgKHQgKHN0YXJ0Um93ID0gdGhlU3RhcnRSb3cpKSkgZm9yKHJvdyBzdGFydFJvdyBzdG9wUm93ICh5TG9vcE9yaWdpbiA9ICh5T3JpZ2luICsgKChyb3cgLSAxKSAqIHJpdmV0UGl0Y2hZKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0aGlzTGF5ZXJbY29udGFjdE51bV0gbGlzdCgoeE9yaWdpbjp5TG9vcE9yaWdpbikgKCh4T3JpZ2luICsgcml2ZXRXaWR0aCk6KHlMb29wT3JpZ2luICsgcml2ZXRXaWR0aCkpKSkgKGNvbnRhY3ROdW0gPSBtb2QoKGNvbnRhY3ROdW0gKyAxKSAyKSkgd2hlbigoKHVwZGF0ZWRDbGFzcyA9PSAiVFJVRSIpICYmIChhbHRDb3JDb24gPT0gIlRSVUUiKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRoaXNMYXllcltjb250YWN0TnVtXSBsaXN0KCh4T3JpZ2luOnlMb29wT3JpZ2luKSAoKHhPcmlnaW4gKyByaXZldFdpZHRoKTooeUxvb3BPcmlnaW4gKyByaXZldFdpZHRoKSkpKSAoY29udGFjdE51bSA9IG1vZCgoY29udGFjdE51bSArIDEpIDIpKSkpIChjb2wgPSAoY29sICsgMSkpICh5T3JpZ2luID0gKHlPcmlnaW4gKyByaXZldFBpdGNoT2Zmc2V0KSkgd2hlbigoY29sID4gbnVtQ29sc0luQmV2ZWxVTCkgKHlPcmlnaW4gPSAoeU9yaWdpbiArIHJpdmV0UGl0Y2hZKSkpICh4T3JpZ2luID0gKHhPcmlnaW4gKyByaXZldFBpdGNoWCkpKSB3aGVuKCgobnVtQ29sc0luQmV2ZWxVTCA+IG51bUNvbHNVTCkgJiYgKHVsQmV2ZWxMZW5ndGggPiByaW5nV2lkdGgpKSAoeVN0b3AgPSAoeU9mZnNldCArIHcgKyAoLSB1c2VkUmluZ1dpZHRoKSArICgtIHJpdmV0UGl0Y2hZKSkpICh5TG9vcE9yaWdpbiA9IHlPcmlnaW4pIHdoaWxlKCh4T3JpZ2luIDw9ICh4T2Zmc2V0ICsgdWxCZXZlbExlbmd0aCArIGJldmVsSW5zaWRlT2Zmc2V0KSkgd2hpbGUoKHlMb29wT3JpZ2luIDw9IHlTdG9wKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGhpc0xheWVyW2NvbnRhY3ROdW1dIGxpc3QoKHhPcmlnaW46eUxvb3BPcmlnaW4pICgoeE9yaWdpbiArIHJpdmV0V2lkdGgpOih5TG9vcE9yaWdpbiArIHJpdmV0V2lkdGgpKSkpIChjb250YWN0TnVtID0gbW9kKChjb250YWN0TnVtICsgMSkgMikpICh5TG9vcE9yaWdpbiA9ICh5TG9vcE9yaWdpbiArIHJpdmV0UGl0Y2hZKSkpICh5T3JpZ2luID0gKHlPcmlnaW4gKyByaXZldFBpdGNoWSkpICh5TG9vcE9yaWdpbiA9IHlPcmlnaW4pICh4T3JpZ2luID0gKHhPcmlnaW4gKyByaXZldFBpdGNoWCkpKSkgKHhPcmlnaW4gPSB4T2Zmc2V0KSAoeU9yaWdpbiA9ICh5T2Zmc2V0ICsgdyArICgtIHVsQmV2ZWxMZW5ndGgpICsgKC0gcml2ZXRXaWR0aCkpKSkgKHVsQmV2ZWwgKHhPcmlnaW4gPSB4T2Zmc2V0KSAoeU9yaWdpbiA9ICh5T2Zmc2V0ICsgdyArICgtIHVsQmV2ZWxMZW5ndGgpICsgKC0gcml2ZXRXaWR0aCkpKSkgKHQgKHhPcmlnaW4gPSB4T2Zmc2V0KSAoeU9yaWdpbiA9ICh5T2Zmc2V0ICsgdyArICgtIHVzZWRSaW5nV2lkdGgpICsgKC0gcml2ZXRQaXRjaFkpKSkpKSB3aGVuKCh5T3JpZ2luID4gKHlPZmZzZXQgKyB3ICsgKC0gdXNlZFJpbmdXaWR0aCkgKyAoLSByaXZldFBpdGNoWSkpKSAoeU9yaWdpbiA9ICh5T2Zmc2V0ICsgdyArICgtIHVzZWRSaW5nV2lkdGgpICsgKC0gcml2ZXRQaXRjaFkpKSkpIGNvbmQoKGxsQmV2ZWwgKHlTdG9wID0gKHlPZmZzZXQgKyBsbEJldmVsTGVuZ3RoKSkpICh0ICh5U3RvcCA9IHlPZmZzZXQpKSkgd2hlbigobGVzc0Nvbk5lYXJiZXZlbCA9PSAiVFJVRSIpICh5U3RvcCA9ICh5U3RvcCArIHJpdmV0UGl0Y2hZKSkpIHdoZW4oKHVwZGF0ZWRDbGFzcyA9PSAiVFJVRSIpIChyaXZldFBpdGNoWCA9IHJpdmV0UGl0Y2hYX29yaWcpIChyaXZldFBpdGNoWSA9IHJpdmV0UGl0Y2hZX29yaWcpICh0aGlzTGF5ZXJbMF0gPSByaXZldExheWVyKSAodGhpc0xheWVyWzFdID0gKHJpdmV0TGF5ZXIyIHx8IHJpdmV0TGF5ZXIpKSkgKHhMb29wT3JpZ2luID0geE9yaWdpbikgZm9yKGNvbCAxIG51bUNvbHMgKGNvbnRhY3ROdW0gPSBtb2QoKHRlbXBDb250YWN0TnVtICsgMSkgMikpICh0ZW1wQ29udGFjdE51bSA9IGNvbnRhY3ROdW0pICh5TG9vcE9yaWdpbiA9IHlPcmlnaW4pIHdoZW4oKGxlc3NDb25OZWFyYmV2ZWwgPT0gIlRSVUUiKSAoeUxvb3BPcmlnaW4gPSAoeU9yaWdpbiArICgtIHJpdmV0UGl0Y2hZKSkpKSB3aGlsZSgoeUxvb3BPcmlnaW4gPiB5U3RvcCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRoaXNMYXllcltjb250YWN0TnVtXSBsaXN0KCh4TG9vcE9yaWdpbjp5TG9vcE9yaWdpbikgKCh4TG9vcE9yaWdpbiArIHJpdmV0V2lkdGgpOih5TG9vcE9yaWdpbiArIHJpdmV0V2lkdGgpKSkpIChjb250YWN0TnVtID0gbW9kKChjb250YWN0TnVtICsgMSkgMikpICh5TG9vcE9yaWdpbiA9ICh5TG9vcE9yaWdpbiAtIHJpdmV0UGl0Y2hZKSkpICh4TG9vcE9yaWdpbiA9ICh4TG9vcE9yaWdpbiArIHJpdmV0UGl0Y2hYKSkpIHdoZW4oKGxlc3NDb25OZWFyYmV2ZWwgPT0gIlRSVUUiKSAoeUxvb3BPcmlnaW4gPSAoeUxvb3BPcmlnaW4gKyAoLSByaXZldFBpdGNoWSkpKSkgd2hlbigodXBkYXRlZENsYXNzID09ICJUUlVFIikgKHJpdmV0UGl0Y2hYID0gcml2ZXRQaXRjaE1heCkgKHJpdmV0UGl0Y2hZID0gcml2ZXRQaXRjaE1heCkgKHRoaXNMYXllclswXSA9IHJpdmV0TGF5ZXIpICh0aGlzTGF5ZXJbMV0gPSByaXZldExheWVyMikgKHJpdmV0UGl0Y2hPZmZzZXRIYWxmID0gMC4wKSAocml2ZXRQaXRjaE9mZnNldCA9IDAuMCkpIChudW1Db2xzTEwgPSAobnVtQ29scyArICgtIG51bUNvbHNMZXNzKSkpIChudW1Db2xzSW5CZXZlbExMID0gKG51bUNvbHNJbkJldmVsICsgKC0gbnVtQ29sc0xlc3MpKSkgY29uZCgoKGxsQmV2ZWwgJiYgKGxsQmV2ZWxMZW5ndGggPiBtaW5CZXZlbEN1dEZvclJpdmV0KSkgKHNsYWNrRnJvbUxhc3RSdW4gPSAoeUxvb3BPcmlnaW4gKyByaXZldFBpdGNoWCArICgtIHlPZmZzZXQpICsgKC0gbGxCZXZlbExlbmd0aCkpKSBjb25kKCgobGxCZXZlbExlbmd0aCA8ICh1c2VkUmluZ1dpZHRoICsgcml2ZXRTcGFjZVgpKSAoZGVsdGEgPSBtaW4oKCgtIGxsQmV2ZWxMZW5ndGgpICsgdXNlZFJpbmdXaWR0aCArIHJpdmV0U3BhY2VYKSByaXZldFBpdGNoWCkpICh0aGVTdGFydFJvdyA9ICgxIC0gZml4KCgxZS0wNSArICgodXNlZFJpbmdXaWR0aCArIHJpdmV0U3BhY2VYICsgKC0gbGxCZXZlbExlbmd0aCkpIC8gcml2ZXRQaXRjaFgpKSkpKSkgKHQgKGRlbHRhID0gMC4wKSAodGhlU3RhcnRSb3cgPSAxKSkpICh0b3RhbFNsYWNrID0gKChsbEJldmVsTGVuZ3RoICsgZGVsdGEpIC0gKHJpdmV0UGl0Y2hYICogZml4KCgxZS0wNSArICgobGxCZXZlbExlbmd0aCArIGRlbHRhKSAvIHJpdmV0UGl0Y2hYKSkpKSkpIGNvbmQoKCgodG90YWxTbGFjayArIHNsYWNrRnJvbUxhc3RSdW4gKyAxZS0wNSkgPiByaXZldFBpdGNoWCkgKHRvdGFsU2xhY2sgPSAoKC0gcml2ZXRQaXRjaFgpICsgdG90YWxTbGFjayArIHNsYWNrRnJvbUxhc3RSdW4pKSkgKHQgKHRvdGFsU2xhY2sgPSAodG90YWxTbGFjayArIHNsYWNrRnJvbUxhc3RSdW4pKSkpIChoYWxmVG90YWxTbGFjayA9ICgwLjUgKiB0b3RhbFNsYWNrKSkgKGZpeGVkSGFsZlNsYWNrID0gZml4KCgwLjk5OSArIChoYWxmVG90YWxTbGFjayAvIGdyaWQpKSkpIChleHRyYU9mZnNldCA9IChmaXhlZEhhbGZTbGFjayAqIGdyaWQpKSAoeE9yaWdpbiA9ICh4T2Zmc2V0ICsgcml2ZXRQaXRjaFggKyAoLSBzbGFja0Zyb21MYXN0UnVuKSArIGV4dHJhT2Zmc2V0KSkgKHlPcmlnaW4gPSAoeUxvb3BPcmlnaW4gKyAoLSBleHRyYU9mZnNldCkpKSBjb25kKCgoMC4wID4gKHNsYWNrRnJvbUxhc3RSdW4gKyAoLSBleHRyYU9mZnNldCkpKSAoZHJhd0V4dHJhSW5zaWRlQ29sdW1uID0gdCkpICh0IChkcmF3RXh0cmFJbnNpZGVDb2x1bW4gPSBuaWwpKSkgKHhTdG9wID0gbWF4KCh4T2Zmc2V0ICsgbGxCZXZlbExlbmd0aCArIDFlLTA1ICsgKC0gcml2ZXRQaXRjaFgpKSAoeE9mZnNldCArIHVzZWRSaW5nV2lkdGggKyAxZS0wNSArICgtIHJpdmV0V2lkdGgpKSkpIChjb2wgPSAxKSB3aGlsZSgoeE9yaWdpbiA8PSB4U3RvcCkgKHN0b3BSb3cgPSBtaW4oY29sIG51bUNvbHNJbkJldmVsTEwpKSBjb25kKCgoKG51bUNvbHNJbkJldmVsTEwgPiBudW1Db2xzTEwpICYmIChjb2wgPj0gbnVtQ29sc0xMKSkgY29uZCgoZHJhd0V4dHJhSW5zaWRlQ29sdW1uIChzdGFydFJvdyA9ICgoc3RvcFJvdyAtIG51bUNvbHNJbkJldmVsTEwpICsgMSkpKSAodCAoZHJhd0V4dHJhSW5zaWRlQ29sdW1uID0gdCkpKSkgKHQgKHN0YXJ0Um93ID0gdGhlU3RhcnRSb3cpKSkgZm9yKHJvdyBzdGFydFJvdyBzdG9wUm93ICh5TG9vcE9yaWdpbiA9ICh5T3JpZ2luICsgKChyb3cgLSAxKSAqICgtIHJpdmV0UGl0Y2hZKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGhpc0xheWVyW2NvbnRhY3ROdW1dIGxpc3QoKHhPcmlnaW46eUxvb3BPcmlnaW4pICgoeE9yaWdpbiArIHJpdmV0V2lkdGgpOih5TG9vcE9yaWdpbiArIHJpdmV0V2lkdGgpKSkpIChjb250YWN0TnVtID0gbW9kKChjb250YWN0TnVtICsgMSkgMikpIHdoZW4oKCh1cGRhdGVkQ2xhc3MgPT0gIlRSVUUiKSAmJiAoYWx0Q29yQ29uID09ICJUUlVFIikpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0aGlzTGF5ZXJbY29udGFjdE51bV0gbGlzdCgoeE9yaWdpbjp5TG9vcE9yaWdpbikgKCh4T3JpZ2luICsgcml2ZXRXaWR0aCk6KHlMb29wT3JpZ2luICsgcml2ZXRXaWR0aCkpKSkgKGNvbnRhY3ROdW0gPSBtb2QoKGNvbnRhY3ROdW0gKyAxKSAyKSkpKSAoY29sID0gKGNvbCArIDEpKSAoeU9yaWdpbiA9ICh5T3JpZ2luIC0gcml2ZXRQaXRjaE9mZnNldCkpIHdoZW4oKGNvbCA+IG51bUNvbHNJbkJldmVsTEwpICh5T3JpZ2luID0gKHlPcmlnaW4gLSByaXZldFBpdGNoWSkpKSAoeE9yaWdpbiA9ICh4T3JpZ2luICsgcml2ZXRQaXRjaFgpKSkgd2hlbigoY29sIDw9IG51bUNvbHNJbkJldmVsTEwpICh5T3JpZ2luID0gKHlPcmlnaW4gKyAoKC0gc3RhcnRSb3cpICogcml2ZXRQaXRjaFkpKSkpIHdoZW4oKChudW1Db2xzSW5CZXZlbExMID4gbnVtQ29sc0xMKSAmJiAobGxCZXZlbExlbmd0aCA+IHJpbmdXaWR0aCkpICh5U3RvcCA9ICh5T2Zmc2V0ICsgdXNlZFJpbmdXaWR0aCArIHJpdmV0U3BhY2VZKSkgKHlMb29wT3JpZ2luID0geU9yaWdpbikgd2hpbGUoKHhPcmlnaW4gPD0gKHhPZmZzZXQgKyBsbEJldmVsTGVuZ3RoICsgYmV2ZWxJbnNpZGVPZmZzZXQpKSB3aGlsZSgoeUxvb3BPcmlnaW4gPiB5U3RvcCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRoaXNMYXllcltjb250YWN0TnVtXSBsaXN0KCh4T3JpZ2luOnlMb29wT3JpZ2luKSAoKHhPcmlnaW4gKyByaXZldFdpZHRoKTooeUxvb3BPcmlnaW4gKyByaXZldFdpZHRoKSkpKSAoY29udGFjdE51bSA9IG1vZCgoY29udGFjdE51bSArIDEpIDIpKSAoeUxvb3BPcmlnaW4gPSAoeUxvb3BPcmlnaW4gLSByaXZldFBpdGNoWSkpKSAoeU9yaWdpbiA9ICh5T3JpZ2luIC0gcml2ZXRQaXRjaFkpKSAoeUxvb3BPcmlnaW4gPSB5T3JpZ2luKSAoeE9yaWdpbiA9ICh4T3JpZ2luICsgcml2ZXRQaXRjaFgpKSkpKSkpACh3IGwgeE9mZnNldCB5T2Zmc2V0IHJpdmV0TGF5ZXIgcml2ZXRMYXllcjIgcmluZ1dpZHRoIHJpdmV0V2lkdGggcml2ZXRTcGFjZSByaXZldFNwYWNlWCBsbEJldmVsTGVuZ3RoIHVsQmV2ZWxMZW5ndGggbHJCZXZlbExlbmd0aCB1ckJldmVsTGVuZ3RoIGF1dG9JbmNyZWFzZUJldmVsV2lkdGggZ3JpZCBsZXNzQ29uTmVhcmJldmVsIG51bUNvbHNMZXNzIHVwZGF0ZWRDbGFzcyBhbHRDb3JDb24gczIgdGhpc0xheWVyIGNvbnRhY3ROdW0gcml2ZXRTcGFjZVkgcml2ZXRQaXRjaFkgcml2ZXRQaXRjaFggcml2ZXRQaXRjaFhfb3JpZyByaXZldFBpdGNoWV9vcmlnIHJpdmV0UGl0Y2hNYXggcml2ZXRQaXRjaE1pbiByaXZldFBpdGNoT2Zmc2V0IHJpdmV0UGl0Y2hPZmZzZXRIYWxmIG51bUNvbHMgdXNlZFJpbmdXaWR0aCBhZGRpdGlvbmFsQmV2ZWxXaWR0aCBudW1Db2xzSW5CZXZlbCBtaW5CZXZlbEN1dEZvclJpdmV0IGJldmVsSW5zaWRlT2Zmc2V0IGZpeGVkQmV2IGNhbm5vdEJldmVsTGVuZ3RoIGxsQmV2ZWwgbHJCZXZlbCB1ckJldmVsIHVsQmV2ZWwgeE9yaWdpbiB5T3JpZ2luIHhTdG9wIHRlbXBDb250YWN0TnVtIHlMb29wT3JpZ2luIGNvbCB4TG9vcE9yaWdpbiBudW1Db2xzTFIgbnVtQ29sc0luQmV2ZWxMUiBzbGFja0Zyb21MYXN0UnVuIGRlbHRhIHRoZVN0YXJ0Um93IHRvdGFsU2xhY2sgaGFsZlRvdGFsU2xhY2sgZml4ZWRIYWxmU2xhY2sgZXh0cmFPZmZzZXQgc3RvcFJvdyBzdGFydFJvdyByb3cgeVN0b3AgbnVtQ29sc1VSIG51bUNvbHNJbkJldmVsVVIgZHJhd0V4dHJhSW5zaWRlQ29sdW1uIG51bUNvbHNVTCBudW1Db2xzSW5CZXZlbFVMIG51bUNvbHNMTCBudW1Db2xzSW5CZXZlbExMKQAoKHcgNTAuMCkgKGwgNTAuMCkgKHhPZmZzZXQgMC4wKSAoeU9mZnNldCAwLjApIChyaXZldExheWVyIGxpc3QoImhpbGl0ZSIgImRyYXdpbmciKSkgKHJpdmV0TGF5ZXIyIG5pbCkgKHJpbmdXaWR0aCA2LjApIChyaXZldFdpZHRoIDAuNikgKHJpdmV0U3BhY2UgMC44KSAocml2ZXRTcGFjZVggMC4wKSAobGxCZXZlbExlbmd0aCAxMC4wKSAodWxCZXZlbExlbmd0aCAxMC4wKSAobHJCZXZlbExlbmd0aCAxMC4wKSAodXJCZXZlbExlbmd0aCAxMC4wKSAoYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCAiRkFMU0UiKSAoZ3JpZCAoVEVDSGdldFByb3Agc25hcEdyaWQpKSAobGVzc0Nvbk5lYXJiZXZlbCAiRkFMU0UiKSAobnVtQ29sc0xlc3MgMCkgKHVwZGF0ZWRDbGFzcyAiRkFMU0UiKSAoYWx0Q29yQ29uICJGQUxTRSIpKQAoaWYoKCh1c2VFT0xlbmMgPT0gdCkgfHwgKHVzZUVPTGVuYyA9PSAiVFJVRSIpKSB0aGVuICh1c2VFT0xlbmMgPSB0KSBlbHNlICh1c2VFT0xlbmMgPSBuaWwpKSAocm9vdDIgPSBzcXJ0KDIpKSAodGFuQ2FsID0gMC40MTQyMTM2KSAoY2VpbEZpeCA9IDAuMDAxKSAoZ3JpZE11bHQgPSByb3VuZCgoMS4wIC8gZ3JpZCkpKSAobWluUml2ZXRXaWR0aCA9IChncmlkICogKGNlaWxpbmcgKChtaW5SaXZldFdpZHRoICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKG1pblNsb3RXaWR0aCA9ICgoZ3JpZCAqIChjZWlsaW5nICgobWluU2xvdFdpZHRoICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSArIGdyaWQpKSAobWluU2xvdExlbmd0aCA9IChncmlkICogKGNlaWxpbmcgKChtaW5TbG90TGVuZ3RoICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKG1heFNsb3RTcGFjaW5nSCA9IChncmlkICogKGNlaWxpbmcgKChtYXhTbG90U3BhY2luZ0ggKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAobWF4U3BhY2luZ3RvRWRnZSA9IChncmlkICogKGNlaWxpbmcgKChtYXhTcGFjaW5ndG9FZGdlICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKG1heFNsb3RTcGFjaW5nViA9IChncmlkICogKGNlaWxpbmcgKChtYXhTbG90U3BhY2luZ1YgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAobWluT3ZlcmxhcCA9IChncmlkICogKGNlaWxpbmcgKChtaW5PdmVybGFwICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKHlTbG90T2Zmc2V0ID0gKHlTbG90T2Zmc2V0ICogZ3JpZCkpICh2aWFWYWx1ZXMgPSBjYXIocml2ZXRDb250YWN0cykpICh2aWFXaWR0aCA9IGNhZHIodmlhVmFsdWVzKSkgKHZpYVNwYWNpbmcgPSBjYWRkcih2aWFWYWx1ZXMpKSAobWV0MUVuY1ZpYSA9IGNhZGRkcih2aWFWYWx1ZXMpKSAobWV0MUVPTGVuYyA9IGlmKHVzZUVPTGVuYyBudGgoNCB2aWFWYWx1ZXMpIG5pbCkpIChudW1MYXllcnMgPSBsZW5ndGgocml2ZXRMYXllcnMpKSAobnVtQ29udGFjdHMgPSBsZW5ndGgocml2ZXRDb250YWN0cykpIChtaW5XaWR0aCA9ICgoMiAqIG1ldDFFbmNWaWEpICsgKDIgKiB2aWFXaWR0aCkgKyB2aWFTcGFjaW5nKSkgaWYobWV0MUVPTGVuYyAobWluTGVuZ3RoID0gKCgyICogbWV0MUVPTGVuYykgKyB2aWFXaWR0aCkpIChtaW5MZW5ndGggPSAoKDIgKiBtZXQxRW5jVmlhKSArIHZpYVdpZHRoKSkpICh2aWFQaXRjaCA9ICh2aWFXaWR0aCArIHZpYVNwYWNpbmcpKSAoc2xhY2sxID0gKDIgKiBncmlkKSkgKG1ldEV4dCA9IChncmlkICogKGNlaWxpbmcgKCgobWV0RXh0ICsgc2xhY2sxKSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChzbG90RXh0MSA9IChncmlkICogKGNlaWxpbmcgKCgoc2xvdEV4dCArIHNsYWNrMSkgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAobWV0RXh0MVNpZGUgPSAoKG51bUxheWVycyAtIDEpICogbWV0RXh0KSkgKHJpdmV0V2lkdGggPSAocml2ZXRXaWR0aCAtIChtZXRFeHQxU2lkZSAqIDIpKSkgd2hlbigocml2ZXRXaWR0aCA8IG1pbldpZHRoKSAocml2ZXRXaWR0aCA9IG1pbldpZHRoKSkgKHJpdmV0V2lkdGggPSAoZ3JpZCAqIChjZWlsaW5nICgocml2ZXRXaWR0aCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpICh0b3RhbFdpZHRoID0gKHJpdmV0V2lkdGggKyAoMiAqIG1ldEV4dDFTaWRlKSkpIHdoZW4oKHJpdmV0TGVuZ3RoWCA8IG1pbkxlbmd0aCkgKHJpdmV0TGVuZ3RoWCA9IG1pbkxlbmd0aCkpIHdoZW4oKHJpdmV0TGVuZ3RoWSA8IG1pbkxlbmd0aCkgKHJpdmV0TGVuZ3RoWSA9IG1pbkxlbmd0aCkpIChtaW5MZW5ndGhaID0gKHRvdGFsV2lkdGggKiByb290MikpIHdoZW4oKHJpdmV0TGVuZ3RoWiA8IG1pbkxlbmd0aFopIChyaXZldExlbmd0aFogPSBtaW5MZW5ndGhaKSkgKHJpdmV0TGVuZ3RoWCA9IChncmlkICogKGNlaWxpbmcgKChyaXZldExlbmd0aFggKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAocml2ZXRMZW5ndGhZID0gKGdyaWQgKiAoY2VpbGluZyAoKHJpdmV0TGVuZ3RoWSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChyaXZldExlbmd0aFogPSAoZ3JpZCAqIChjZWlsaW5nICgocml2ZXRMZW5ndGhaICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKGRiSWQwID0gJ25pbCkgKGRiSWQxID0gJ25pbCkgdW5sZXNzKG11bHRpTGF5ZXIgKHJpdmV0TGF5ZXJzID0gbGlzdChsYXllck5hbWUpKSAocml2ZXRDb250YWN0cyA9ICduaWwpKSAocmV2ZXJzZUxheWVycyA9IHJldmVyc2Uocml2ZXRMYXllcnMpKSBpZihub0JlbnQgdGhlbiAoaSA9IDEpICh4MCA9IDAuMCkgKHkwID0gMC4wKSBmb3JlYWNoKHRoaXNMYXllciByaXZldExheWVycyAoeGwgPSB4MCkgKHlsID0gKHkwICsgKChudW1MYXllcnMgLSBpKSAqIG1ldEV4dCkpKSAoeHUgPSAoeDAgKyByaXZldExlbmd0aFgpKSAoeXUgPSAoKHkwICsgdG90YWxXaWR0aCkgLSAoKG51bUxheWVycyAtIGkpICogbWV0RXh0KSkpIChkYklkMCA9IGNvbnMoKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxpc3QodGhpc0xheWVyICJkcmF3aW5nIikgbGlzdCgoeGw6eWwpICh4dTp5dSkpKSBkYklkMCkpIChpID0gKGkgKyAxKSkpICh4MCA9IDAuMCkgKHkwID0gMC4wKSAoaSA9IDApIGZvcmVhY2goY29udGFjdCByaXZldENvbnRhY3RzIChjb250YWN0V2lkdGggPSBjYWRyKGNvbnRhY3QpKSAoY29udGFjdFNwYWNpbmcgPSBjYWRkcihjb250YWN0KSkgKG1ldEVuY0NvbiA9IGNhZGRkcihjb250YWN0KSkgKG1ldEVPTGVuYyA9IGlmKHVzZUVPTGVuYyBudGgoNCBjb250YWN0KSBuaWwpKSAoY29udGFjdFBpdGNoID0gKGNvbnRhY3RXaWR0aCArIGNvbnRhY3RTcGFjaW5nKSkgKG51bUNvbnRhY3RzID0gKGZsb29yICgocml2ZXRMZW5ndGhYIC8gY29udGFjdFBpdGNoKSAtIGlmKG1ldEVPTGVuYyBtZXRFT0xlbmMgMC41KSkpKSAoeDAgPSBpZihtZXRFT0xlbmMgbWV0RU9MZW5jIG1ldEVuY0NvbikpICh5MCA9IDApIGZvcihqIDEgMiBmb3IoayAxIG51bUNvbnRhY3RzICh4bCA9ICh4MCArICgoayAtIDEpICogY29udGFjdFBpdGNoKSkpICh5bCA9ICh5MCArICgobnVtTGF5ZXJzIC0gaSAtIDEpICogbWV0RXh0ICogKDIgLSBqKSkgKyBtZXRFbmNDb24pKSAoeHUgPSAoeGwgKyBjb250YWN0V2lkdGgpKSAoeXUgPSAoeWwgKyBjb250YWN0V2lkdGgpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdChjYXIoY29udGFjdCkgImRyYXdpbmciKSBsaXN0KCh4bDp5bCkgKHh1Onl1KSkpKSAoeTAgPSAoKHkwICsgdG90YWxXaWR0aCkgLSAoKG51bUxheWVycyAtIGkgLSAxKSAqIG1ldEV4dCkgLSAoKDIgKiBtZXRFbmNDb24pICsgY29udGFjdFdpZHRoKSkpKSAoaSA9IChpICsgMSkpKSBlbHNlIChiZXZlbE9mZnNldCA9IChncmlkICogKGNlaWxpbmcgKCh0YW5DYWwgKiB0b3RhbFdpZHRoICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgaWYoKHJpdmV0TGVuZ3RoWCA8IGJldmVsT2Zmc2V0KSBlcnJvcigicml2ZXRDbGFzczogcml2ZXRMZW5ndGhYIG11c3QgYmUgPj0gJUwiIGJldmVsT2Zmc2V0KSkgaWYoKChyaXZldExlbmd0aFkgPCBiZXZlbE9mZnNldCkgJiYgIW5vQmVudCkgZXJyb3IoInJpdmV0Q2xhc3M6IHJpdmV0TGVuZ3RoWSBtdXN0IGJlID49ICVMIiBiZXZlbE9mZnNldCkpIChsT2Zmc2V0ID0gKGdyaWQgKiAoY2VpbGluZyAoKCgocml2ZXRMZW5ndGhaIC0gKDIgKiBiZXZlbE9mZnNldCkpIC8gcm9vdDIpICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKHVPZmZzZXQgPSAoZ3JpZCAqIChjZWlsaW5nICgoKHJpdmV0TGVuZ3RoWiAvIHJvb3QyKSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChhcnJheVNpemUgPSA5KSBkZWNsYXJlKHRoZUJlbnRQb2ludHNbYXJyYXlTaXplXSkgZGVjbGFyZSh3b3JraW5nQXJyYXlbYXJyYXlTaXplXSkgZGVjbGFyZShXQVthcnJheVNpemVdKSAoeCA9IDApICh5ID0gMCkgZm9yKGkgMCAoYXJyYXlTaXplIC0gMSkgY29uZCgoKGkgPT0gMCkgKHggPSAwKSAoeSA9IDApKSAoKGkgPT0gMSkgKHggPSAoeCArIChyaXZldExlbmd0aFggLSBiZXZlbE9mZnNldCkpKSkgKChpID09IDIpICh4ID0gKHggKyBsT2Zmc2V0KSkgKHkgPSAoeSAtIGxPZmZzZXQpKSkgKChpID09IDMpICh5ID0gKHkgLSAocml2ZXRMZW5ndGhZIC0gYmV2ZWxPZmZzZXQpKSkpICgoaSA9PSA0KSAoeCA9ICh4ICsgdG90YWxXaWR0aCkpKSAoKGkgPT0gNSkgKHkgPSAoY2Fkcih0aGVCZW50UG9pbnRzWzJdKSArIGJldmVsT2Zmc2V0KSkpICgoaSA9PSA2KSAoeCA9IChjYXIodGhlQmVudFBvaW50c1sxXSkgKyBiZXZlbE9mZnNldCkpICh5ID0gdG90YWxXaWR0aCkpICgoaSA9PSA3KSAoeCA9IDApKSAoKGkgPT0gOCkgKHggPSAwKSAoeSA9IDApKSkgKHRoZUJlbnRQb2ludHNbaV0gPSAoeDp5KSkpICh3b3JraW5nTGlzdCA9ICduaWwpIGZvcihqIDAgKGFycmF5U2l6ZSAtIDEpICh3b3JraW5nTGlzdCA9IGNvbnModGhlQmVudFBvaW50c1tqXSB3b3JraW5nTGlzdCkpKSAoZGJJZDEgPSBjb25zKChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsaXN0KGNhcihyZXZlcnNlTGF5ZXJzKSAiZHJhd2luZyIpIHdvcmtpbmdMaXN0KSBkYklkMSkpIChpID0gMSkgZm9yZWFjaCh0aGlzTGF5ZXIgY2RyKHJldmVyc2VMYXllcnMpICh3b3JraW5nQXJyYXlbMF0gPSBsaXN0KGNhcih0aGVCZW50UG9pbnRzWzBdKSAoY2Fkcih0aGVCZW50UG9pbnRzWzBdKSArIChpICogbWV0RXh0KSkpKSAoeCA9ICgoZ3JpZCAqIHJvdW5kKCgoKGNhcih0aGVCZW50UG9pbnRzWzFdKSArIChpICogdGFuQ2FsICogbWV0RXh0KSkgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpICsgKGkgKiBncmlkKSkpICh3b3JraW5nQXJyYXlbMV0gPSBsaXN0KHggKGNhZHIodGhlQmVudFBvaW50c1sxXSkgKyAoaSAqIG1ldEV4dCkpKSkgKHkgPSAoKGdyaWQgKiByb3VuZCgoKChjYWRyKHRoZUJlbnRQb2ludHNbMl0pICsgKGkgKiB0YW5DYWwgKiBtZXRFeHQpKSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkgKyAoaSAqIGdyaWQpKSkgKHdvcmtpbmdBcnJheVsyXSA9IGxpc3QoKGNhcih0aGVCZW50UG9pbnRzWzJdKSArIChpICogbWV0RXh0KSkgeSkpICh3b3JraW5nQXJyYXlbM10gPSBsaXN0KChjYXIodGhlQmVudFBvaW50c1szXSkgKyAoaSAqIG1ldEV4dCkpIGNhZHIodGhlQmVudFBvaW50c1szXSkpKSAod29ya2luZ0FycmF5WzRdID0gbGlzdCgoY2FyKHRoZUJlbnRQb2ludHNbNF0pIC0gKGkgKiBtZXRFeHQpKSBjYWRyKHRoZUJlbnRQb2ludHNbNF0pKSkgKHkgPSAoKGdyaWQgKiByb3VuZCgoKChjYWRyKHRoZUJlbnRQb2ludHNbNV0pIC0gKGkgKiB0YW5DYWwgKiBtZXRFeHQpKSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkgLSAoaSAqIGdyaWQpKSkgKHdvcmtpbmdBcnJheVs1XSA9IGxpc3QoKGNhcih0aGVCZW50UG9pbnRzWzVdKSAtIChpICogbWV0RXh0KSkgeSkpICh4ID0gKChncmlkICogcm91bmQoKCgoY2FyKHRoZUJlbnRQb2ludHNbNl0pIC0gKGkgKiB0YW5DYWwgKiBtZXRFeHQpKSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkgLSAoaSAqIGdyaWQpKSkgKHdvcmtpbmdBcnJheVs2XSA9IGxpc3QoeCAoY2Fkcih0aGVCZW50UG9pbnRzWzZdKSAtIChpICogbWV0RXh0KSkpKSAod29ya2luZ0FycmF5WzddID0gbGlzdChjYXIodGhlQmVudFBvaW50c1s3XSkgKGNhZHIodGhlQmVudFBvaW50c1s3XSkgLSAoaSAqIG1ldEV4dCkpKSkgKHdvcmtpbmdBcnJheVs4XSA9IGxpc3QoY2FyKHRoZUJlbnRQb2ludHNbOF0pIChjYWRyKHRoZUJlbnRQb2ludHNbOF0pICsgKGkgKiBtZXRFeHQpKSkpICh3b3JraW5nTGlzdCA9ICduaWwpIGZvcihqIDAgKGFycmF5U2l6ZSAtIDEpICh3b3JraW5nTGlzdCA9IGNvbnMod29ya2luZ0FycmF5W2pdIHdvcmtpbmdMaXN0KSkpIChkYklkMSA9IGNvbnMoKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxpc3QodGhpc0xheWVyICJkcmF3aW5nIikgd29ya2luZ0xpc3QpIGRiSWQxKSkgaSsrKSAoaSA9IDEpIChyZXZlcnNlQ29udGFjdHMgPSByZXZlcnNlKHJpdmV0Q29udGFjdHMpKSBmb3JlYWNoKHRoaXNDb250YWN0IHJldmVyc2VDb250YWN0cyAodGhpc0xheWVyID0gY2FyKHRoaXNDb250YWN0KSkgKGNvbnRhY3RXaWR0aCA9IGNhZHIodGhpc0NvbnRhY3QpKSAoY29udGFjdFNwYWNpbmcgPSAoY2FkZHIodGhpc0NvbnRhY3QpICsgZ3JpZCkpIChtZXRFbmNDb24gPSBjYWRkZHIodGhpc0NvbnRhY3QpKSAobWV0RU9MZW5jID0gaWYodXNlRU9MZW5jIG50aCg0IHRoaXNDb250YWN0KSBuaWwpKSBmb3IoaiAxIDYgY29uZCgoKGogPT0gMSkgKHhzdGFydCA9IChjYXIodGhlQmVudFBvaW50c1swXSkgKyBpZihtZXRFT0xlbmMgbWV0RU9MZW5jIG1ldEVuY0NvbikpKSAoeGVuZCA9IChjYXIodGhlQmVudFBvaW50c1sxXSkgLSBtZXRFbmNDb24pKSAoeXN0YXJ0ID0gKGNhZHIodGhlQmVudFBvaW50c1swXSkgKyAoaSAqIG1ldEV4dCkgKyBtZXRFbmNDb24pKSAoeWVuZCA9IHlzdGFydCkgKHhzdGVwID0gKGNvbnRhY3RXaWR0aCArIGNvbnRhY3RTcGFjaW5nKSkgKHlzdGVwID0gMCkpICgoaiA9PSAyKSAoeHN0YXJ0ID0gKGNhcih0aGVCZW50UG9pbnRzWzFdKSArIChpICogdGFuQ2FsICogbWV0RXh0KSArIChpICogbWV0RXh0KSArIChtZXRFbmNDb24gLyByb290MikgKyAoMiAqIGdyaWQpKSkgKHhlbmQgPSAoY2FyKHRoZUJlbnRQb2ludHNbMl0pICsgKGkgKiBtZXRFeHQpICsgKG1ldEVuY0NvbiAvIHJvb3QyKSArICgyICogZ3JpZCkpKSAoeXN0YXJ0ID0gKGNhZHIodGhlQmVudFBvaW50c1sxXSkgKyAobWV0RW5jQ29uIC8gcm9vdDIpKSkgKHllbmQgPSAoY2Fkcih0aGVCZW50UG9pbnRzWzJdKSArIChpICogdGFuQ2FsICogbWV0RXh0KSArIChtZXRFbmNDb24gLyByb290MikpKSAoeHN0ZXAgPSAoKChjb250YWN0V2lkdGggKiByb290MikgKyBjb250YWN0U3BhY2luZyArIGdyaWQpIC8gcm9vdDIpKSAoeXN0ZXAgPSAoLSB4c3RlcCkpKSAoKGogPT0gMykgKHhzdGFydCA9IChjYXIodGhlQmVudFBvaW50c1syXSkgKyAoaSAqIG1ldEV4dCkgKyBtZXRFbmNDb24pKSAoeGVuZCA9IHhzdGFydCkgKHlzdGFydCA9IChjYWRyKHRoZUJlbnRQb2ludHNbMl0pIC0gKGNvbnRhY3RTcGFjaW5nICsgY29udGFjdFdpZHRoKSkpICh5ZW5kID0gKGNhZHIodGhlQmVudFBvaW50c1szXSkgKyAoY29udGFjdFNwYWNpbmcgKyBjb250YWN0V2lkdGgpKSkgKHhzdGVwID0gMCkgKHlzdGVwID0gKC0gKGNvbnRhY3RXaWR0aCArIGNvbnRhY3RTcGFjaW5nKSkpKSAoKGogPT0gNCkgKHhzdGFydCA9IChjYXIodGhlQmVudFBvaW50c1s0XSkgLSAoY29udGFjdFdpZHRoICsgKGkgKiBtZXRFeHQpICsgbWV0RW5jQ29uKSkpICh4ZW5kID0geHN0YXJ0KSAoeXN0YXJ0ID0gKGNhZHIodGhlQmVudFBvaW50c1s0XSkgKyBpZihtZXRFT0xlbmMgbWV0RU9MZW5jIG1ldEVuY0NvbikpKSAoeWVuZCA9IChjYWRyKHRoZUJlbnRQb2ludHNbNV0pIC0gKChpICogdGFuQ2FsICogbWV0RXh0KSArIGNvbnRhY3RTcGFjaW5nICsgY29udGFjdFdpZHRoKSkpICh4c3RlcCA9IDApICh5c3RlcCA9IChjb250YWN0V2lkdGggKyBjb250YWN0U3BhY2luZykpKSAoKGogPT0gNSkgKHhzdGFydCA9IChjYXIodGhlQmVudFBvaW50c1s1XSkgLSAoKGkgKiBtZXRFeHQgKiAoMSArIHRhbkNhbCkpICsgKDIgKiAoKG1ldEVuY0NvbiAvIHJvb3QyKSArIGNvbnRhY3RXaWR0aCkpICsgKDQgKiBncmlkKSkpKSAoeGVuZCA9IChjYXIodGhlQmVudFBvaW50c1s2XSkgLSAoNCAqIGdyaWQpKSkgKHlzdGFydCA9IGNhZHIodGhlQmVudFBvaW50c1s1XSkpICh5ZW5kID0gKGNhZHIodGhlQmVudFBvaW50c1s2XSkgLSAoKChpICogbWV0RXh0KSArIG1ldEVuY0NvbiArIChjb250YWN0V2lkdGggKiByb290MikpICogcm9vdDIpKSkgKHhzdGVwID0gKCgtICgoY29udGFjdFdpZHRoICogcm9vdDIpICsgY29udGFjdFNwYWNpbmcgKyBncmlkKSkgLyByb290MikpICh5c3RlcCA9ICgtIHhzdGVwKSkpICgoaiA9PSA2KSAoeHN0YXJ0ID0gKGNhcih0aGVCZW50UG9pbnRzWzZdKSAtIChjb250YWN0U3BhY2luZyArIGNvbnRhY3RXaWR0aCArIChpICogdGFuQ2FsICogbWV0RXh0KSkpKSAoeGVuZCA9IChjYXIodGhlQmVudFBvaW50c1s3XSkgKyBpZihtZXRFT0xlbmMgbWV0RU9MZW5jIG1ldEVuY0NvbikpKSAoeXN0YXJ0ID0gKGNhZHIodGhlQmVudFBvaW50c1s2XSkgLSAoY29udGFjdFdpZHRoICsgKGkgKiBtZXRFeHQpICsgbWV0RW5jQ29uKSkpICh5ZW5kID0geXN0YXJ0KSAoeHN0ZXAgPSAoLSAoY29udGFjdFdpZHRoICsgY29udGFjdFNwYWNpbmcpKSkgKHlzdGVwID0gMCkpKSAoeCA9IHhzdGFydCkgKHkgPSB5c3RhcnQpIHdoaWxlKCgoKGogPD0gMykgJiYgKHggPD0geGVuZCkgJiYgKHkgPj0geWVuZCkpIHx8ICgoaiA+IDMpICYmICh4ID49IHhlbmQpICYmICh5IDw9IHllbmQpKSkgKHhEcmF3ID0gKGdyaWQgKiAoY2VpbGluZyAoKHggKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoeURyYXcgPSAoZ3JpZCAqIChjZWlsaW5nICgoeSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsaXN0KHRoaXNMYXllciAiZHJhd2luZyIpIGxpc3QoKHhEcmF3OnlEcmF3KSAoKHhEcmF3ICsgY29udGFjdFdpZHRoKTooeURyYXcgKyBjb250YWN0V2lkdGgpKSkpICh4ID0gKHggKyB4c3RlcCkpICh5ID0gKHkgKyB5c3RlcCkpKSkgaSsrKSkgd2hlbigodG90YWxXaWR0aCA+PSBtaW5SaXZldFdpZHRoKSAodG9sZXJhbmNlID0gNSkgKHNsb3RQaXRjaFYgPSAobWluU2xvdFdpZHRoICsgbWF4U2xvdFNwYWNpbmdWKSkgKG51bVJvd3MgPSAoY2VpbGluZyAoKCh0b3RhbFdpZHRoIC0gKDIgKiBtYXhTcGFjaW5ndG9FZGdlKSkgKyBtYXhTbG90U3BhY2luZ1YgKyB0b2xlcmFuY2UpIC8gc2xvdFBpdGNoVikpKSAoc2xvdFNwYWNpbmdWTiA9ICgodG90YWxXaWR0aCAtIChudW1Sb3dzICogbWluU2xvdFdpZHRoKSkgLyAobnVtUm93cyArIDEpKSkgKHNsb3RTcGFjaW5nViA9IChncmlkICogKGZsb29yICgoc2xvdFNwYWNpbmdWTiAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIHdoZW4oIW5ld0FsZyAobWluUmVxTGVuZ3RoWCA9IChtYXhTcGFjaW5ndG9FZGdlICsgKHJpdmV0TGVuZ3RoWCAqIG1pblNsb3RMZW5ndGhQKSkpIChzbG90UGl0Y2hIID0gKG1heFNsb3RMZW5ndGggKyBtYXhTbG90U3BhY2luZ0gpKSAobnVtU2xvdHMgPSAoZmxvb3IgKChyaXZldExlbmd0aFggLyBzbG90UGl0Y2hIKSArIDEpKSkgKHNsb3RMZW5ndGggPSAoZ3JpZCAqIChmbG9vciAoKCgocml2ZXRMZW5ndGhYIC0gKChudW1TbG90cyAtIDEpICogbWF4U2xvdFNwYWNpbmdIKSAtIG1heFNwYWNpbmd0b0VkZ2UpIC8gbnVtU2xvdHMpICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKHNsb3RQaXRjaEggPSAoc2xvdExlbmd0aCArIG1heFNsb3RTcGFjaW5nSCkpIHdoZW4oKHJpdmV0TGVuZ3RoWCA8IG1pbkJ1c0xlbmd0aCkgKG1heFNsb3RMZW5ndGggPSAocml2ZXRMZW5ndGhYICogbWluU2xvdExlbmd0aFApKSkgd2hlbigoKG51bVNsb3RzID4gMSkgJiYgKHNsb3RMZW5ndGggPCBtaW5TbG90TGVuZ3RoKSkgKG51bVNsb3RzID0gKG51bVNsb3RzIC0gMSkpIChzbG90TGVuZ3RoID0gKHNsb3RMZW5ndGggKiAyKSkgKHNsb3RQaXRjaEggPSAoc2xvdExlbmd0aCArIG1heFNsb3RTcGFjaW5nSCkpKSkgaWYobm9CZW50IHRoZW4gaWYobmV3QWxnIHRoZW4gaWYoIXN0YW5kQWxvbmUgKG1heFNwYWNpbmd0b0VkZ2UgPSAwLjApKSBkZWNsYXJlKHN0YWdnZXJMZW5ndGhbMl0pIGRlY2xhcmUoc2xvdFBpdGNoSFsyXSkgZGVjbGFyZShzbG90TGVuZ3RoWzJdKSAobWF4U3BhY2luZ3RvRWRnZUIgPSBtYXhTcGFjaW5ndG9FZGdlKSAobWF4U3BhY2luZ3RvRWRnZUUgPSBtYXhTcGFjaW5ndG9FZGdlKSAoeHN0YWdnZXIgPSBtaW5PdmVybGFwKSBjb25kKCgocml2ZXRMZW5ndGhYIDwgbWluQnVzTGVuZ3RoKSAobnVtU2xvdHMgPSAxKSAoc2xvdExlbmd0aFswXSA9IChyaXZldExlbmd0aFggKiBtaW5TbG90TGVuZ3RoUCkpIChtYXhTcGFjaW5ndG9FZGdlQiA9ICgocml2ZXRMZW5ndGhYIC0gc2xvdExlbmd0aFswXSkgLyAyKSkgaWYoKG1heFNwYWNpbmd0b0VkZ2VCID4gbWF4U3BhY2luZ3RvRWRnZSkgdGhlbiAoc2xvdExlbmd0aFswXSA9IHJpdmV0TGVuZ3RoWCkgKG1heFNwYWNpbmd0b0VkZ2VCID0gbWF4U3BhY2luZ3RvRWRnZSkpIChtYXhTcGFjaW5ndG9FZGdlRSA9IG1heFNwYWNpbmd0b0VkZ2VCKSAoc2xvdFBpdGNoSFswXSA9IHNsb3RMZW5ndGhbMF0pIChzbG90UGl0Y2hIWzFdID0gc2xvdExlbmd0aFswXSkgKHNsb3RMZW5ndGhbMV0gPSBzbG90TGVuZ3RoWzBdKSkgKHJhbVRlY2ggKHNsb3RQaXRjaEhbMF0gPSAobWluU2xvdExlbmd0aCArIG1heFNsb3RTcGFjaW5nSCkpIChlZmZlY3RpdmVMZW5ndGggPSAocml2ZXRMZW5ndGhYIC0gKDIgKiBtYXhTcGFjaW5ndG9FZGdlKSkpIChudW1TbG90cyA9IChjZWlsaW5nICgoZWZmZWN0aXZlTGVuZ3RoICsgbWF4U2xvdFNwYWNpbmdIKSAvIHNsb3RQaXRjaEhbMF0pKSkgKHNsb3RMZW5ndGhbMF0gPSAoZmxvb3IgKChlZmZlY3RpdmVMZW5ndGggLSAoKG51bVNsb3RzIC0gMSkgKiBtYXhTbG90U3BhY2luZ0gpKSAvIG51bVNsb3RzKSkpIChzbG90UGl0Y2hIWzBdID0gKHNsb3RMZW5ndGhbMF0gKyBtYXhTbG90U3BhY2luZ0gpKSBpZigoKG51bVNsb3RzID4gMSkgJiYgKHNsb3RMZW5ndGhbMF0gPCBtaW5TbG90TGVuZ3RoKSkgdGhlbiAobnVtU2xvdHMgPSAobnVtU2xvdHMgLSAxKSkgKHNsb3RMZW5ndGhbMF0gPSAoY2VpbGluZyAoKGVmZmVjdGl2ZUxlbmd0aCAtICgobnVtU2xvdHMgLSAxKSAqIG1heFNsb3RTcGFjaW5nSCkpIC8gbnVtU2xvdHMpKSkgKHNsb3RQaXRjaEhbMF0gPSAoc2xvdExlbmd0aFswXSArIG1heFNsb3RTcGFjaW5nSCkpKSAoc2xvdExlbmd0aFsxXSA9IHNsb3RMZW5ndGhbMF0pIChzbG90UGl0Y2hIWzFdID0gc2xvdExlbmd0aFswXSkgKG1heFNwYWNpbmd0b0VkZ2VFID0gKHJpdmV0TGVuZ3RoWCAtIChudW1TbG90cyAqIHNsb3RMZW5ndGhbMF0pIC0gKChudW1TbG90cyAtIDEpICogbWF4U2xvdFNwYWNpbmdIKSAtIG1heFNwYWNpbmd0b0VkZ2VCKSkgKHNsb3RMZW5FbmQgPSAoc2xvdExlbmd0aFswXSAtIHhzdGFnZ2VyKSkgKG1pblNwYWNlVG9FZGdlID0gKChsZW5ndGgocml2ZXRMYXllcnMpICogc2xvdEV4dDEpICsgc2xvdEV4dDEpKSAoc2xvdExlbkRpZmYgPSAoc2xvdExlbmd0aFswXSAtIHNsb3RMZW5FbmQpKSBpZigoc2xvdExlbkVuZCA8IG1pblNsb3RMZW5ndGgpIHRoZW4gKG1heFNwYWNpbmd0b0VkZ2VCID0gbWF4KG1pblNwYWNlVG9FZGdlIChtYXhTcGFjaW5ndG9FZGdlQiAtIChzbG90TGVuRGlmZiAvIDIpKSkpIChtYXhTcGFjaW5ndG9FZGdlRSA9IG1heChtaW5TcGFjZVRvRWRnZSAobWF4U3BhY2luZ3RvRWRnZUUgLSAoc2xvdExlbkRpZmYgLyAyKSkpKSkpICh0IGZvcihpIDAgMSAoc3RhZ2dlckxlbmd0aFtpXSA9IChyaXZldExlbmd0aFggLSAoMiAqIHhzdGFnZ2VyICogbW9kKGkgMikpKSkgKHNsb3RQaXRjaEhbaV0gPSAobWluU2xvdExlbmd0aCArIG1heFNsb3RTcGFjaW5nSCkpIChlZmZlY3RpdmVMZW5ndGggPSAoc3RhZ2dlckxlbmd0aFtpXSAtICgyICogbWF4U3BhY2luZ3RvRWRnZSkpKSAobnVtU2xvdHMgPSAoY2VpbGluZyAoKGVmZmVjdGl2ZUxlbmd0aCArIG1heFNsb3RTcGFjaW5nSCkgLyBzbG90UGl0Y2hIW2ldKSkpIChzbG90TGVuZ3RoW2ldID0gKGZsb29yICgoZWZmZWN0aXZlTGVuZ3RoIC0gKChudW1TbG90cyAtIDEpICogbWF4U2xvdFNwYWNpbmdIKSkgLyBudW1TbG90cykpKSAoc2xvdFBpdGNoSFtpXSA9IChzbG90TGVuZ3RoW2ldICsgbWF4U2xvdFNwYWNpbmdIKSkgaWYoKChudW1TbG90cyA+IDEpICYmIChzbG90TGVuZ3RoW2ldIDwgbWluU2xvdExlbmd0aCkpIHRoZW4gKG51bVNsb3RzID0gKG51bVNsb3RzIC0gMSkpIChzbG90TGVuZ3RoW2ldID0gKGNlaWxpbmcgKChlZmZlY3RpdmVMZW5ndGggLSAoKG51bVNsb3RzIC0gMSkgKiBtYXhTbG90U3BhY2luZ0gpKSAvIG51bVNsb3RzKSkpIChzbG90UGl0Y2hIW2ldID0gKHNsb3RMZW5ndGhbaV0gKyBtYXhTbG90U3BhY2luZ0gpKSkpKSkgKGkgPSAwKSBmb3JlYWNoKHRoaXNMYXllciByZXZlcnNlTGF5ZXJzIChjdXRMYXllciA9ICduaWwpICh5bCA9ICgoc2xvdFNwYWNpbmdWIC0gKGkgKiBzbG90RXh0MSkpICsgeVNsb3RPZmZzZXQpKSAoeXUgPSAoeWwgKyBtaW5TbG90V2lkdGggKyAoMiAqIGkgKiBzbG90RXh0MSkpKSAoZHkgPSAobWluU2xvdFdpZHRoICsgc2xvdFNwYWNpbmdWKSkgZm9yKGogMCAobnVtUm93cyAtIDEpIGlmKHN0YW5kQWxvbmUgdGhlbiBpZigoIXJhbVRlY2ggJiYgKHN0YWdnZXJMZW5ndGhbbW9kKGogMildID4gbWluQnVzTGVuZ3RoKSkgdGhlbiAoeGwgPSAoKG1heFNwYWNpbmd0b0VkZ2VCIC0gKGkgKiBzbG90RXh0MSkpICsgKHhzdGFnZ2VyICogbW9kKGogMikpKSkgZWxzZSAoeGwgPSAobWF4U3BhY2luZ3RvRWRnZUIgLSAoaSAqIHNsb3RFeHQxKSkpKSBlbHNlICh4bCA9ICgwLjAgLSAoaSAqIHNsb3RFeHQxKSkpKSAoeHUgPSAoeGwgKyBzbG90TGVuZ3RoW21vZChqIDIpXSArICgyICogaSAqIHNsb3RFeHQxKSkpIChkeCA9IHNsb3RQaXRjaEhbbW9kKGogMildKSAoeWwgPSAoZ3JpZCAqIChjZWlsaW5nICgoeWwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoeXUgPSAoZ3JpZCAqIChjZWlsaW5nICgoeXUgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSBmb3IoayAxIG51bVNsb3RzICh4bCA9IChncmlkICogKGNlaWxpbmcgKCh4bCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpICh4dSA9IChncmlkICogKGNlaWxpbmcgKCh4dSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIGlmKCghc3RhbmRBbG9uZSAmJiAoayA9PSBudW1TbG90cykpICh4dSA9IHJpdmV0TGVuZ3RoWCkpIGlmKChyYW1UZWNoICYmIChtb2QoaiAyKSA9PSAxKSAmJiAoayA9PSAxKSkgKHh1ID0gKHh1ICsgeHN0YWdnZXIpKSkgaWYoKHJhbVRlY2ggJiYgc3RhbmRBbG9uZSAmJiAoayA9PSBudW1TbG90cykpICh4dSA9ICgocml2ZXRMZW5ndGhYIC0gbWF4U3BhY2luZ3RvRWRnZUUpICsgKGkgKiBzbG90RXh0MSkpKSkgKGRiSWR5MCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyAnKCJ5MCIgImRyYXdpbmciKSBsaXN0KCh4bDp5bCkgKHh1Onl1KSkpKSAoY3V0TGF5ZXIgPSBjb25zKGRiSWR5MCBjdXRMYXllcikpICh4bCA9ICgoeHUgKyBtYXhTbG90U3BhY2luZ0gpIC0gKDIgKiBpICogc2xvdEV4dDEpKSkgKHh1ID0gKHhsICsgc2xvdExlbmd0aFttb2QoaiAyKV0gKyAoMiAqIGkgKiBzbG90RXh0MSkpKSkgKHlsID0gKHlsICsgZHkpKSAoeXUgPSAoeXUgKyBkeSkpKSBpKysgKGRiSWRNZXQgPSBsaXN0KG50aGVsZW0oaSBkYklkMCkpKSAobGF5ZXJBbmROb3QgdGNDZWxsVmlldyB0aGlzTGF5ZXIgZGJJZE1ldCBjdXRMYXllcikgZm9yZWFjaCh0aGlzT2JqZWN0IGRiSWRNZXQgd2hlbih0aGlzT2JqZWN0IChkYkRlbGV0ZU9iamVjdCB0aGlzT2JqZWN0KSkpIGZvcmVhY2godGhpc09iamVjdCBjdXRMYXllciAoZGJEZWxldGVPYmplY3QgdGhpc09iamVjdCkpKSBlbHNlIChpID0gMCkgZm9yZWFjaCh0aGlzTGF5ZXIgcmV2ZXJzZUxheWVycyAoY3V0TGF5ZXIgPSAnbmlsKSAoeHN0YWdnZXIgPSBtaW5PdmVybGFwKSAoeWwgPSAoKHNsb3RTcGFjaW5nViAtIChpICogc2xvdEV4dDEpKSArIHlTbG90T2Zmc2V0KSkgKHl1ID0gKHlsICsgbWluU2xvdFdpZHRoICsgKDIgKiBpICogc2xvdEV4dDEpKSkgKGR4ID0gc2xvdFBpdGNoSCkgKGR5ID0gKG1pblNsb3RXaWR0aCArIHNsb3RTcGFjaW5nVikpIGZvcihqIDEgbnVtUm93cyAoeGwgPSAoKG1heFNwYWNpbmd0b0VkZ2UgLyAyKSAtIChpICogc2xvdEV4dDEpKSkgKHh1ID0gKHhsICsgc2xvdExlbmd0aCArICgyICogaSAqIHNsb3RFeHQxKSkpIHdoZW4oKG51bVNsb3RzID4gMSkgaWYoKHhzdGFnZ2VyID4gMCkgdGhlbiAoeHN0YWdnZXIgPSAwKSBlbHNlICh4c3RhZ2dlciA9IG1pbk92ZXJsYXApKSkgZm9yKGsgMSBudW1TbG90cyB3aGVuKChudW1TbG90cyA+IDEpIGNvbmQoKChrID09IDEpICh4bCA9ICh4bCArIHhzdGFnZ2VyKSkgKHh1ID0gKHh1ICsgeHN0YWdnZXIpKSkgKChrID09IG51bVNsb3RzKSAoeHUgPSAoeHUgLSB4c3RhZ2dlcikpKSkpIGNvbmQoKHN0YW5kQWxvbmUgKGRyYXdTbG90ID0gKChudW1TbG90cyA9PSAxKSB8fCAoKCh4dSAtIHhsKSA+PSBtaW5TbG90TGVuZ3RoKSAmJiAocml2ZXRMZW5ndGhYID49IG1pblJlcUxlbmd0aFgpKSkpKSAoIXN0YW5kQWxvbmUgd2hlbigoayA9PSBudW1TbG90cykgKHh1ID0gcml2ZXRMZW5ndGhYKSkgKGRyYXdTbG90ID0gKHJpdmV0TGVuZ3RoWCA+PSBtaW5SZXFMZW5ndGhYKSkpKSB3aGVuKGRyYXdTbG90ICh4bCA9IChncmlkICogKGNlaWxpbmcgKCh4bCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpICh4dSA9IChncmlkICogKGNlaWxpbmcgKCh4dSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpICh5bCA9IChncmlkICogKGNlaWxpbmcgKCh5bCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpICh5dSA9IChncmlkICogKGNlaWxpbmcgKCh5dSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChkYklkeTAgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgJygieTAiICJkcmF3aW5nIikgbGlzdCgoeGw6eWwpICh4dTp5dSkpKSkgKGN1dExheWVyID0gY29ucyhkYklkeTAgY3V0TGF5ZXIpKSAoeGwgPSAoeGwgKyBkeCkpICh4dSA9ICh4dSArIGR4KSkpKSAoeWwgPSAoeWwgKyBkeSkpICh5dSA9ICh5dSArIGR5KSkpIChpID0gKGkgKyAxKSkgKGRiSWRNZXQgPSBsaXN0KG50aGVsZW0oaSBkYklkMCkpKSAobGF5ZXJBbmROb3QgdGNDZWxsVmlldyB0aGlzTGF5ZXIgZGJJZE1ldCBjdXRMYXllcikgZm9yZWFjaCh0aGlzT2JqZWN0IGRiSWRNZXQgd2hlbih0aGlzT2JqZWN0IChkYkRlbGV0ZU9iamVjdCB0aGlzT2JqZWN0KSkpIGZvcmVhY2godGhpc09iamVjdCBjdXRMYXllciAoZGJEZWxldGVPYmplY3QgdGhpc09iamVjdCkpKSkgZWxzZSAoaSA9IDApIChhbGxvd2FuY2UgPSAoNSAqIGdyaWQpKSAoZGJJZDEgPSByZXZlcnNlKGRiSWQxKSkgd2hlbihuZXdBbGcgKFgwID0gKChyaXZldExlbmd0aFggLSBiZXZlbE9mZnNldCkgKyAoc2xvdFNwYWNpbmdWICogdGFuQ2FsKSkpIGlmKHN0YW5kQWxvbmUgdGhlbiAobWF4U3BhY2luZ3RvRWRnZSA9IG1pbihtYXhTcGFjaW5ndG9FZGdlIFgwKSkgZWxzZSAobWF4U3BhY2luZ3RvRWRnZSA9IDAuMCkpKSBmb3JlYWNoKHRoaXNMYXllciByZXZlcnNlTGF5ZXJzIChkYklkeTAgPSAnbmlsKSAoZGJJZE1ldCA9ICduaWwpIChzbG90Q2FsVSA9IChtaW5TbG90V2lkdGggKyAoMiAqIGkgKiBzbG90RXh0MSkpKSAocml2ZXRMZW5ndGhUID0gKHJpdmV0TGVuZ3RoWCArIHJpdmV0TGVuZ3RoWSArIHJpdmV0TGVuZ3RoWikpIGZvcihqIDAgKG51bVJvd3MgLSAxKSAoc2xvdENhbEwgPSAoc2xvdFNwYWNpbmdWICsgKGogKiAoc2xvdFNwYWNpbmdWICsgbWluU2xvdFdpZHRoKSkpKSAoY3VycmVudE9mZnNldCA9IChiZXZlbE9mZnNldCAtICh0YW5DYWwgKiBzbG90Q2FsTCkpKSAoY3VycmVudE9mZnNldCA9IChncmlkICogKGNlaWxpbmcgKChjdXJyZW50T2Zmc2V0ICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKGN1cnJlbnRMZW5ndGhYID0gKHJpdmV0TGVuZ3RoWCAtIGN1cnJlbnRPZmZzZXQpKSAoY3VycmVudExlbmd0aFogPSAocml2ZXRMZW5ndGhaIC0gKDIgKiBjdXJyZW50T2Zmc2V0KSkpIChjdXJyZW50TGVuZ3RoWSA9IChyaXZldExlbmd0aFkgLSBjdXJyZW50T2Zmc2V0KSkgKGN1cnJlbnRMZW5ndGhUID0gKGN1cnJlbnRMZW5ndGhYICsgY3VycmVudExlbmd0aFkgKyBjdXJyZW50TGVuZ3RoWikpIGlmKG5ld0FsZyB0aGVuIChzdGFnZ2VyTGVuZ3RoID0gKGN1cnJlbnRMZW5ndGhUIC0gKDIgKiBtaW5PdmVybGFwICogbW9kKGogMikpKSkgaWYoKHN0YWdnZXJMZW5ndGggPCBtaW5CdXNMZW5ndGgpIHRoZW4gKG51bVNsb3RzID0gMSkgKHNsb3RMZW5ndGggPSAoY3VycmVudExlbmd0aFQgLSAoMiAqIG1heFNwYWNpbmd0b0VkZ2UpKSkgKHNsb3RQaXRjaEggPSBzbG90TGVuZ3RoKSBlbHNlIChzbG90UGl0Y2hIID0gKG1pblNsb3RMZW5ndGggKyBtYXhTbG90U3BhY2luZ0gpKSAoZWZmZWN0aXZlTGVuZ3RoID0gKHN0YWdnZXJMZW5ndGggLSAoMiAqIG1heFNwYWNpbmd0b0VkZ2UpKSkgKG51bVNsb3RzID0gKGNlaWxpbmcgKChlZmZlY3RpdmVMZW5ndGggKyBtYXhTbG90U3BhY2luZ0gpIC8gc2xvdFBpdGNoSCkpKSAoc2xvdExlbmd0aCA9IChmbG9vciAoKGVmZmVjdGl2ZUxlbmd0aCAtICgobnVtU2xvdHMgLSAxKSAqIG1heFNsb3RTcGFjaW5nSCkpIC8gbnVtU2xvdHMpKSkgKHNsb3RQaXRjaEggPSAoc2xvdExlbmd0aCArIG1heFNsb3RTcGFjaW5nSCkpKSB3aGlsZSgoKG51bVNsb3RzID4gMSkgJiYgKHNsb3RMZW5ndGggPCBtaW5TbG90TGVuZ3RoKSkgKG51bVNsb3RzID0gKG51bVNsb3RzIC0gMSkpIChzbG90TGVuZ3RoID0gKGNlaWxpbmcgKChlZmZlY3RpdmVMZW5ndGggLSAoKG51bVNsb3RzIC0gMSkgKiBtYXhTbG90U3BhY2luZ0gpKSAvIG51bVNsb3RzKSkpIChzbG90UGl0Y2hIID0gKHNsb3RMZW5ndGggKyBtYXhTbG90U3BhY2luZ0gpKSkgaWYoKCghcmFtVGVjaCAmJiBzdGFuZEFsb25lKSAmJiAoc3RhZ2dlckxlbmd0aCA+IG1pbkJ1c0xlbmd0aCkpIHRoZW4gKHhzID0gKG1heFNwYWNpbmd0b0VkZ2UgKyAobWluT3ZlcmxhcCAqIG1vZChqIDIpKSkpIGVsc2UgKHhzID0gbWF4U3BhY2luZ3RvRWRnZSkpIGVsc2UgKHNsb3RQaXRjaEggPSAobWF4U2xvdExlbmd0aCArIG1heFNsb3RTcGFjaW5nSCkpIChudW1TbG90cyA9IChjZWlsaW5nIChjdXJyZW50TGVuZ3RoVCAvIHNsb3RQaXRjaEgpKSkgKHNsb3RMZW5ndGggPSAoY2VpbGluZyAoKGN1cnJlbnRMZW5ndGhUIC0gKG51bVNsb3RzICogbWF4U2xvdFNwYWNpbmdIKSkgLyBudW1TbG90cykpKSAoc2xvdFBpdGNoSCA9IChzbG90TGVuZ3RoICsgbWF4U2xvdFNwYWNpbmdIKSkgKHhzID0gKChtYXhTcGFjaW5ndG9FZGdlICsgKG1pbk92ZXJsYXAgKiBtb2QoaiAyKSkpIC0gKDQgKiBncmlkKSkpKSAoeDEgPSAoKHJpdmV0TGVuZ3RoWCAtIGJldmVsT2Zmc2V0KSArICh0YW5DYWwgKiBzbG90Q2FsTCkpKSAoeDEgPSAoZ3JpZCAqIChjZWlsaW5nICgoeDEgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoeTEgPSBzbG90Q2FsTCkgKHgyID0gKHgxICsgKCgocml2ZXRMZW5ndGhaIC0gKDIgKiBiZXZlbE9mZnNldCkpICsgKDIgKiB0YW5DYWwgKiBzbG90Q2FsTCkpIC8gcm9vdDIpKSkgKHkyID0gKHkxIC0gKCgocml2ZXRMZW5ndGhaIC0gKDIgKiBiZXZlbE9mZnNldCkpICsgKDIgKiB0YW5DYWwgKiBzbG90Q2FsTCkpIC8gcm9vdDIpKSkgKHgyID0gKGdyaWQgKiAoY2VpbGluZyAoKHgyICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKHkyID0gKGdyaWQgKiAoY2VpbGluZyAoKHkyICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKHlzID0gc2xvdENhbEwpICh4ZSA9ICh4cyArIHNsb3RMZW5ndGgpKSBjb25kKCgoeGUgPCB4MSkgKHllID0gc2xvdENhbEwpKSAoKCh4cyA+IHgxKSAmJiAoc2xvdExlbmd0aCA8IGN1cnJlbnRMZW5ndGhaKSkgKHhzID0gKHgxICsgZ3JpZCkpICh4ZSA9ICh4cyArIChzbG90TGVuZ3RoIC8gcm9vdDIpKSkgKHlzID0gKHkxIC0gZ3JpZCkpICh5ZSA9ICh5cyAtIChzbG90TGVuZ3RoIC8gcm9vdDIpKSkpICgoKHhzID4geDEpICYmIChzbG90TGVuZ3RoID4gY3VycmVudExlbmd0aFopKSAoeHMgPSAoeDEgKyBncmlkKSkgKHlzID0gKHkxIC0gZ3JpZCkpIChvZmZzZXRDYWwgPSAoKGN1cnJlbnRMZW5ndGhaIC8gcm9vdDIpICsgKHNsb3RMZW5ndGggLSBjdXJyZW50TGVuZ3RoWikpKSAoeGUgPSB4MikgKHllID0gKHlzIC0gb2Zmc2V0Q2FsKSkpICgoKHhlID4geDEpICYmICgoeGUgLSB4MSkgPCBjdXJyZW50TGVuZ3RoWikpIChvZmZzZXRDYWwgPSAoKHhlIC0geDEpIC8gcm9vdDIpKSAob2Zmc2V0Q2FsID0gKGdyaWQgKiAoY2VpbGluZyAoKG9mZnNldENhbCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpICh4ZSA9ICh4MSArIG9mZnNldENhbCkpICh5ZSA9ICh5MSAtIG9mZnNldENhbCkpKSAoKCh4ZSA+IHgxKSAmJiAoKHhlIC0geDEpID4gY3VycmVudExlbmd0aFopKSAoeGUgPSB4MikgKHllID0gKHkyIC0gKHNsb3RMZW5ndGggLSAoKHgxIC0geHMpICsgY3VycmVudExlbmd0aFopKSkpKSkgZm9yKGsgMCAobnVtU2xvdHMgLSAxKSAod29ya2luZ0xpc3QgPSAnbmlsKSAobnVtUG9pbnRzID0gMCkgKGZpcnN0U2xvdEV4dCA9IG5pbCkgaWYobmV3QWxnIHRoZW4gaWYoKGsgPT0gKG51bVNsb3RzIC0gMSkpIHRoZW4gKHhlID0geDIpICh5ZSA9ICgtICgobE9mZnNldCArIHJpdmV0TGVuZ3RoWSkgLSBiZXZlbE9mZnNldCkpKSkgaWYoc3RhbmRBbG9uZSB0aGVuIChvZmZzZXRDYWwgPSAoLSAoKGxPZmZzZXQgKyByaXZldExlbmd0aFkpIC0gYmV2ZWxPZmZzZXQpKSkgKG9mZnNldENhbCA9IChncmlkICogKGNlaWxpbmcgKChvZmZzZXRDYWwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSBpZihyYW1UZWNoIHRoZW4gaWYoKGsgPT0gKG51bVNsb3RzIC0gMSkpICh5ZSA9IChvZmZzZXRDYWwgKyBtYXhTcGFjaW5ndG9FZGdlKSkpIGVsc2UgaWYoKHN0YWdnZXJMZW5ndGggPCBtaW5CdXNMZW5ndGgpIHRoZW4gKHllID0gKG9mZnNldENhbCArIG1heFNwYWNpbmd0b0VkZ2UpKSBlbHNlIHdoZW4oKGsgPT0gKG51bVNsb3RzIC0gMSkpICh5ZSA9IChvZmZzZXRDYWwgKyBtYXhTcGFjaW5ndG9FZGdlICsgKG1pbk92ZXJsYXAgKiBtb2QoaiAyKSkpKSkpKSBlbHNlIGlmKChrID09IDApIChmaXJzdFNsb3RFeHQgPSB0KSkpIGVsc2UgaWYoc3RhbmRBbG9uZSB0aGVuIChvZmZzZXRDYWwgPSAoLSAoKGxPZmZzZXQgKyByaXZldExlbmd0aFkpIC0gYmV2ZWxPZmZzZXQpKSkgKG9mZnNldENhbCA9IChncmlkICogKGNlaWxpbmcgKChvZmZzZXRDYWwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSB3aGVuKCh5ZSA8IChvZmZzZXRDYWwgKyBhbGxvd2FuY2UpKSAoeWUgPSAob2Zmc2V0Q2FsICsgbWF4U3BhY2luZ3RvRWRnZSArIGFsbG93YW5jZSkpIHdoZW4oKCh5cyAtIHllKSA8IG1pblNsb3RMZW5ndGgpICh5cyA9ICgyICogb2Zmc2V0Q2FsKSkgKHllID0geXMpKSkgZWxzZSB3aGVuKChrID09IDApIChmaXJzdFNsb3RFeHQgPSB0KSkgd2hlbigoayA9PSAobnVtU2xvdHMgLSAxKSkgKHhlID0geDIpICh5ZSA9ICgtICgobE9mZnNldCArIHJpdmV0TGVuZ3RoWSkgLSBiZXZlbE9mZnNldCkpKSkpKSBjb25kKCgoKHhzIDwgeDEpICYmICh4ZSA8IHgxKSkgKG51bVBvaW50cyA9IDUpIGlmKGZpcnN0U2xvdEV4dCB0aGVuIChXQVswXSA9IGxpc3QoMCAoeXMgLSAoaSAqIHNsb3RFeHQxKSkpKSBlbHNlIChXQVswXSA9IGxpc3QoKHhzIC0gKGkgKiBzbG90RXh0MSkpICh5cyAtIChpICogc2xvdEV4dDEpKSkpKSAoV0FbMV0gPSBsaXN0KCh4ZSArIChpICogc2xvdEV4dDEpKSAoeWUgLSAoaSAqIHNsb3RFeHQxKSkpKSAoV0FbMl0gPSBsaXN0KGNhcihXQVsxXSkgKGNhZHIoV0FbMV0pICsgc2xvdENhbFUpKSkgKFdBWzNdID0gbGlzdChjYXIoV0FbMF0pIChjYWRyKFdBWzBdKSArIHNsb3RDYWxVKSkpIChXQVs0XSA9IFdBWzBdKSAoeHMgPSAoeHMgKyBzbG90UGl0Y2hIKSkgKHhlID0gKHhlICsgc2xvdFBpdGNoSCkpIGNvbmQoKCgoeGUgPCB4MSkgJiYgKHhzIDwgeDEpKSAoeWUgPSBzbG90Q2FsTCkpICgoKHhlID4geDEpICYmICgoeGUgLSB4MSkgPCBjdXJyZW50TGVuZ3RoWikgJiYgKHhzIDwgeDEpKSAob2Zmc2V0Q2FsID0gKCh4ZSAtIHgxKSAvIHJvb3QyKSkgKG9mZnNldENhbCA9IChncmlkICogKGNlaWxpbmcgKChvZmZzZXRDYWwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoeGUgPSAoeDEgKyBvZmZzZXRDYWwpKSAoeWUgPSAoeTEgLSBvZmZzZXRDYWwpKSkgKCgoeGUgPiB4MSkgJiYgKCh4ZSAtIHgxKSA+IGN1cnJlbnRMZW5ndGhaKSAmJiAoeHMgPCB4MSkpICh4ZSA9IHgyKSAoeWUgPSAoeTIgLSAoc2xvdExlbmd0aCAtICgoeDEgLSB4cykgKyBjdXJyZW50TGVuZ3RoWikpKSkpICgoKHhzID4geDEpICYmICgoKHhzIC0geDEpICsgc2xvdExlbmd0aCkgPCBjdXJyZW50TGVuZ3RoWikpIChvZmZzZXRDYWwgPSAoKHhzIC0geDEpIC8gcm9vdDIpKSAob2Zmc2V0Q2FsID0gKGdyaWQgKiAoY2VpbGluZyAoKG9mZnNldENhbCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpICh4cyA9ICh4MSArIG9mZnNldENhbCkpICh4ZSA9ICh4cyArIChzbG90TGVuZ3RoIC8gcm9vdDIpKSkgKHhlID0gKGdyaWQgKiAoY2VpbGluZyAoKHhlICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKHlzID0gKHlzIC0gb2Zmc2V0Q2FsKSkgKHllID0gKHlzIC0gKHNsb3RMZW5ndGggLyByb290MikpKSAoeWUgPSAoZ3JpZCAqIChjZWlsaW5nICgoeWUgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSkgKCgoeHMgPiB4MSkgJiYgKCgoeHMgLSB4MSkgKyBzbG90TGVuZ3RoKSA+IGN1cnJlbnRMZW5ndGhaKSkgKG9mZnNldENhbCA9ICgoeHMgLSB4MSkgLyByb290MikpIChvZmZzZXRDYWwgPSAoZ3JpZCAqIChjZWlsaW5nICgob2Zmc2V0Q2FsICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKHhzID0gKHgxICsgb2Zmc2V0Q2FsKSkgKHhlID0geDIpICh5cyA9ICh5cyAtIG9mZnNldENhbCkpICh5ZSA9ICh5cyAtICgoeGUgLSB4cykgKyAoc2xvdExlbmd0aCAtICgoeGUgLSB4cykgKiByb290MikpKSkpICh5ZSA9IChncmlkICogKGNlaWxpbmcgKCh5ZSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpKSkpICgoKHhzIDwgeDEpICYmICh4ZSA+IHgxKSAmJiAoeWUgPiB5MikpIChudW1Qb2ludHMgPSA3KSBpZihmaXJzdFNsb3RFeHQgdGhlbiAoV0FbMF0gPSBsaXN0KDAgKHlzIC0gKGkgKiBzbG90RXh0MSkpKSkgZWxzZSAoV0FbMF0gPSBsaXN0KCh4cyAtIChpICogc2xvdEV4dDEpKSAoeXMgLSAoaSAqIHNsb3RFeHQxKSkpKSkgKG9mZnNldENhbCA9IChncmlkICogKGNlaWxpbmcgKCgoeDEgLSAoaSAqIHNsb3RFeHQxICogdGFuQ2FsKSkgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoV0FbMV0gPSBsaXN0KG9mZnNldENhbCAoeXMgLSAoaSAqIHNsb3RFeHQxKSkpKSAob2Zmc2V0Q2FsID0gKGdyaWQgKiAoY2VpbGluZyAoKCh5ZSAtIChpICogc2xvdEV4dDEgKiByb290MikpICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKFdBWzJdID0gbGlzdCh4ZSBvZmZzZXRDYWwpKSAob2Zmc2V0Q2FsID0gKHNsb3RDYWxVIC8gcm9vdDIpKSAob2Zmc2V0Q2FsID0gKGdyaWQgKiAoY2VpbGluZyAoKG9mZnNldENhbCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChXQVszXSA9IGxpc3QoKGNhcihXQVsyXSkgKyBvZmZzZXRDYWwpIChjYWRyKFdBWzJdKSArIG9mZnNldENhbCkpKSAob2Zmc2V0Q2FsID0gKHNsb3RDYWxVICogdGFuQ2FsKSkgKG9mZnNldENhbCA9IChncmlkICogKGNlaWxpbmcgKChvZmZzZXRDYWwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoV0FbNF0gPSBsaXN0KChjYXIoV0FbMV0pICsgb2Zmc2V0Q2FsKSAoY2FkcihXQVsxXSkgKyBzbG90Q2FsVSkpKSAoV0FbNV0gPSBsaXN0KGNhcihXQVswXSkgKGNhZHIoV0FbMF0pICsgc2xvdENhbFUpKSkgKFdBWzZdID0gV0FbMF0pICh4RmluYWwgPSAoY2FyKFdBWzFdKSArIChjYXIoV0FbMl0pIC0gY2FyKFdBWzFdKSAtIChjYWRyKFdBWzFdKSAtIGNhZHIoV0FbMl0pKSkpKSAoV0FbMV0gPSBsaXN0KHhGaW5hbCBjYWRyKFdBWzFdKSkpICh4RmluYWwgPSAoY2FyKFdBWzRdKSArIChjYXIoV0FbM10pIC0gY2FyKFdBWzRdKSAtIChjYWRyKFdBWzRdKSAtIGNhZHIoV0FbM10pKSkpKSAoV0FbNF0gPSBsaXN0KHhGaW5hbCBjYWRyKFdBWzRdKSkpICh5cyA9ICh5ZSAtIChtYXhTbG90U3BhY2luZ0ggLyByb290MikpKSAoeWUgPSAoeWUgLSAoc2xvdFBpdGNoSCAvIHJvb3QyKSkpIGNvbmQoKCgoeXMgPiB5MikgJiYgKHllID4geTIpKSAoeHMgPSAoeGUgKyAobWF4U2xvdFNwYWNpbmdIIC8gcm9vdDIpKSkgKHhlID0gKHhlICsgKHNsb3RQaXRjaEggLyByb290MikpKSkgKCgoeXMgPiB5MikgJiYgKHllIDwgeTIpKSAoeHMgPSAoeGUgKyAobWF4U2xvdFNwYWNpbmdIIC8gcm9vdDIpKSkgKHhlID0geDIpICh5ZSA9ICh5MiAtIChzbG90UGl0Y2hIIC0gKCh5cyAtIHkyKSAqIHJvb3QyKSkpKSkgKCgoeXMgPCB5MikgJiYgKHllIDwgeTIpKSAoeHMgPSB4MikgKHhlID0geDIpICh5cyA9IHkyKSAoeWUgPSAoeTIgKyBzbG90TGVuZ3RoKSkpKSkgKCgoeHMgPCB4MSkgJiYgKHhlID49IHgyKSAmJiAoeWUgPCB5MikpIChudW1Qb2ludHMgPSA5KSBpZihmaXJzdFNsb3RFeHQgdGhlbiAoV0FbMF0gPSBsaXN0KDAgKHlzIC0gKGkgKiBzbG90RXh0MSkpKSkgZWxzZSAoV0FbMF0gPSBsaXN0KCh4cyAtIChpICogc2xvdEV4dDEpKSAoeXMgLSAoaSAqIHNsb3RFeHQxKSkpKSkgKG9mZnNldENhbCA9ICh4MSAtIChpICogc2xvdEV4dDEgKiB0YW5DYWwpKSkgKG9mZnNldENhbCA9IChncmlkICogKGNlaWxpbmcgKChvZmZzZXRDYWwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoV0FbMV0gPSBsaXN0KG9mZnNldENhbCAoeXMgLSAoaSAqIHNsb3RFeHQxKSkpKSAob2Zmc2V0Q2FsID0gKHkyIC0gKGkgKiBzbG90RXh0MSAqIHRhbkNhbCkpKSAob2Zmc2V0Q2FsID0gKGdyaWQgKiAoY2VpbGluZyAoKG9mZnNldENhbCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChXQVsyXSA9IGxpc3QoKHgyIC0gKGkgKiBzbG90RXh0MSkpIG9mZnNldENhbCkpIChXQVszXSA9IGxpc3QoKHgyIC0gKGkgKiBzbG90RXh0MSkpICh5ZSAtIChpICogc2xvdEV4dDEpKSkpIChXQVs0XSA9IGxpc3QoKGNhcihXQVszXSkgKyBzbG90Q2FsVSkgY2FkcihXQVszXSkpKSAob2Zmc2V0Q2FsID0gKHNsb3RDYWxVICogdGFuQ2FsKSkgKG9mZnNldENhbCA9IChncmlkICogKGNlaWxpbmcgKChvZmZzZXRDYWwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoV0FbNV0gPSBsaXN0KChjYXIoV0FbMl0pICsgc2xvdENhbFUpIChjYWRyKFdBWzJdKSArIG9mZnNldENhbCkpKSAoV0FbNl0gPSBsaXN0KChjYXIoV0FbMV0pICsgb2Zmc2V0Q2FsKSAoY2FkcihXQVsxXSkgKyBzbG90Q2FsVSkpKSAoV0FbN10gPSBsaXN0KGNhcihXQVswXSkgKGNhZHIoV0FbMF0pICsgc2xvdENhbFUpKSkgKFdBWzhdID0gV0FbMF0pICh5RmluYWwgPSAoY2FkcihXQVsyXSkgLSAoY2FyKFdBWzJdKSAtIGNhcihXQVsxXSkgLSAoY2FkcihXQVsxXSkgLSBjYWRyKFdBWzJdKSkpKSkgKFdBWzJdID0gbGlzdChjYXIoV0FbMl0pIHlGaW5hbCkpICh5RmluYWwgPSAoY2FkcihXQVs1XSkgLSAoY2FyKFdBWzVdKSAtIGNhcihXQVs2XSkgLSAoY2FkcihXQVs2XSkgLSBjYWRyKFdBWzVdKSkpKSkgKFdBWzVdID0gbGlzdChjYXIoV0FbNV0pIHlGaW5hbCkpICh4cyA9IHgyKSAoeGUgPSB4MikgKHlzID0gKHllIC0gbWF4U2xvdFNwYWNpbmdIKSkgKHllID0gKHllIC0gc2xvdFBpdGNoSCkpKSAoKCh4cyA+IHgxKSAmJiAoeXMgPiB5MikgJiYgKHllIDwgeTIpKSAobnVtUG9pbnRzID0gNykgKG9mZnNldENhbCA9ICh4cyAtIChpICogc2xvdEV4dDEgKiByb290MikpKSAob2Zmc2V0Q2FsID0gKGdyaWQgKiAoY2VpbGluZyAoKG9mZnNldENhbCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChXQVswXSA9IGxpc3Qob2Zmc2V0Q2FsIHlzKSkgKG9mZnNldENhbCA9ICh5MiAtIChpICogc2xvdEV4dDEgKiB0YW5DYWwpKSkgKG9mZnNldENhbCA9IChncmlkICogKGNlaWxpbmcgKChvZmZzZXRDYWwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoV0FbMV0gPSBsaXN0KCh4MiAtIChpICogc2xvdEV4dDEpKSBvZmZzZXRDYWwpKSAoV0FbMl0gPSBsaXN0KCh4ZSAtIChpICogc2xvdEV4dDEpKSAoeWUgLSAoaSAqIHNsb3RFeHQxKSkpKSAoV0FbM10gPSBsaXN0KChjYXIoV0FbMl0pICsgc2xvdENhbFUpIGNhZHIoV0FbMl0pKSkgKG9mZnNldENhbCA9IChncmlkICogKGNlaWxpbmcgKChzbG90Q2FsVSAqIHRhbkNhbCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChXQVs0XSA9IGxpc3QoKGNhcihXQVsxXSkgKyBzbG90Q2FsVSkgKGNhZHIoV0FbMV0pICsgb2Zmc2V0Q2FsKSkpIChvZmZzZXRDYWwgPSAoZ3JpZCAqIChjZWlsaW5nICgoKChtaW5TbG90V2lkdGggLyByb290MikgKyAoaSAqIHNsb3RFeHQxICogcm9vdDIpKSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChXQVs1XSA9IGxpc3QoKGNhcihXQVswXSkgKyBvZmZzZXRDYWwpIChjYWRyKFdBWzBdKSArIG9mZnNldENhbCkpKSAoV0FbNl0gPSBXQVswXSkgKHlGaW5hbCA9IChjYWRyKFdBWzFdKSAtIChjYXIoV0FbMV0pIC0gY2FyKFdBWzBdKSAtIChjYWRyKFdBWzBdKSAtIGNhZHIoV0FbMV0pKSkpKSAoV0FbMV0gPSBsaXN0KGNhcihXQVsxXSkgeUZpbmFsKSkgKHlGaW5hbCA9IChjYWRyKFdBWzRdKSAtIChjYXIoV0FbNF0pIC0gY2FyKFdBWzVdKSAtIChjYWRyKFdBWzVdKSAtIGNhZHIoV0FbNF0pKSkpKSAoV0FbNF0gPSBsaXN0KGNhcihXQVs0XSkgeUZpbmFsKSkgKHhzID0geDIpICh4ZSA9IHgyKSAoeXMgPSAoeWUgLSBtYXhTbG90U3BhY2luZ0gpKSAoeWUgPSAoeWUgLSBzbG90UGl0Y2hIKSkpICgoKHhzID4geDEpICYmICh4ZSA8IHgyKSAmJiAoeWUgPiB5MikpIChudW1Qb2ludHMgPSA1KSAoeGUgPSAoeHMgKyAoc2xvdExlbmd0aCAvIHJvb3QyKSkpICh4ZSA9IChncmlkICogKGNlaWxpbmcgKCh4ZSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChvZmZzZXRDYWwgPSAoZ3JpZCAqIChjZWlsaW5nICgoaSAqIHNsb3RFeHQxICogcm9vdDIgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoV0FbMF0gPSBsaXN0KCh4cyAtIG9mZnNldENhbCkgeXMpKSAoV0FbMV0gPSBsaXN0KHhlICh5ZSAtIG9mZnNldENhbCkpKSAob2Zmc2V0Q2FsID0gKGdyaWQgKiAoY2VpbGluZyAoKChzbG90Q2FsVSAvIHJvb3QyKSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChXQVsyXSA9IGxpc3QoKGNhcihXQVsxXSkgKyBvZmZzZXRDYWwpIChjYWRyKFdBWzFdKSArIG9mZnNldENhbCkpKSAoV0FbM10gPSBsaXN0KChjYXIoV0FbMF0pICsgb2Zmc2V0Q2FsKSAoY2FkcihXQVswXSkgKyBvZmZzZXRDYWwpKSkgKFdBWzRdID0gV0FbMF0pICh5cyA9ICh5ZSAtIChtYXhTbG90U3BhY2luZ0ggLyByb290MikpKSAoeWUgPSAoeWUgLSAoc2xvdFBpdGNoSCAvIHJvb3QyKSkpIGNvbmQoKCgoeXMgPiB5MikgJiYgKHllID4geTIpKSAoeHMgPSAoeGUgKyAobWF4U2xvdFNwYWNpbmdIIC8gcm9vdDIpKSkgKHhlID0gKHhlICsgKHNsb3RQaXRjaEggLyByb290MikpKSkgKCgoeXMgPiB5MikgJiYgKHllIDwgeTIpKSAoeHMgPSAoeGUgKyAobWF4U2xvdFNwYWNpbmdIIC8gcm9vdDIpKSkgKHhlID0geDIpICh5ZSA9ICh5MiAtIChzbG90UGl0Y2hIIC0gKCh5cyAtIHkyKSAqIHJvb3QyKSkpKSkgKCgoeXMgPCB5MikgJiYgKHllIDwgeTIpKSAoeHMgPSB4MikgKHhlID0geDIpICh5cyA9ICh5MiAtICgoeTIgLSB5cykgKiByb290MikpKSAoeWUgPSAoeXMgLSBzbG90TGVuZ3RoKSkpKSkgKCgoeXMgPCB5MikgJiYgKHllIDwgeTIpKSAobnVtUG9pbnRzID0gNSkgKFdBWzBdID0gbGlzdCgoeHMgLSAoaSAqIHNsb3RFeHQxKSkgKHlzICsgKGkgKiBzbG90RXh0MSkpKSkgKFdBWzFdID0gbGlzdCgoeHMgLSAoaSAqIHNsb3RFeHQxKSkgKHllIC0gKGkgKiBzbG90RXh0MSkpKSkgKFdBWzJdID0gbGlzdCgoY2FyKFdBWzFdKSArIHNsb3RDYWxVKSBjYWRyKFdBWzFdKSkpIChXQVszXSA9IGxpc3QoKGNhcihXQVswXSkgKyBzbG90Q2FsVSkgY2FkcihXQVswXSkpKSAoV0FbNF0gPSBXQVswXSkgKHlzID0gKHlzIC0gc2xvdFBpdGNoSCkpICh5ZSA9ICh5ZSAtIHNsb3RQaXRjaEgpKSkpICh4cyA9IChncmlkICogKGNlaWxpbmcgKCh4cyAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpICh4ZSA9IChncmlkICogKGNlaWxpbmcgKCh4ZSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpICh5cyA9IChncmlkICogKGNlaWxpbmcgKCh5cyAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpICh5ZSA9IChncmlkICogKGNlaWxpbmcgKCh5ZSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIHdoZW4oKG51bVBvaW50cyA+PSA0KSBmb3IocCAwIChudW1Qb2ludHMgLSAxKSAod29ya2luZ0xpc3QgPSBjb25zKFdBW3BdIHdvcmtpbmdMaXN0KSkpIChkYklkeTAgPSBjb25zKChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsaXN0KCJ5MCIgImRyYXdpbmciKSB3b3JraW5nTGlzdCkgZGJJZHkwKSkpKSkgaSsrIChkYklkTWV0ID0gbGlzdChudGhlbGVtKGkgZGJJZDEpKSkgKGxheWVyQW5kTm90IHRjQ2VsbFZpZXcgdGhpc0xheWVyIGRiSWRNZXQgZGJJZHkwKSBmb3JlYWNoKHRoaXNPYmplY3QgZGJJZE1ldCB3aGVuKHRoaXNPYmplY3QgKGRiRGVsZXRlT2JqZWN0IHRoaXNPYmplY3QpKSkgZm9yZWFjaCh0aGlzT2JqZWN0IGRiSWR5MCAoZGJEZWxldGVPYmplY3QgdGhpc09iamVjdCkpKSkpKQAocml2ZXRMYXllcnMgbWV0RXh0IHJpdmV0Q29udGFjdHMgZ3JpZCBtaW5SaXZldFdpZHRoIG1pblNsb3RXaWR0aCBtaW5TbG90TGVuZ3RoIG1pbkJ1c0xlbmd0aCBtYXhTbG90TGVuZ3RoIG1pblNsb3RMZW5ndGhQIG1heFNsb3RTcGFjaW5nSCBtYXhTcGFjaW5ndG9FZGdlIG1heFNsb3RTcGFjaW5nViBtaW5PdmVybGFwIHNsb3RFeHQgbWluT3ZlcmxhcFAgcmFtVGVjaCBuZXdBbGcgdXNlRU9MZW5jIGxheWVyTmFtZSBtdWx0aUxheWVyIHlTbG90T2Zmc2V0IHN0YW5kQWxvbmUgbm9CZW50IHJpdmV0TGVuZ3RoWiByaXZldExlbmd0aFkgcml2ZXRMZW5ndGhYIHJpdmV0V2lkdGggcm9vdDIgdGFuQ2FsIGNlaWxGaXggZ3JpZE11bHQgdmlhVmFsdWVzIHZpYVdpZHRoIHZpYVNwYWNpbmcgbWV0MUVuY1ZpYSBtZXQxRU9MZW5jIG51bUxheWVycyBudW1Db250YWN0cyBtaW5XaWR0aCBtaW5MZW5ndGggdmlhUGl0Y2ggc2xhY2sxIHNsb3RFeHQxIG1ldEV4dDFTaWRlIHRvdGFsV2lkdGggbWluTGVuZ3RoWiBkYklkMCBkYklkMSByZXZlcnNlTGF5ZXJzIGkgeDAgeTAgdGhpc0xheWVyIHhsIHlsIHh1IHl1IGNvbnRhY3QgY29udGFjdFdpZHRoIGNvbnRhY3RTcGFjaW5nIG1ldEVuY0NvbiBtZXRFT0xlbmMgY29udGFjdFBpdGNoIGogayBiZXZlbE9mZnNldCBsT2Zmc2V0IHVPZmZzZXQgYXJyYXlTaXplIHRoZUJlbnRQb2ludHMgd29ya2luZ0FycmF5IFdBIHggeSB3b3JraW5nTGlzdCByZXZlcnNlQ29udGFjdHMgdGhpc0NvbnRhY3QgeHN0YXJ0IHhlbmQgeXN0YXJ0IHllbmQgeHN0ZXAgeXN0ZXAgeERyYXcgeURyYXcgdG9sZXJhbmNlIHNsb3RQaXRjaFYgbnVtUm93cyBzbG90U3BhY2luZ1ZOIHNsb3RTcGFjaW5nViBtaW5SZXFMZW5ndGhYIHNsb3RQaXRjaEggbnVtU2xvdHMgc2xvdExlbmd0aCBzdGFnZ2VyTGVuZ3RoIG1heFNwYWNpbmd0b0VkZ2VCIG1heFNwYWNpbmd0b0VkZ2VFIHhzdGFnZ2VyIGVmZmVjdGl2ZUxlbmd0aCBzbG90TGVuRW5kIG1pblNwYWNlVG9FZGdlIHNsb3RMZW5EaWZmIGN1dExheWVyIGR5IGR4IGRiSWR5MCBkYklkTWV0IHRoaXNPYmplY3QgZHJhd1Nsb3QgYWxsb3dhbmNlIFgwIHNsb3RDYWxVIHJpdmV0TGVuZ3RoVCBzbG90Q2FsTCBjdXJyZW50T2Zmc2V0IGN1cnJlbnRMZW5ndGhYIGN1cnJlbnRMZW5ndGhaIGN1cnJlbnRMZW5ndGhZIGN1cnJlbnRMZW5ndGhUIHhzIHgxIHkxIHgyIHkyIHlzIHhlIHllIG9mZnNldENhbCBudW1Qb2ludHMgZmlyc3RTbG90RXh0IHhGaW5hbCB5RmluYWwgcCkAKCh1c2VFT0xlbmMgIkZBTFNFIikgKGxheWVyTmFtZSAibWV0MSIpIChtdWx0aUxheWVyIHQpICh5U2xvdE9mZnNldCAwKSAoc3RhbmRBbG9uZSB0KSAobm9CZW50IHQpIChyaXZldExlbmd0aFogMTAwLjApIChyaXZldExlbmd0aFkgMTAwLjApIChyaXZldExlbmd0aFggMTAwLjApIChyaXZldFdpZHRoIDEyLjUpKQAoKHJpdmV0TGF5ZXJzICcoIm1ldDEiICJtZXQyIikpIChtZXRFeHQgMi41KSAocml2ZXRDb250YWN0cyAnKCcoInZpYSIgMC41IDEuMDUgMC4yMjUpKSkgKGdyaWQgMC4wMjUpIChtaW5SaXZldFdpZHRoIDYyLjUpIChtaW5TbG90V2lkdGggNS43NSkgKG1pblNsb3RMZW5ndGggNzUwLjApIChtaW5CdXNMZW5ndGggMTAwMC4wKSAobWF4U2xvdExlbmd0aCAxNTAwLjApIChtaW5TbG90TGVuZ3RoUCAwLjc1KSAobWF4U2xvdFNwYWNpbmdIIDYyLjUpIChtYXhTcGFjaW5ndG9FZGdlIDYyLjUpIChtYXhTbG90U3BhY2luZ1YgNjIuNSkgKG1pbk92ZXJsYXAgMjUwLjApIChzbG90RXh0IDIuNSkgKG1pbk92ZXJsYXBQIDAuMikgKHJhbVRlY2ggbmlsKSAobmV3QWxnIHQpKQAod2hlbigoYmV2ZWxUaGVPdXRzaWRlID09ICJGQUxTRSIpIChiZXZlbFRoZU91dHNpZGUgPSBuaWwpKSB3aGVuKChiZXZlbFRoZU91dHNpZGVOb0luc2lkZSA9PSAiRkFMU0UiKSAoYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgPSBuaWwpKSB3aGVuKChicmVha3VwUG9seWdvbnMgPT0gIkZBTFNFIikgKGJyZWFrdXBQb2x5Z29ucyA9IG5pbCkpIChzMiA9IHNxcnQoMi4wKSkgKGJldmVsSW5zaWRlT2Zmc2V0ID0gKCgocmluZ1dpZHRoICogKHMyIC0gMS4wKSkgKyAoczIgKiBhZGRpdGlvbmFsV2lkdGhJbkJldmVsKSkgLyBncmlkKSkgKGZpeGVkQmV2ID0gZml4KCgxZS0wNiArIGJldmVsSW5zaWRlT2Zmc2V0KSkpIGNvbmQoKCgoYmV2ZWxJbnNpZGVPZmZzZXQgLSBmaXhlZEJldikgPCAxZS0wNikgKGJldmVsSW5zaWRlT2Zmc2V0ID0gKGdyaWQgKiBmaXhlZEJldikpKSAodCAoYmV2ZWxJbnNpZGVPZmZzZXQgPSAoZ3JpZCAqICgxLjAgKyBmaXhlZEJldikpKSkpIChjYW5ub3RCZXZlbExlbmd0aCA9IChyaW5nV2lkdGggLSBiZXZlbEluc2lkZU9mZnNldCkpIGNvbmQoKChsbEJldmVsID0gKGxsQmV2ZWxMZW5ndGggPiBjYW5ub3RCZXZlbExlbmd0aCkpIChhcnJheVNpemUgPSA0KSkgKHQgKGFycmF5U2l6ZSA9IDIpKSkgY29uZCgoKGxyQmV2ZWwgPSAobHJCZXZlbExlbmd0aCA+IGNhbm5vdEJldmVsTGVuZ3RoKSkgKGFycmF5U2l6ZSA9IChhcnJheVNpemUgKyA0KSkpICh0IChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgMikpKSkgY29uZCgoKHVyQmV2ZWwgPSAodXJCZXZlbExlbmd0aCA+IGNhbm5vdEJldmVsTGVuZ3RoKSkgKGFycmF5U2l6ZSA9IChhcnJheVNpemUgKyA0KSkpICh0IChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgMikpKSkgY29uZCgoKHVsQmV2ZWwgPSAodWxCZXZlbExlbmd0aCA+IGNhbm5vdEJldmVsTGVuZ3RoKSkgKGFycmF5U2l6ZSA9IChhcnJheVNpemUgKyA0KSkpICh0IChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgMikpKSkgKGluc2lkZUluZGV4ID0gKGFycmF5U2l6ZSAvIDIpKSAob3V0c2lkZUluZGV4ID0gKGluc2lkZUluZGV4ICsgMSkpIChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgMykpIGRlY2xhcmUodGhlUmluZ1BvaW50c1thcnJheVNpemVdKSAodGhlT3V0c2lkZVggPSB4T2Zmc2V0KSAodGhlT3V0c2lkZVkgPSB5T2Zmc2V0KSBjb25kKCghbGxCZXZlbCAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCArIHJpbmdXaWR0aCkpICh0aGVJbnNpZGVZID0gKHRoZU91dHNpZGVZICsgcmluZ1dpZHRoKSkgKGJlZ2lubmluZ0luc2lkZVBvaW50ID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpIChiZWdpbm5pbmdPdXRzaWRlUG9pbnQgPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludCkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9IGJlZ2lubmluZ091dHNpZGVQb2ludCkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAodGhlT3V0c2lkZVkgPSAodGhlT3V0c2lkZVkgKyBsbEJldmVsTGVuZ3RoKSkgKHRoZUluc2lkZVkgPSAodGhlT3V0c2lkZVkgKyBiZXZlbEluc2lkZU9mZnNldCkpICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYICsgcmluZ1dpZHRoKSkgKGJlZ2lubmluZ0luc2lkZVBvaW50ID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpIChiZWdpbm5pbmdPdXRzaWRlUG9pbnQgPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSBjb25kKChiZXZlbFRoZU91dHNpZGVOb0luc2lkZSAodGhlSW5zaWRlWTEgPSAoeU9mZnNldCArIHJpbmdXaWR0aCkpIChiZWdpbm5pbmdJbnNpZGVQb2ludDEgPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZMSkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50MSkpICh0ICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50KSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSB3aGVuKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gYmVnaW5uaW5nT3V0c2lkZVBvaW50KSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHRoZU91dHNpZGVYID0gKHRoZU91dHNpZGVYICsgbGxCZXZlbExlbmd0aCkpICh0aGVPdXRzaWRlWSA9IHlPZmZzZXQpICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYICsgYmV2ZWxJbnNpZGVPZmZzZXQpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSArIHJpbmdXaWR0aCkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50MSkpICh0ICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSBjb25kKChiZXZlbFRoZU91dHNpZGUgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpKSAodCAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHhPZmZzZXQ6dGhlT3V0c2lkZVkpKSAoYmVnaW5uaW5nT3V0c2lkZVBvaW50ID0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgoIWxyQmV2ZWwgKHRoZU91dHNpZGVYID0gKHhPZmZzZXQgKyBsKSkgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggLSByaW5nV2lkdGgpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHQgKHRoZU91dHNpZGVYID0gKHhPZmZzZXQgKyBsICsgKC0gbHJCZXZlbExlbmd0aCkpKSAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCAtIGJldmVsSW5zaWRlT2Zmc2V0KSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgKHRoZUluc2lkZVgxID0gKHhPZmZzZXQgKyBsICsgKC0gcmluZ1dpZHRoKSkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYMTp0aGVJbnNpZGVZKSkpICh0ICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSB3aGVuKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0aGVPdXRzaWRlWCA9ICh0aGVPdXRzaWRlWCArIGxyQmV2ZWxMZW5ndGgpKSAodGhlT3V0c2lkZVkgPSAodGhlT3V0c2lkZVkgKyBsckJldmVsTGVuZ3RoKSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVgxOnRoZUluc2lkZVkpKSkgKHQgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggLSByaW5nV2lkdGgpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSArIGJldmVsSW5zaWRlT2Zmc2V0KSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkpICh0ICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6eU9mZnNldCkpKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKCghdXJCZXZlbCAodGhlT3V0c2lkZVkgPSAoeU9mZnNldCArIHcpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSAtIHJpbmdXaWR0aCkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAodGhlT3V0c2lkZVkgPSAoeU9mZnNldCArIHcgKyAoLSB1ckJldmVsTGVuZ3RoKSkpICh0aGVJbnNpZGVZID0gKHRoZU91dHNpZGVZIC0gYmV2ZWxJbnNpZGVPZmZzZXQpKSBjb25kKChiZXZlbFRoZU91dHNpZGVOb0luc2lkZSAodGhlSW5zaWRlWTEgPSAoeU9mZnNldCArIHcgKyAoLSByaW5nV2lkdGgpKSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVgxOnRoZUluc2lkZVkxKSkpICh0ICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSB3aGVuKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0aGVPdXRzaWRlWSA9ICh5T2Zmc2V0ICsgdykpICh0aGVPdXRzaWRlWCA9ICh0aGVPdXRzaWRlWCAtIHVyQmV2ZWxMZW5ndGgpKSBjb25kKChiZXZlbFRoZU91dHNpZGVOb0luc2lkZSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDE6dGhlSW5zaWRlWTEpKSkgKHQgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggLSBiZXZlbEluc2lkZU9mZnNldCkpICh0aGVJbnNpZGVZID0gKHRoZU91dHNpZGVZIC0gcmluZ1dpZHRoKSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkpICh0ICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAoKHhPZmZzZXQgKyBsKTp0aGVPdXRzaWRlWSkpKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKCghdWxCZXZlbCAodGhlT3V0c2lkZVggPSB4T2Zmc2V0KSAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCArIHJpbmdXaWR0aCkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAodGhlT3V0c2lkZVggPSAoeE9mZnNldCArIHVsQmV2ZWxMZW5ndGgpKSAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCArIGJldmVsSW5zaWRlT2Zmc2V0KSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgKHRoZUluc2lkZVgxID0gKHhPZmZzZXQgKyByaW5nV2lkdGgpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDE6dGhlSW5zaWRlWTEpKSkgKHQgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIHdoZW4oYmV2ZWxUaGVPdXRzaWRlICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHRoZU91dHNpZGVYID0geE9mZnNldCkgKHRoZU91dHNpZGVZID0gKHRoZU91dHNpZGVZIC0gdWxCZXZlbExlbmd0aCkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYMTp0aGVJbnNpZGVZMSkpKSAodCAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCArIHJpbmdXaWR0aCkpICh0aGVJbnNpZGVZID0gKHRoZU91dHNpZGVZIC0gYmV2ZWxJbnNpZGVPZmZzZXQpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSkgKHQgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDooeU9mZnNldCArIHcpKSkpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50MSkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9IGJlZ2lubmluZ091dHNpZGVQb2ludCkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50MSkpICh0ICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50KSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gYmVnaW5uaW5nT3V0c2lkZVBvaW50KSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gYmVnaW5uaW5nSW5zaWRlUG9pbnQpKSkgY29uZCgoYnJlYWt1cFBvbHlnb25zIChpbnNpZGVJbmRleCA9ICgoYXJyYXlTaXplIC0gMykgLyAyKSkgKG91dHNpZGVJbmRleCA9IChpbnNpZGVJbmRleCArIDEpKSBjb25kKChiZXZlbFRoZU91dHNpZGUgY29uZCgobGxCZXZlbCAocmluZ0xpc3QxID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDIpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDIpKSkgKHQgKHJpbmdMaXN0MSA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpIGNvbmQoKGxyQmV2ZWwgKHJpbmdMaXN0MiA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAyKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAyKSkpICh0IChyaW5nTGlzdDIgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKCh1ckJldmVsIChyaW5nTGlzdDMgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMikpKSAodCAocmluZ0xpc3QzID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgodWxCZXZlbCAocmluZ0xpc3Q0ID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDIpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDIpKSkgKHQgKHJpbmdMaXN0NCA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpKSAodCBjb25kKChsbEJldmVsIChyaW5nTGlzdDEgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAyKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0IChyaW5nTGlzdDEgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKChsckJldmVsIChyaW5nTGlzdDIgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAyKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0IChyaW5nTGlzdDIgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKCh1ckJldmVsIChyaW5nTGlzdDMgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAyKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0IChyaW5nTGlzdDMgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKCh1bEJldmVsIChyaW5nTGlzdDQgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAyKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0IChyaW5nTGlzdDQgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSkpIHdoZW4ocmluZ0xheWVyIChuZXQgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgInBwZCIpKSAoZGJDcmVhdGVUZXJtIG5ldCAiIiAiaW5wdXRPdXRwdXQiKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyByaW5nTGF5ZXIgcmluZ0xpc3QxKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHJpbmdMYXllciByaW5nTGlzdDIpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgcmluZ0xheWVyIHJpbmdMaXN0MykpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyByaW5nTGF5ZXIgcmluZ0xpc3Q0KSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInJpbmdQb2ludHMxIiAibGlzdCIgcmluZ0xpc3QxKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInJpbmdQb2ludHMyIiAibGlzdCIgcmluZ0xpc3QyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInJpbmdQb2ludHMzIiAibGlzdCIgcmluZ0xpc3QzKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInJpbmdQb2ludHM0IiAibGlzdCIgcmluZ0xpc3Q0KSkgKHQgKHJpbmdMaXN0ID0gbmlsKSBmb3IoaSAxIG91dHNpZGVJbmRleCAocmluZ0xpc3QgPSBjb25zKHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCAtIGkpXSByaW5nTGlzdCkpKSB3aGVuKHJpbmdMYXllciAobmV0ID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJwcGQiKSkgKGRiQ3JlYXRlVGVybSBuZXQgIiIgImlucHV0T3V0cHV0IikgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgcmluZ0xheWVyIHJpbmdMaXN0KSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInJpbmdQb2ludHMiICJsaXN0IiByaW5nTGlzdCkpKSkAKHcgbCB4T2Zmc2V0IHlPZmZzZXQgcmluZ0xheWVyIHJpbmdXaWR0aCBhZGRpdGlvbmFsV2lkdGhJbkJldmVsIGxsQmV2ZWxMZW5ndGggdWxCZXZlbExlbmd0aCBsckJldmVsTGVuZ3RoIHVyQmV2ZWxMZW5ndGggYmV2ZWxUaGVPdXRzaWRlIGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlIGdyaWQgYnJlYWt1cFBvbHlnb25zIHMyIGJldmVsSW5zaWRlT2Zmc2V0IGZpeGVkQmV2IGNhbm5vdEJldmVsTGVuZ3RoIGxsQmV2ZWwgYXJyYXlTaXplIGxyQmV2ZWwgdXJCZXZlbCB1bEJldmVsIGluc2lkZUluZGV4IG91dHNpZGVJbmRleCB0aGVSaW5nUG9pbnRzIHRoZU91dHNpZGVYIHRoZU91dHNpZGVZIHRoZUluc2lkZVggdGhlSW5zaWRlWSBiZWdpbm5pbmdJbnNpZGVQb2ludCBiZWdpbm5pbmdPdXRzaWRlUG9pbnQgdGhlSW5zaWRlWTEgYmVnaW5uaW5nSW5zaWRlUG9pbnQxIHRoZUluc2lkZVgxIHJpbmdMaXN0MSByaW5nTGlzdDIgcmluZ0xpc3QzIHJpbmdMaXN0NCBuZXQgZGJpZCByaW5nTGlzdCBpKQAoKHcgNTAuMCkgKGwgNTAuMCkgKHhPZmZzZXQgMC4wKSAoeU9mZnNldCAwLjApIChyaW5nTGF5ZXIgbGlzdCgiaGlsaXRlIiAiZHJhd2luZyIpKSAocmluZ1dpZHRoIDQuMCkgKGFkZGl0aW9uYWxXaWR0aEluQmV2ZWwgMC4wKSAobGxCZXZlbExlbmd0aCAwLjApICh1bEJldmVsTGVuZ3RoIDAuMCkgKGxyQmV2ZWxMZW5ndGggMC4wKSAodXJCZXZlbExlbmd0aCAwLjApIChiZXZlbFRoZU91dHNpZGUgIkZBTFNFIikgKGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlICJGQUxTRSIpIChncmlkIDAuMDUpIChicmVha3VwUG9seWdvbnMgIkZBTFNFIikpAChpZigoKHZpYTFJbXBsYW50U2luZ2xlID09IHQpIHx8ICh2aWExSW1wbGFudFNpbmdsZSA9PSAiVFJVRSIpKSB0aGVuICh2aWExSW1wbGFudFNpbmdsZSA9IHQpIGVsc2UgKHZpYTFJbXBsYW50U2luZ2xlID0gbmlsKSkgaWYoKCh3bERyaXZlbiA9PSB0KSB8fCAod2xEcml2ZW4gPT0gIlRSVUUiKSkgdGhlbiAod2xEcml2ZW4gPSB0KSBlbHNlICh3bERyaXZlbiA9IG5pbCkpIHdoZW4oKChjb250YWN0T25YWSA9PSB0KSB8fCAoY29udGFjdE9uWFkgPT0gIlRSVUUiKSkgKGNvbnRhY3RPblggPSB0KSAoY29udGFjdE9uWSA9IHQpKSAodXNlU2hyaW5rTGF5ZXIxID0gbmlsKSBpZigoKChtaW5MICE9IG5pbCkgJiYgKG1pbkwgPiAwLjApKSAmJiAoKG1pblcgIT0gbmlsKSAmJiAobWluVyA+IDAuMCkpKSB0aGVuICh1c2VTaHJpbmtMYXllcjEgPSB0KSBlbHNlICh1c2VTaHJpbmtMYXllcjEgPSBuaWwpKSBpZigodXNlU2hyaW5rTGF5ZXIxID09IHQpIHRoZW4gd2hlbigobWludmlhMUxheTFYRW5jICYmIChub3Qgd2xEcml2ZW4pICYmIChjb2x1bW4gPT0gMSkpICh2aWExTGF5MVhFbmMgPSBtaW52aWExTGF5MVhFbmMpKSB3aGVuKChtaW52aWEyTGF5MlhFbmMgJiYgKG5vdCB3bERyaXZlbikgJiYgKGNvbHVtbiA9PSAxKSkgKHZpYTJMYXkyWEVuYyA9IG1pbnZpYTJMYXkyWEVuYykpKSBpZigodXNlU2hyaW5rTGF5ZXIxID09IHQpIHRoZW4gd2hlbigod2xEcml2ZW4gJiYgKG1pblcgfHwgbWluTCkpIHdoZW4obWluVyAoVyA9IG1heChXIG1pblcpKSkgd2hlbihtaW5MIChMID0gbWF4KEwgbWluTCkpKSkpIChhbGxEaXIgPSBsaXN0KCJyaWdodCIgImxlZnQiICJ0b3AiICJib3R0b20iKSkgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIHdoZW4oc3RyaW5ncChsYXllcjEpIChsYXllcjEgPSBsaXN0KGxheWVyMSAiZHJhd2luZyIpKSkgd2hlbihzdHJpbmdwKGxheWVyMikgKGxheWVyMiA9IGxpc3QobGF5ZXIyICJkcmF3aW5nIikpKSB3aGVuKHN0cmluZ3AobGF5ZXIzKSAobGF5ZXIzID0gbGlzdChsYXllcjMgImRyYXdpbmciKSkpIHdoZW4oc3RyaW5ncCh2aWExQ29uTGF5ZXIpICh2aWExQ29uTGF5ZXIgPSBsaXN0KHZpYTFDb25MYXllciAiZHJhd2luZyIpKSkgaWYoKCh2aWExT2ZmID09IHQpIHx8ICh2aWExT2ZmID09ICJUUlVFIikpIHRoZW4gKHZpYTFPZmYgPSBpZigodmlhMUNvbkxheWVyICYmIHVzZVZpYTFPZmYpIHQgbmlsKSkgZWxzZSAodmlhMU9mZiA9IG5pbCkpIGlmKCgodmlhMURvUm91dGUgPT0gdCkgfHwgKHZpYTFEb1JvdXRlID09ICJUUlVFIikpIHRoZW4gKHZpYTFEb1JvdXRlID0gdCkgKHZpYTFEb1JvdXRlVyA9IChXICsgKDIgKiB2aWExQ29uTGF5MVlFeHQpKSkgZWxzZSAodmlhMURvUm91dGUgPSBuaWwpKSBpZigoKGNlbnRlciA9PSB0KSB8fCAoY2VudGVyID09ICJUUlVFIikpIHRoZW4gKGNlbnRlciA9IHQpIGVsc2UgKGNlbnRlciA9IG5pbCkpIGlmKCgoaW5XZWxsID09IHQpIHx8IChpbldlbGwgPT0gIlRSVUUiKSkgdGhlbiAoaW5XZWxsID0gdCkgZWxzZSAoaW5XZWxsID0gbmlsKSkgaWYoKChpbXBsYW50ID09IHQpIHx8IChpbXBsYW50ID09ICJUUlVFIikpIHRoZW4gKGltcGxhbnQgPSB0KSBlbHNlIChpbXBsYW50ID0gbmlsKSkgaWYoKCh2aWExQ29uSW1wbGFudE9uID09IHQpIHx8ICh2aWExQ29uSW1wbGFudE9uID09ICJUUlVFIikpIHRoZW4gKHZpYTFDb25JbXBsYW50T24gPSB0KSBlbHNlICh2aWExQ29uSW1wbGFudE9uID0gbmlsKSkgaWYoKCh2aWExSW1wbGFudE9uID09IHQpIHx8ICh2aWExSW1wbGFudE9uID09ICJUUlVFIikpIHRoZW4gKHZpYTFJbXBsYW50T24gPSB0KSBlbHNlICh2aWExSW1wbGFudE9uID0gbmlsKSkgd2hlbihsYXllcjFJbXBsYW50IGlmKCh3ZWxsTGF5ZXIgJiYgaW5XZWxsKSB0aGVuIChsYXllcjFJbXBsYW50ID0gaWYoY2FkcihsYXllcjFJbXBsYW50KSBjYWRyKGxheWVyMUltcGxhbnQpIGNhcihsYXllcjFJbXBsYW50KSkpIChsYXllcjFJbXBFbmMgPSBpZihjYWRyKGxheWVyMUltcEVuYykgY2FkcihsYXllcjFJbXBFbmMpIGNhcihsYXllcjFJbXBFbmMpKSkgZWxzZSAobGF5ZXIxSW1wbGFudCA9IGNhcihsYXllcjFJbXBsYW50KSkgKGxheWVyMUltcEVuYyA9IGNhcihsYXllcjFJbXBFbmMpKSkpIGNvbmQoKCh2aWExTGF5MUVuYyA9PSAwLjApICh2aWExTGF5MVhFbmMgPSB2aWExTGF5MVhFbmMpICh2aWExTGF5MVlFbmMgPSB2aWExTGF5MVlFbmMpKSAodCAodmlhMUxheTFYRW5jID0gdmlhMUxheTFFbmMpICh2aWExTGF5MVlFbmMgPSB2aWExTGF5MUVuYykpKSBjb25kKCgodmlhMUxheTJFbmMgPT0gMC4wKSAodmlhMUxheTJYRW5jID0gdmlhMUxheTJYRW5jKSAodmlhMUxheTJZRW5jID0gdmlhMUxheTJZRW5jKSkgKHQgKHZpYTFMYXkyWEVuYyA9IHZpYTFMYXkyRW5jKSAodmlhMUxheTJZRW5jID0gdmlhMUxheTJFbmMpKSkgY29uZCgoKHZpYTJMYXkyRW5jID09IDAuMCkgKHZpYTJMYXkyWEVuYyA9IHZpYTJMYXkyWEVuYykgKHZpYTJMYXkyWUVuYyA9IHZpYTJMYXkyWUVuYykpICh0ICh2aWEyTGF5MlhFbmMgPSB2aWEyTGF5MkVuYykgKHZpYTJMYXkyWUVuYyA9IHZpYTJMYXkyRW5jKSkpIGNvbmQoKCh2aWEyTGF5M0VuYyA9PSAwLjApICh2aWEyTGF5M1hFbmMgPSB2aWEyTGF5M1hFbmMpICh2aWEyTGF5M1lFbmMgPSB2aWEyTGF5M1lFbmMpKSAodCAodmlhMkxheTNYRW5jID0gdmlhMkxheTNFbmMpICh2aWEyTGF5M1lFbmMgPSB2aWEyTGF5M0VuYykpKSBjb25kKCgodmlhMUNvbkVuYyA9PSAwLjApICh2aWExQ29uWEVuYyA9IHZpYTFDb25YRW5jKSAodmlhMUNvbllFbmMgPSB2aWExQ29uWUVuYykpICh0ICh2aWExQ29uWEVuYyA9IHZpYTFDb25FbmMpICh2aWExQ29uWUVuYyA9IHZpYTFDb25FbmMpKSkgY29uZCgoKHZpYTFDb25MYXkxRW5jID09IDAuMCkgKHZpYTFDb25MYXkxWEVuYyA9IHZpYTFDb25MYXkxWEVuYykgKHZpYTFDb25MYXkxWUVuYyA9IHZpYTFDb25MYXkxWUVuYykpICh0ICh2aWExQ29uTGF5MVhFbmMgPSB2aWExQ29uTGF5MUVuYykgKHZpYTFDb25MYXkxWUVuYyA9IHZpYTFDb25MYXkxRW5jKSkpIHdoZW4odmlhMUNvbkxheWVyICh2aWExTGF5MVhFbmMgPSBpZih2aWExRG9Sb3V0ZSB2aWExQ29uWEVuYyAodmlhMUNvbkxheTFYRW5jICsgdmlhMUNvblhFbmMpKSkgKHZpYTFMYXkxWUVuYyA9IGlmKHZpYTFEb1JvdXRlIHZpYTFDb25ZRW5jICh2aWExQ29uTGF5MVlFbmMgKyB2aWExQ29uWUVuYykpKSAodmlhMUxheTFFbmNTcSA9IGlmKHZpYTFEb1JvdXRlIHZpYTFDb25FbmNTcSAodmlhMUNvbkxheTFFbmNTcSArIHZpYTFDb25FbmNTcSkpKSkgd2hlbighbGF5ZXIzIChyb3RhdGVNaWRkbGUgPSByb3RhdGVUb3ApIChyb3RhdGVUb3AgPSBuaWwpKSB3aGVuKCgocm90YXRlVG9wID09IHQpIHx8IChyb3RhdGVUb3AgPT0gIlRSVUUiKSkgKHN3YXBUZW1wID0gdmlhMkxheTNYRW5jKSAodmlhMkxheTNYRW5jID0gdmlhMkxheTNZRW5jKSAodmlhMkxheTNZRW5jID0gc3dhcFRlbXApKSB3aGVuKCgocm90YXRlTWlkZGxlID09IHQpIHx8IChyb3RhdGVNaWRkbGUgPT0gIlRSVUUiKSkgKHN3YXBUZW1wID0gdmlhMUxheTJYRW5jKSAodmlhMUxheTJYRW5jID0gdmlhMUxheTJZRW5jKSAodmlhMUxheTJZRW5jID0gc3dhcFRlbXApIChzd2FwVGVtcCA9IHZpYTJMYXkyWEVuYykgKHZpYTJMYXkyWEVuYyA9IHZpYTJMYXkyWUVuYykgKHZpYTJMYXkyWUVuYyA9IHN3YXBUZW1wKSkgd2hlbigoKGVxRW5jID09IHQpIHx8IChlcUVuYyA9PSAiVFJVRSIpKSAoc3FCb3R0b20gPSB0KSBpZih1c2VTcXVhcmVFbmMgdGhlbiAodmlhMUxheTJYRW5jID0gdmlhMUxheTJFbmNTcSkgKHZpYTFMYXkyWUVuYyA9IHZpYTFMYXkyRW5jU3EpICh2aWEyTGF5MlhFbmMgPSB2aWEyTGF5MkVuY1NxKSAodmlhMkxheTJZRW5jID0gdmlhMkxheTJFbmNTcSkgKHZpYTJMYXkzWEVuYyA9IHZpYTJMYXkzRW5jU3EpICh2aWEyTGF5M1lFbmMgPSB2aWEyTGF5M0VuY1NxKSBlbHNlICh2aWExTGF5MlhFbmMgPSBtYXgodmlhMUxheTJYRW5jIHZpYTFMYXkyWUVuYykpICh2aWExTGF5MllFbmMgPSB2aWExTGF5MlhFbmMpICh2aWEyTGF5MlhFbmMgPSBtYXgodmlhMkxheTJYRW5jIHZpYTJMYXkyWUVuYykpICh2aWEyTGF5MllFbmMgPSB2aWEyTGF5MlhFbmMpICh2aWEyTGF5M1hFbmMgPSBtYXgodmlhMkxheTNYRW5jIHZpYTJMYXkzWUVuYykpICh2aWEyTGF5M1lFbmMgPSB2aWEyTGF5M1hFbmMpKSkgd2hlbigoKHNxQm90dG9tID09IHQpIHx8IChzcUJvdHRvbSA9PSAiVFJVRSIpKSBpZih1c2VTcXVhcmVFbmMgdGhlbiAodmlhMUxheTFFcVhPZmYgPSAodmlhMUxheTFFbmNTcSAtIHZpYTFMYXkxWEVuYykpICh2aWExTGF5MUVxWU9mZiA9ICh2aWExTGF5MUVuY1NxIC0gdmlhMUxheTFZRW5jKSkgKHZpYTFMYXkxWEVuYyA9IHZpYTFMYXkxRW5jU3EpICh2aWExTGF5MVlFbmMgPSB2aWExTGF5MUVuY1NxKSBlbHNlICh2aWExTGF5MUVxWE9mZiA9IG1heCgwLjAgKHZpYTFMYXkxWUVuYyAtIHZpYTFMYXkxWEVuYykpKSAodmlhMUxheTFFcVlPZmYgPSBtYXgoMC4wICh2aWExTGF5MVhFbmMgLSB2aWExTGF5MVlFbmMpKSkgKHZpYTFMYXkxWEVuYyA9IG1heCh2aWExTGF5MVhFbmMgdmlhMUxheTFZRW5jKSkgKHZpYTFMYXkxWUVuYyA9IHZpYTFMYXkxWEVuYykpKSAodmlhMVBpdGNoVyA9ICh2aWExV2lkdGggKyB2aWExU3BhY2VZKSkgKHZpYTFQaXRjaEwgPSAodmlhMUxlbmd0aCArIHZpYTFTcGFjZVgpKSBpZih2aWEyTGF5ZXIgdGhlbiAodmlhMlBpdGNoVyA9ICh2aWEyV2lkdGggKyB2aWEyU3BhY2VZKSkgKHZpYTJQaXRjaEwgPSAodmlhMkxlbmd0aCArIHZpYTJTcGFjZVgpKSBpZih3bERyaXZlbiB0aGVuICh2aWFXMSA9IChpZih2aWExRG9Sb3V0ZSB2aWExRG9Sb3V0ZVcgVykgLSAoMiAqIHZpYTFMYXkxWUVuYykpKSAodmlhTDEgPSAoTCAtICgyICogdmlhMUxheTFYRW5jKSkpICh2aWFXMiA9IChpZih2aWExRG9Sb3V0ZSB2aWExRG9Sb3V0ZVcgVykgLSAoMiAqIG1heCh2aWEyTGF5M1lFbmMgdmlhMkxheTJZRW5jKSkpKSAodmlhTDIgPSAoTCAtICgyICogbWF4KHZpYTJMYXkzWEVuYyB2aWEyTGF5MlhFbmMpKSkpICh2aWExUm93ID0gbWF4KDEgZml4KCgoKHZpYVcxICsgdmlhMVNwYWNlWSkgLyB2aWExUGl0Y2hXKSArIDFlLTA2KSkpKSAodmlhMUNvbHVtbiA9IG1heCgxIGZpeCgoKCh2aWFMMSArIHZpYTFTcGFjZVgpIC8gdmlhMVBpdGNoTCkgKyAxZS0wNikpKSkgKHZpYTJSb3cgPSBtYXgoMSBmaXgoKCgodmlhVzIgKyB2aWEyU3BhY2VZKSAvIHZpYTJQaXRjaFcpICsgMWUtMDYpKSkpICh2aWEyQ29sdW1uID0gbWF4KDEgZml4KCgoKHZpYUwyICsgdmlhMlNwYWNlWCkgLyB2aWEyUGl0Y2hMKSArIDFlLTA2KSkpKSBlbHNlICh2aWFXID0gbWluKCh2aWExV2lkdGggKyAoKHJvdyAtIDEpICogdmlhMVBpdGNoVykpICh2aWEyV2lkdGggKyAoKHJvdyAtIDEpICogdmlhMlBpdGNoVykpKSkgKHZpYUwgPSBtaW4oKHZpYTFMZW5ndGggKyAoKGNvbHVtbiAtIDEpICogdmlhMVBpdGNoTCkpICh2aWEyTGVuZ3RoICsgKChjb2x1bW4gLSAxKSAqIHZpYTJQaXRjaEwpKSkpICh2aWExUm93ID0gbWF4KDEgZml4KCgoKHZpYVcgKyB2aWExU3BhY2VZKSAvIHZpYTFQaXRjaFcpICsgMWUtMDYpKSkpICh2aWExQ29sdW1uID0gbWF4KDEgZml4KCgoKHZpYUwgKyB2aWExU3BhY2VYKSAvIHZpYTFQaXRjaEwpICsgMWUtMDYpKSkpICh2aWEyUm93ID0gbWF4KDEgZml4KCgoKHZpYVcgKyB2aWEyU3BhY2VZKSAvIHZpYTJQaXRjaFcpICsgMWUtMDYpKSkpICh2aWEyQ29sdW1uID0gbWF4KDEgZml4KCgoKHZpYUwgKyB2aWEyU3BhY2VYKSAvIHZpYTJQaXRjaEwpICsgMWUtMDYpKSkpKSBlbHNlIGlmKHdsRHJpdmVuIHRoZW4gKHZpYVcxID0gKGlmKHZpYTFEb1JvdXRlIHZpYTFEb1JvdXRlVyBXKSAtICgyICogdmlhMUxheTFZRW5jKSkpICh2aWFMMSA9IChMIC0gKDIgKiB2aWExTGF5MVhFbmMpKSkgKHZpYTFSb3cgPSBtYXgoMSBmaXgoKCgodmlhVzEgKyB2aWExU3BhY2VZKSAvIHZpYTFQaXRjaFcpICsgMWUtMDYpKSkpICh2aWExQ29sdW1uID0gbWF4KDEgZml4KCgoKHZpYUwxICsgdmlhMVNwYWNlWCkgLyB2aWExUGl0Y2hMKSArIDFlLTA2KSkpKSBlbHNlICh2aWExUm93ID0gcm93KSAodmlhMUNvbHVtbiA9IGNvbHVtbikpKSB3aGVuKHdsRHJpdmVuICh2aWExTGF5MVlFbmMgPSAoKFcgLSAodmlhMVdpZHRoICsgKCh2aWExUm93IC0gMSkgKiB2aWExUGl0Y2hXKSkpIC8gMikpICh2aWExTGF5MVhFbmMgPSAoKEwgLSAodmlhMUxlbmd0aCArICgodmlhMUNvbHVtbiAtIDEpICogdmlhMVBpdGNoTCkpKSAvIDIpKSAodmlhMUxheTFZRW5jID0gKGZpeCgoKHZpYTFMYXkxWUVuYyAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpICh2aWExTGF5MVhFbmMgPSAoZml4KCgodmlhMUxheTFYRW5jIC8gc25hcEdyaWQpICsgMWUtMDYpKSAqIHNuYXBHcmlkKSkgKHZpYTFXUmVzdCA9IChXIC0gKHZpYTFXaWR0aCArICgodmlhMVJvdyAtIDEpICogdmlhMVBpdGNoVykgKyAodmlhMUxheTFZRW5jICogMikpKSkgKHZpYTFMUmVzdCA9IChMIC0gKHZpYTFMZW5ndGggKyAoKHZpYTFDb2x1bW4gLSAxKSAqIHZpYTFQaXRjaEwpICsgKHZpYTFMYXkxWEVuYyAqIDIpKSkpKSBpZihjb250YWN0T25YIChsYXllcjFYMSA9ICgtIHZpYTFMYXkxWEVuYykpIChsYXllcjFYMSA9IDAuMCkpIGlmKGNvbnRhY3RPblkgKGxheWVyMVkxID0gKC0gdmlhMUxheTFZRW5jKSkgKGxheWVyMVkxID0gMC4wKSkgd2hlbih2aWExTGF5MUVxWE9mZiAobGF5ZXIxWDEgPSAobGF5ZXIxWDEgLSB2aWExTGF5MUVxWE9mZikpKSB3aGVuKHZpYTFMYXkxRXFZT2ZmIChsYXllcjFZMSA9IChsYXllcjFZMSAtIHZpYTFMYXkxRXFZT2ZmKSkpIChsYXllcjFYT2ZmID0gMC4wKSAobGF5ZXIxWU9mZiA9IDAuMCkgKGxheWVyMVgyID0gKGxheWVyMVgxICsgKDIgKiB2aWExTGF5MVhFbmMpICsgaWYodmlhMUxSZXN0IHZpYTFMUmVzdCAwLjApICsgdmlhMUxlbmd0aCArICgodmlhMUNvbHVtbiAtIDEpICogdmlhMVBpdGNoTCkpKSAobGF5ZXIxWTIgPSAobGF5ZXIxWTEgKyAoMiAqIHZpYTFMYXkxWUVuYykgKyBpZih2aWExV1Jlc3QgdmlhMVdSZXN0IDAuMCkgKyB2aWExV2lkdGggKyAoKHZpYTFSb3cgLSAxKSAqIHZpYTFQaXRjaFcpKSkgKHZpYTFYMSA9IChsYXllcjFYMSArIHZpYTFMYXkxWEVuYykpICh2aWExWTEgPSAobGF5ZXIxWTEgKyB2aWExTGF5MVlFbmMpKSAodmlhMUNvblhPZmYgPSAwLjApICh2aWExQ29uWU9mZiA9IDAuMCkgKHRoZVggPSB2aWExWDEpIGZvcihjb2wgMSB2aWExQ29sdW1uICh0aGVZID0gdmlhMVkxKSBmb3IociAxIHZpYTFSb3cgKHZpYTFYWSA9IGxpc3QobGlzdCh0aGVYIHRoZVkpIGxpc3QoKHRoZVggKyB2aWExTGVuZ3RoKSAodGhlWSArIHZpYTFXaWR0aCkpKSkgd2hlbighdmlhMU9mZiAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgdmlhMVhZKSkpIHdoZW4oKHZpYTFDb25MYXllciAmJiAoIXZpYTFDb25BbGwgJiYgIXZpYTFDb25Db2wpKSAodmlhMUNvblgxID0gKGNhYXIodmlhMVhZKSAtIHZpYTFDb25YRW5jKSkgKHZpYTFDb25ZMSA9IChjYWRhcih2aWExWFkpIC0gdmlhMUNvbllFbmMpKSAodmlhMUNvblgyID0gKGNhYWRyKHZpYTFYWSkgKyB2aWExQ29uWEVuYykpICh2aWExQ29uWTIgPSAoY2FkYWRyKHZpYTFYWSkgKyB2aWExQ29uWUVuYykpIChkYklkQ29uID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFDb25MYXllciBsaXN0KGxpc3QodmlhMUNvblgxIHZpYTFDb25ZMSkgbGlzdCh2aWExQ29uWDIgdmlhMUNvblkyKSkpKSkgd2hlbigoKHZpYTFJbXBsYW50T24gfHwgaW1wbGFudCkgJiYgdmlhMUxheWVySW1wbGFudCAmJiB2aWExSW1wbGFudFNpbmdsZSkgKHZpYTFJbXBYMSA9IChjYWFyKHZpYTFYWSkgLSB2aWExTGF5ZXJJbXBFbmMpKSAodmlhMUltcFkxID0gKGNhZGFyKHZpYTFYWSkgLSB2aWExTGF5ZXJJbXBFbmMpKSAodmlhMUltcFgyID0gKGNhYWRyKHZpYTFYWSkgKyB2aWExTGF5ZXJJbXBFbmMpKSAodmlhMUltcFkyID0gKGNhZGFkcih2aWExWFkpICsgdmlhMUxheWVySW1wRW5jKSkgKGRiSWRJbXAgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVySW1wbGFudCBsaXN0KGxpc3QodmlhMUltcFgxIHZpYTFJbXBZMSkgbGlzdCh2aWExSW1wWDIgdmlhMUltcFkyKSkpKSkgKHRoZVkgPSAodGhlWSArIHZpYTFQaXRjaFcpKSkgd2hlbigodmlhMUNvbkxheWVyICYmICghdmlhMUNvbkFsbCAmJiB2aWExQ29uQ29sKSkgKHZpYTFDb25ZT2ZmID0gMC4wKSAodmlhMUNvblhPZmYgPSAwLjApICh2aWExQ29uWDEgPSAodGhlWCAtIHZpYTFDb25YRW5jKSkgKHZpYTFDb25ZMSA9ICh2aWExWTEgLSB2aWExQ29uWUVuYykpICh2aWExQ29uWDIgPSAoY2FhZHIodmlhMVhZKSArIHZpYTFDb25YRW5jKSkgKHZpYTFDb25ZMiA9IChjYWRhZHIodmlhMVhZKSArIHZpYTFDb25ZRW5jKSkgKHZpYTFDb25XID0gKHZpYTFDb25ZMiAtIHZpYTFDb25ZMSkpICh2aWExQ29uTCA9ICh2aWExQ29uWDIgLSB2aWExQ29uWDEpKSBpZigodmlhMUNvbkwgPCB2aWExQ29uVykgdGhlbiAodmlhMUNvbllPZmYgPSBtYXgoMC4wICgodmlhMUNvbk1pbkwgLSB2aWExQ29uVykgLyAyKSkpIHdoZW4oKHZpYTFDb25ZT2ZmICE9IDAuMCkgKHZpYTFDb25ZT2ZmID0gKChjZWlsaW5nICgodmlhMUNvbllPZmYgLyBzbmFwR3JpZCkgKyAxZS0wNikpICogc25hcEdyaWQpKSkgZWxzZSAodmlhMUNvblhPZmYgPSBtYXgoMC4wICgodmlhMUNvbk1pbkwgLSB2aWExQ29uTCkgLyAyKSkpIHdoZW4oKHZpYTFDb25YT2ZmICE9IDAuMCkgKHZpYTFDb25YT2ZmID0gKChjZWlsaW5nICgodmlhMUNvblhPZmYgLyBzbmFwR3JpZCkgKyAxZS0wNikpICogc25hcEdyaWQpKSkpICh2aWExQ29uWDEgPSAodmlhMUNvblgxIC0gdmlhMUNvblhPZmYpKSAodmlhMUNvblkxID0gaWYodmlhMURvUm91dGUgKChsYXllcjFZMSAtIHZpYTFDb25MYXkxWUV4dCkgLSB2aWExQ29uWU9mZikgKHZpYTFDb25ZMSAtIHZpYTFDb25ZT2ZmKSkpICh2aWExQ29uWDIgPSAodmlhMUNvblgyICsgdmlhMUNvblhPZmYpKSAodmlhMUNvblkyID0gaWYodmlhMURvUm91dGUgKChsYXllcjFZMiArIHZpYTFDb25MYXkxWUV4dCkgKyB2aWExQ29uWU9mZikgKHZpYTFDb25ZMiArIHZpYTFDb25ZT2ZmKSkpICh2aWExQ29uVyA9ICh2aWExQ29uWTIgLSB2aWExQ29uWTEpKSAodmlhMUNvbkwgPSAodmlhMUNvblgyIC0gdmlhMUNvblgxKSkgd2hlbigoKHZpYTFDb25NYXhMID4gdmlhMUNvbk1pbkwpICYmICgodmlhMUNvblcgPiB2aWExQ29uTWF4TCkgfHwgKHZpYTFDb25MID4gdmlhMUNvbk1heEwpKSkgZXJyb3Ioc3ByaW50ZihuaWwgInJjSW50ZXJDb25FbmhDbGFzczolTCBsb25nZXIgdGhhbiBtYXggYWxsb3dlZCAoJUwpXG4iIHZpYTFDb25MYXllciB2aWExQ29uTWF4TCkpKSAoZGJJZENvbiA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExQ29uTGF5ZXIgbGlzdChsaXN0KHZpYTFDb25YMSB2aWExQ29uWTEpIGxpc3QodmlhMUNvblgyIHZpYTFDb25ZMikpKSkpICh0aGVYID0gKHRoZVggKyB2aWExUGl0Y2hMKSkpIHdoZW4oKHZpYTFDb25MYXllciAmJiAodmlhMUNvbkFsbCAmJiAhdmlhMUNvbkNvbCkpICh2aWExQ29uWU9mZiA9IDAuMCkgKHZpYTFDb25YT2ZmID0gMC4wKSAodmlhMUNvblgxID0gKHZpYTFYMSAtIHZpYTFDb25YRW5jKSkgKHZpYTFDb25ZMSA9ICh2aWExWTEgLSB2aWExQ29uWUVuYykpICh2aWExQ29uWDIgPSAoY2FhZHIodmlhMVhZKSArIHZpYTFDb25YRW5jKSkgKHZpYTFDb25ZMiA9IChjYWRhZHIodmlhMVhZKSArIHZpYTFDb25ZRW5jKSkgKHZpYTFDb25XID0gKHZpYTFDb25ZMiAtIHZpYTFDb25ZMSkpICh2aWExQ29uTCA9ICh2aWExQ29uWDIgLSB2aWExQ29uWDEpKSBpZigodmlhMUNvbkwgPCB2aWExQ29uVykgdGhlbiAodmlhMUNvbllPZmYgPSBtYXgoMC4wICgodmlhMUNvbk1pbkwgLSB2aWExQ29uVykgLyAyKSkpIHdoZW4oKHZpYTFDb25ZT2ZmICE9IDAuMCkgKHZpYTFDb25ZT2ZmID0gKChjZWlsaW5nICgodmlhMUNvbllPZmYgLyBzbmFwR3JpZCkgKyAxZS0wNikpICogc25hcEdyaWQpKSkgZWxzZSAodmlhMUNvblhPZmYgPSBtYXgoMC4wICgodmlhMUNvbk1pbkwgLSB2aWExQ29uTCkgLyAyKSkpIHdoZW4oKHZpYTFDb25YT2ZmICE9IDAuMCkgKHZpYTFDb25YT2ZmID0gKChjZWlsaW5nICgodmlhMUNvblhPZmYgLyBzbmFwR3JpZCkgKyAxZS0wNikpICogc25hcEdyaWQpKSkpICh2aWExQ29uWDEgPSAodmlhMUNvblgxIC0gdmlhMUNvblhPZmYpKSAodmlhMUNvblkxID0gaWYodmlhMURvUm91dGUgKChsYXllcjFZMSAtIHZpYTFDb25MYXkxWUV4dCkgLSB2aWExQ29uWU9mZikgKHZpYTFDb25ZMSAtIHZpYTFDb25ZT2ZmKSkpICh2aWExQ29uWDIgPSAodmlhMUNvblgyICsgdmlhMUNvblhPZmYpKSAodmlhMUNvblkyID0gaWYodmlhMURvUm91dGUgKChsYXllcjFZMiArIHZpYTFDb25MYXkxWUV4dCkgKyB2aWExQ29uWU9mZikgKHZpYTFDb25ZMiArIHZpYTFDb25ZT2ZmKSkpICh2aWExQ29uVyA9ICh2aWExQ29uWTIgLSB2aWExQ29uWTEpKSAodmlhMUNvbkwgPSAodmlhMUNvblgyIC0gdmlhMUNvblgxKSkgd2hlbigoKHZpYTFDb25NYXhMID4gdmlhMUNvbk1pbkwpICYmICgodmlhMUNvblcgPiB2aWExQ29uTWF4TCkgfHwgKHZpYTFDb25MID4gdmlhMUNvbk1heEwpKSkgZXJyb3Ioc3ByaW50ZihuaWwgInJjSW50ZXJDb25FbmhDbGFzczolTCBsb25nZXIgdGhhbiBtYXggYWxsb3dlZCAoJUwpXG4iIHZpYTFDb25MYXllciB2aWExQ29uTWF4TCkpKSAoZGJJZENvbiA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExQ29uTGF5ZXIgbGlzdChsaXN0KHZpYTFDb25YMSB2aWExQ29uWTEpIGxpc3QodmlhMUNvblgyIHZpYTFDb25ZMikpKSkpIGlmKCF2aWExT2ZmIHRoZW4gKGNvbnRhY3RCYm94ID0gbGlzdChsaXN0KHZpYTFYMSB2aWExWTEpIGxpc3QoY2FhZHIodmlhMVhZKSBjYWRhZHIodmlhMVhZKSkpKSBlbHNlIChjb250YWN0QmJveCA9IGxpc3QobGlzdCgodmlhMVgxIC0gdmlhMUNvblhFbmMpICh2aWExWTEgLSB2aWExQ29uWUVuYykpIGxpc3QoY2FhZHIoKGRiSWRDb25+PmJCb3gpKSBjYWRhZHIoKGRiSWRDb25+PmJCb3gpKSkpKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGF5ZXJCYm94IiAibGlzdCIgY29udGFjdEJib3gpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiY29udGFjdFdpZHRoIiAiZmxvYXQiIHZpYTFXaWR0aCkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGVuZ3RoIiAiZmxvYXQiIHZpYTFMZW5ndGgpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiY29udGFjdFNwYWNlIiAiZmxvYXQiIG1heCh2aWExU3BhY2VYIHZpYTFTcGFjZVkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3RZRW5jIiAiZmxvYXQiIHZpYTFMYXkxWUVuYykgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0WEVuYyIgImZsb2F0IiB2aWExTGF5MVhFbmMpIHdoZW4oKHZpYTFDb25MYXllciAmJiAodmlhMUNvbkFsbCB8fCB2aWExQ29uQ29sKSkgaWYoKHZpYTFDb25MIDwgdmlhMUNvblcpIHRoZW4gKGxheWVyMVlPZmYgPSBpZih3bERyaXZlbiAwLjAgdmlhMUNvbllPZmYpKSBlbHNlIChsYXllcjFYT2ZmID0gaWYod2xEcml2ZW4gMC4wIHZpYTFDb25YT2ZmKSkpKSB3aGVuKCFsYXllcjEgKGRiQWRkRmlnVG9OZXQgZGJJZENvbiBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZENvbikpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJvdExheWVyIiAibGlzdCIgdmlhMUNvbkxheWVyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJvdExheWVyQmJveCIgImxpc3QiIGxpc3QobGlzdCh2aWExWDEgdmlhMVkxKSBsaXN0KGNhYWRyKChkYklkQ29ufj5iQm94KSkgY2FkYWRyKChkYklkQ29ufj5iQm94KSkpKSkpIHdoZW4oKCh2aWExSW1wbGFudE9uIHx8IGltcGxhbnQpICYmIHZpYTFMYXllckltcGxhbnQgJiYgIXZpYTFJbXBsYW50U2luZ2xlKSAodmlhMUltcFgxID0gKHZpYTFYMSAtIHZpYTFMYXllckltcEVuYykpICh2aWExSW1wWTEgPSAodmlhMVkxIC0gdmlhMUxheWVySW1wRW5jKSkgKHZpYTFJbXBYMiA9IChjYWFkcih2aWExWFkpICsgdmlhMUxheWVySW1wRW5jKSkgKHZpYTFJbXBZMiA9IChjYWRhZHIodmlhMVhZKSArIHZpYTFMYXllckltcEVuYykpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllckltcGxhbnQgbGlzdChsaXN0KHZpYTFJbXBYMSB2aWExSW1wWTEpIGxpc3QodmlhMUltcFgyIHZpYTFJbXBZMikpKSkpIHdoZW4oKCh2aWExQ29uSW1wbGFudE9uIHx8IGltcGxhbnQpICYmIHZpYTFDb25JbXBsYW50KSAodmlhMUNvblhZID0gbGlzdChsaXN0KCh2aWExWDEgLSB2aWExQ29uWEVuYykgKHZpYTFZMSAtIHZpYTFDb25ZRW5jKSkgbGlzdCgoY2FhZHIodmlhMVhZKSArIHZpYTFDb25YRW5jKSAoY2FkYWRyKHZpYTFYWSkgKyB2aWExQ29uWUVuYykpKSkgKHZpYTFDb25JbXBYMSA9IChjYWFyKHZpYTFDb25YWSkgLSAodmlhMUNvblhPZmYgKyB2aWExQ29uSW1wRW5jKSkpICh2aWExQ29uSW1wWTEgPSAoY2FkYXIodmlhMUNvblhZKSAtICh2aWExQ29uWU9mZiArIHZpYTFDb25JbXBFbmMpKSkgKHZpYTFDb25JbXBYMiA9IChjYWFkcih2aWExQ29uWFkpICsgdmlhMUNvbkltcEVuYyArIHZpYTFDb25YT2ZmKSkgKHZpYTFDb25JbXBZMiA9IChjYWRhZHIodmlhMUNvblhZKSArIHZpYTFDb25JbXBFbmMgKyB2aWExQ29uWU9mZikpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFDb25JbXBsYW50IGxpc3QobGlzdCh2aWExQ29uSW1wWDEgdmlhMUNvbkltcFkxKSBsaXN0KHZpYTFDb25JbXBYMiB2aWExQ29uSW1wWTIpKSkpKSB3aGVuKHZpYTJMYXllciBpZihjZW50ZXIgdGhlbiAodmlhMVcgPSAoY2FkYWRyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgLSBjYWRhcigodGNDZWxsVmlld34+Y29udGFjdExheWVyQmJveCkpKSkgKHZpYTJXID0gKHZpYTJXaWR0aCArICgodmlhMlJvdyAtIDEpICogdmlhMlBpdGNoVykpKSAodmlhMllPZmZzZXQgPSAoKHZpYTFXIC0gdmlhMlcpIC8gMikpICh2aWEyWU9mZnNldCA9IChmaXgoKCh2aWEyWU9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpICh2aWExTCA9IChjYWFkcigodGNDZWxsVmlld34+Y29udGFjdExheWVyQmJveCkpIC0gY2FhcigodGNDZWxsVmlld34+Y29udGFjdExheWVyQmJveCkpKSkgKHZpYTJMID0gKHZpYTJMZW5ndGggKyAoKHZpYTJDb2x1bW4gLSAxKSAqIHZpYTJQaXRjaEwpKSkgKHZpYTJYT2Zmc2V0ID0gKCh2aWExTCAtIHZpYTJMKSAvIDIpKSAodmlhMlhPZmZzZXQgPSAoZml4KCgodmlhMlhPZmZzZXQgLyBzbmFwR3JpZCkgKyAxZS0wNikpICogc25hcEdyaWQpKSAodmlhMlgxID0gKHZpYTFYMSArIHZpYTJYT2Zmc2V0KSkgKHZpYTJZMSA9ICh2aWExWTEgKyB2aWEyWU9mZnNldCkpIGVsc2UgKHZpYTJYMSA9IHZpYTFYMSkgKHZpYTJZMSA9IHZpYTFZMSkpICh0aGVYID0gdmlhMlgxKSBmb3IoY29sIDEgdmlhMkNvbHVtbiAodGhlWSA9IHZpYTJZMSkgZm9yKHIgMSB2aWEyUm93IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KGxpc3QodGhlWCB0aGVZKSBsaXN0KCh0aGVYICsgdmlhMkxlbmd0aCkgKHRoZVkgKyB2aWEyV2lkdGgpKSkpKSAodGhlWSA9ICh0aGVZICsgdmlhMlBpdGNoVykpKSAodGhlWCA9ICh0aGVYICsgdmlhMlBpdGNoTCkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3QyTGF5ZXIiICJsaXN0IiB2aWEyTGF5ZXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiY29udGFjdDJMYXllckJib3giICJsaXN0IiBsaXN0KGxpc3QodmlhMlgxIHZpYTJZMSkgbGlzdChjYWFkcigoZGJJZH4+YkJveCkpIGNhZGFkcigoZGJJZH4+YkJveCkpKSkpIHdoZW4oKGltcGxhbnQgJiYgdmlhMkxheWVySW1wbGFudCkgKHZpYTJJbXBYMSA9ICh2aWEyWDEgLSB2aWEyTGF5ZXJJbXBFbmMpKSAodmlhMkltcFkxID0gKHZpYTJZMSAtIHZpYTJMYXllckltcEVuYykpICh2aWEySW1wWDIgPSAoY2FhZHIoKGRiSWR+PmJCb3gpKSArIHZpYTJMYXllckltcEVuYykpICh2aWEySW1wWTIgPSAoY2FkYWRyKChkYklkfj5iQm94KSkgKyB2aWEyTGF5ZXJJbXBFbmMpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXJJbXBsYW50IGxpc3QobGlzdCh2aWEySW1wWDEgdmlhMkltcFkxKSBsaXN0KHZpYTJJbXBYMiB2aWEySW1wWTIpKSkpKSkgKGxheWVyMVgxID0gKGxheWVyMVgxIC0gbGF5ZXIxWE9mZikpIChsYXllcjFZMSA9IChsYXllcjFZMSAtIGxheWVyMVlPZmYpKSAobGF5ZXIxWDIgPSAobGF5ZXIxWDIgKyBsYXllcjFYT2ZmKSkgKGxheWVyMVkyID0gKGxheWVyMVkyICsgbGF5ZXIxWU9mZikpIHdoZW4obGF5ZXIxIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMSBsaXN0KGxpc3QobGF5ZXIxWDEgbGF5ZXIxWTEpIGxpc3QobGF5ZXIxWDIgbGF5ZXIxWTIpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllciIgImxpc3QiIGxheWVyMSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllckJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpKSB3aGVuKGlkTGF5ZXIgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaWRMYXllciBsaXN0KGxpc3QobGF5ZXIxWDEgbGF5ZXIxWTEpIGxpc3QobGF5ZXIxWDIgbGF5ZXIxWTIpKSkpKSB3aGVuKChpbXBsYW50ICYmIGxheWVyMUltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMUltcGxhbnQgbGlzdChsaXN0KChsYXllcjFYMSAtIGxheWVyMUltcEVuYykgKGxheWVyMVkxIC0gbGF5ZXIxSW1wRW5jKSkgbGlzdCgobGF5ZXIxWDIgKyBsYXllcjFJbXBFbmMpIChsYXllcjFZMiArIGxheWVyMUltcEVuYykpKSkpKSB3aGVuKChpbXBsYW50ICYmIGxheTFJbXBJbldlbGwgJiYgaW5XZWxsICYmIHdlbGxMYXllcikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5MUltcEluV2VsbCBsaXN0KGxpc3QoKGxheWVyMVgxIC0gbGF5MUltcEluV2VsbEVuYykgKGxheWVyMVkxIC0gbGF5MUltcEluV2VsbEVuYykpIGxpc3QoKGxheWVyMVgyICsgbGF5MUltcEluV2VsbEVuYykgKGxheWVyMVkyICsgbGF5MUltcEluV2VsbEVuYykpKSkpKSB3aGVuKChpbldlbGwgJiYgd2VsbExheWVyKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgbGlzdChsaXN0KChsYXllcjFYMSAtIHdlbGxMYXllckVuYykgKGxheWVyMVkxIC0gd2VsbExheWVyRW5jKSkgbGlzdCgobGF5ZXIxWDIgKyB3ZWxsTGF5ZXJFbmMpIChsYXllcjFZMiArIHdlbGxMYXllckVuYykpKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAid2VsbExheWVyIiAibGlzdCIgd2VsbExheWVyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgIndlbGxMYXllckJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpKSBpZighdmlhMU9mZiB0aGVuIGlmKHZpYTJMYXllciB0aGVuIChsYXllcjJYMV9JID0gKGNhYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSAtIHZpYTFMYXkyWEVuYykpIChsYXllcjJZMV9JID0gKGNhZGFyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgLSB2aWExTGF5MllFbmMpKSAobGF5ZXIyWDJfSSA9IChjYWFkcigodGNDZWxsVmlld34+Y29udGFjdExheWVyQmJveCkpICsgdmlhMUxheTJYRW5jKSkgKGxheWVyMlkyX0kgPSAoY2FkYWRyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgKyB2aWExTGF5MllFbmMpKSAobGF5ZXIyWDFfSUkgPSAoY2FhcigodGNDZWxsVmlld34+Y29udGFjdDJMYXllckJib3gpKSAtIHZpYTJMYXkyWEVuYykpIChsYXllcjJZMV9JSSA9IChjYWRhcigodGNDZWxsVmlld34+Y29udGFjdDJMYXllckJib3gpKSAtIHZpYTJMYXkyWUVuYykpIChsYXllcjJYMl9JSSA9IChjYWFkcigodGNDZWxsVmlld34+Y29udGFjdDJMYXllckJib3gpKSArIHZpYTJMYXkyWEVuYykpIChsYXllcjJZMl9JSSA9IChjYWRhZHIoKHRjQ2VsbFZpZXd+PmNvbnRhY3QyTGF5ZXJCYm94KSkgKyB2aWEyTGF5MllFbmMpKSAobGF5ZXIyWDEgPSBtaW4obGF5ZXIyWDFfSSBsYXllcjJYMV9JSSkpIChsYXllcjJZMSA9IG1pbihsYXllcjJZMV9JIGxheWVyMlkxX0lJKSkgKGxheWVyMlgyID0gbWF4KGxheWVyMlgyX0kgbGF5ZXIyWDJfSUkpKSAobGF5ZXIyWTIgPSBtYXgobGF5ZXIyWTJfSSBsYXllcjJZMl9JSSkpIGVsc2UgKGxheWVyMlgxID0gKGNhYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSAtIHZpYTFMYXkyWEVuYykpIChsYXllcjJZMSA9IChjYWRhcigodGNDZWxsVmlld34+Y29udGFjdExheWVyQmJveCkpIC0gdmlhMUxheTJZRW5jKSkgKGxheWVyMlgyID0gKGNhYWRyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgKyB2aWExTGF5MlhFbmMpKSAobGF5ZXIyWTIgPSAoY2FkYWRyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgKyB2aWExTGF5MllFbmMpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYMSBsYXllcjJZMSkgbGlzdChsYXllcjJYMiBsYXllcjJZMikpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSBpZighbGF5ZXIzIHRoZW4gKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllciIgImxpc3QiIGxheWVyMikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIGVsc2UgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJtaWRkbGVMYXllciIgImxpc3QiIGxheWVyMikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJtaWRkbGVMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVySXNWaWEiICJib29sZWFuIiAiRkFMU0UiKSB3aGVuKChpbXBsYW50ICYmIGxheWVyMkltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMkltcGxhbnQgbGlzdChsaXN0KChsYXllcjJYMSAtIGxheWVyMkltcEVuYykgKGxheWVyMlkxIC0gbGF5ZXIySW1wRW5jKSkgbGlzdCgobGF5ZXIyWDIgKyBsYXllcjJJbXBFbmMpIChsYXllcjJZMiArIGxheWVyMkltcEVuYykpKSkpKSBlbHNlIChkYkFkZEZpZ1RvTmV0IGRiSWRDb24gbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWRDb24pKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllciIgImxpc3QiIHZpYTFDb25MYXllcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiBjb250YWN0QmJveCkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllcklzVmlhIiAiYm9vbGVhbiIgIlRSVUUiKSkgd2hlbihsYXllcjMgKGxheWVyM1gxID0gKGNhYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3QyTGF5ZXJCYm94KSkgLSB2aWEyTGF5M1hFbmMpKSAobGF5ZXIzWTEgPSAoY2FkYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3QyTGF5ZXJCYm94KSkgLSB2aWEyTGF5M1lFbmMpKSAobGF5ZXIzWDIgPSAoY2FhZHIoKHRjQ2VsbFZpZXd+PmNvbnRhY3QyTGF5ZXJCYm94KSkgKyB2aWEyTGF5M1hFbmMpKSAobGF5ZXIzWTIgPSAoY2FkYWRyKCh0Y0NlbGxWaWV3fj5jb250YWN0MkxheWVyQmJveCkpICsgdmlhMkxheTNZRW5jKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdChsYXllcjNYMSBsYXllcjNZMSkgbGlzdChsYXllcjNYMiBsYXllcjNZMikpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyIiAibGlzdCIgbGF5ZXIzKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyUGluQmJveCIgImxpc3QiIChkYklkfj5iQm94KSkgd2hlbigoaW1wbGFudCAmJiBsYXllcjNJbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjNJbXBsYW50IGxpc3QobGlzdCgobGF5ZXIzWDEgLSBsYXllcjNJbXBFbmMpIChsYXllcjNZMSAtIGxheWVyM0ltcEVuYykpIGxpc3QoKGxheWVyM1gyICsgbGF5ZXIzSW1wRW5jKSAobGF5ZXIzWTIgKyBsYXllcjNJbXBFbmMpKSkpKSkpIGlmKCh1c2VTaHJpbmtMYXllcjEgPT0gdCkgdGhlbiB3aGVuKHNwZWNpYWxMYXllciB3aGVuKCgodGNDZWxsVmlld34+dG9wTGF5ZXIpICYmIChjYXIoKHRjQ2VsbFZpZXd+PnRvcExheWVyKSkgPT0gY2FyKHNwZWNpYWxMYXllcikpKSBpZigoKGFicygoY2FhZHIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIC0gY2FhcigodGNDZWxsVmlld34+dG9wTGF5ZXJQaW5CYm94KSkpKSA+IGNhZHIoc3BlY2lhbExheWVyKSkgJiYgKGFicygoY2FkYWRyKCh0Y0NlbGxWaWV3fj50b3BMYXllclBpbkJib3gpKSAtIGNhZGFyKCh0Y0NlbGxWaWV3fj50b3BMYXllclBpbkJib3gpKSkpID4gY2FkcihzcGVjaWFsTGF5ZXIpKSkgdGhlbiBlcnJvcihzcHJpbnRmKG5pbCAicmNJbnRlckNvbkVuaENsYXNzOiVMIGxvbmdlciB0aGFuICglTCkgbm90IG1heCBhbGxvd2VkIFxuIiBjYXIoc3BlY2lhbExheWVyKSBjYWRyKHNwZWNpYWxMYXllcikpKSkpIHdoZW4oKCh0Y0NlbGxWaWV3fj5taWRkbGVMYXllcikgJiYgKGNhcigodGNDZWxsVmlld34+bWlkZGxlTGF5ZXIpKSA9PSBjYXIoc3BlY2lhbExheWVyKSkpIGlmKCgoYWJzKChjYWFkcigodGNDZWxsVmlld34+bWlkZGxlTGF5ZXJQaW5CYm94KSkgLSBjYWFyKCh0Y0NlbGxWaWV3fj5taWRkbGVMYXllclBpbkJib3gpKSkpID4gY2FkcihzcGVjaWFsTGF5ZXIpKSAmJiAoYWJzKChjYWRhZHIoKHRjQ2VsbFZpZXd+Pm1pZGRsZUxheWVyUGluQmJveCkpIC0gY2FkYXIoKHRjQ2VsbFZpZXd+Pm1pZGRsZUxheWVyUGluQmJveCkpKSkgPiBjYWRyKHNwZWNpYWxMYXllcikpKSB0aGVuIGVycm9yKHNwcmludGYobmlsICJyY0ludGVyQ29uRW5oQ2xhc3M6JUwgbG9uZ2VyIHRoYW4gKCVMKSBub3QgbWF4IGFsbG93ZWQgXG4iIGNhcihzcGVjaWFsTGF5ZXIpIGNhZHIoc3BlY2lhbExheWVyKSkpKSkgd2hlbigoKHRjQ2VsbFZpZXd+PmJvdExheWVyKSAmJiAoY2FyKCh0Y0NlbGxWaWV3fj5ib3RMYXllcikpID09IGNhcihzcGVjaWFsTGF5ZXIpKSkgaWYoKChhYnMoKGNhYWRyKCh0Y0NlbGxWaWV3fj5ib3RMYXllckJib3gpKSAtIGNhYXIoKHRjQ2VsbFZpZXd+PmJvdExheWVyQmJveCkpKSkgPiBjYWRyKHNwZWNpYWxMYXllcikpICYmIChhYnMoKGNhZGFkcigodGNDZWxsVmlld34+Ym90TGF5ZXJCYm94KSkgLSBjYWRhcigodGNDZWxsVmlld34+Ym90TGF5ZXJCYm94KSkpKSA+IGNhZHIoc3BlY2lhbExheWVyKSkpIHRoZW4gZXJyb3Ioc3ByaW50ZihuaWwgInJjSW50ZXJDb25FbmhDbGFzczolTCBsb25nZXIgdGhhbiAoJUwpIG5vdCBtYXggYWxsb3dlZCBcbiIgY2FyKHNwZWNpYWxMYXllcikgY2FkcihzcGVjaWFsTGF5ZXIpKSkpKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYkJveEVmZiIgImxpc3QiIGxpc3QobGlzdChtaW4oY2FhcigodGNDZWxsVmlld34+dG9wTGF5ZXJQaW5CYm94KSkgY2FhcigodGNDZWxsVmlld34+Ym90TGF5ZXJCYm94KSkpIG1pbihjYWRhcigodGNDZWxsVmlld34+dG9wTGF5ZXJQaW5CYm94KSkgY2FkYXIoKHRjQ2VsbFZpZXd+PmJvdExheWVyQmJveCkpKSkgbGlzdChtYXgoY2FhZHIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIGNhYWRyKCh0Y0NlbGxWaWV3fj5ib3RMYXllckJib3gpKSkgbWF4KGNhZGFkcigodGNDZWxsVmlld34+dG9wTGF5ZXJQaW5CYm94KSkgY2FkYWRyKCh0Y0NlbGxWaWV3fj5ib3RMYXllckJib3gpKSkpKSkpAChsYXllcjEgbGF5ZXIyIGxheWVyMyB3ZWxsTGF5ZXIgd2VsbExheWVyRW5jIGlkTGF5ZXIgdmlhMUxheWVyIHZpYTJMYXllciB2aWExV2lkdGggdmlhMUxlbmd0aCB2aWEyV2lkdGggdmlhMkxlbmd0aCB2aWExQ29uTGF5ZXIgdmlhMUNvbldpZHRoIHZpYTFDb25NaW5MIHZpYTFDb25NYXhMIHZpYTFDb25FbmMgdmlhMUNvbkVuY1NxIHZpYTFDb25YRW5jIHZpYTFDb25ZRW5jIHZpYTFDb25MYXkxRW5jIHZpYTFDb25MYXkxRW5jU3EgdmlhMUNvbkxheTFYRW5jIHZpYTFDb25MYXkxWUVuYyB2aWExQ29uTGF5MVlFeHQgdmlhMUNvbkFsbCB2aWExQ29uQ29sIHZpYTFMYXkxRW5jIHZpYTFMYXkxRW5jU3EgdmlhMUxheTFYRW5jIHZpYTFMYXkxWUVuYyB2aWExTGF5MkVuYyB2aWExTGF5MkVuY1NxIHZpYTFMYXkyWEVuYyB2aWExTGF5MllFbmMgdmlhMkxheTJFbmMgdmlhMkxheTJFbmNTcSB2aWEyTGF5MlhFbmMgdmlhMkxheTJZRW5jIHZpYTJMYXkzRW5jIHZpYTJMYXkzRW5jU3EgdmlhMkxheTNYRW5jIHZpYTJMYXkzWUVuYyBsYXllcjFJbXBsYW50IGxheWVyMUltcEVuYyBsYXkxSW1wSW5XZWxsIGxheTFJbXBJbldlbGxFbmMgbGF5ZXIySW1wbGFudCBsYXllcjJJbXBFbmMgbGF5ZXIzSW1wbGFudCBsYXllcjNJbXBFbmMgdmlhMUxheWVySW1wbGFudCB2aWExTGF5ZXJJbXBFbmMgdmlhMUltcGxhbnRPbiB2aWExSW1wbGFudFNpbmdsZSB2aWExQ29uSW1wbGFudCB2aWExQ29uSW1wbGFudE9uIHZpYTFDb25JbXBFbmMgdmlhMkxheWVySW1wbGFudCB2aWEyTGF5ZXJJbXBFbmMgc25hcEdyaWQgdXNlU3F1YXJlRW5jIHVzZVZpYTFPZmYgY29udGFjdE9uWCBjb250YWN0T25ZIGNvbnRhY3RPblhZIG1pbnZpYTFMYXkxWEVuYyBtaW5XIG1pbkwgbWludmlhMkxheTJYRW5jIHNwZWNpYWxMYXllciBpbXBsYW50IHZpYTFEb1JvdXRlIHZpYTFPZmYgaW5XZWxsIGVxRW5jIHNxQm90dG9tIGNlbnRlciB2aWExU3BhY2VYIHZpYTFTcGFjZVkgdmlhMlNwYWNlWCB2aWEyU3BhY2VZIFcgTCB3bERyaXZlbiByb3cgY29sdW1uIHJvdGF0ZU1pZGRsZSByb3RhdGVUb3AgdXNlU2hyaW5rTGF5ZXIxIGFsbERpciBuZXQgdmlhMURvUm91dGVXIHN3YXBUZW1wIHZpYTFMYXkxRXFYT2ZmIHZpYTFMYXkxRXFZT2ZmIHZpYTFQaXRjaFcgdmlhMVBpdGNoTCB2aWEyUGl0Y2hXIHZpYTJQaXRjaEwgdmlhVzEgdmlhTDEgdmlhVzIgdmlhTDIgdmlhMVJvdyB2aWExQ29sdW1uIHZpYTJSb3cgdmlhMkNvbHVtbiB2aWFXIHZpYUwgdmlhMVdSZXN0IHZpYTFMUmVzdCBsYXllcjFYMSBsYXllcjFZMSBsYXllcjFYT2ZmIGxheWVyMVlPZmYgbGF5ZXIxWDIgbGF5ZXIxWTIgdmlhMVgxIHZpYTFZMSB2aWExQ29uWE9mZiB2aWExQ29uWU9mZiB0aGVYIGNvbCB0aGVZIHIgdmlhMVhZIGRiSWQgdmlhMUNvblgxIHZpYTFDb25ZMSB2aWExQ29uWDIgdmlhMUNvblkyIGRiSWRDb24gdmlhMUltcFgxIHZpYTFJbXBZMSB2aWExSW1wWDIgdmlhMUltcFkyIGRiSWRJbXAgdmlhMUNvblcgdmlhMUNvbkwgY29udGFjdEJib3ggcGluSWQgdmlhMUNvblhZIHZpYTFDb25JbXBYMSB2aWExQ29uSW1wWTEgdmlhMUNvbkltcFgyIHZpYTFDb25JbXBZMiB2aWExVyB2aWEyVyB2aWEyWU9mZnNldCB2aWExTCB2aWEyTCB2aWEyWE9mZnNldCB2aWEyWDEgdmlhMlkxIHZpYTJJbXBYMSB2aWEySW1wWTEgdmlhMkltcFgyIHZpYTJJbXBZMiBsYXllcjJYMV9JIGxheWVyMlkxX0kgbGF5ZXIyWDJfSSBsYXllcjJZMl9JIGxheWVyMlgxX0lJIGxheWVyMlkxX0lJIGxheWVyMlgyX0lJIGxheWVyMlkyX0lJIGxheWVyMlgxIGxheWVyMlkxIGxheWVyMlgyIGxheWVyMlkyIGxheWVyM1gxIGxheWVyM1kxIGxheWVyM1gyIGxheWVyM1kyKQAoKGltcGxhbnQgIkZBTFNFIikgKHZpYTFEb1JvdXRlICJGQUxTRSIpICh2aWExT2ZmICJGQUxTRSIpIChpbldlbGwgIkZBTFNFIikgKGVxRW5jICJGQUxTRSIpIChzcUJvdHRvbSAiRkFMU0UiKSAoY2VudGVyICJGQUxTRSIpICh2aWExU3BhY2VYIDAuMCkgKHZpYTFTcGFjZVkgMC4wKSAodmlhMlNwYWNlWCAwLjApICh2aWEyU3BhY2VZIDAuMCkgKFcgMS4wKSAoTCAxLjApICh3bERyaXZlbiAiRkFMU0UiKSAocm93IDEpIChjb2x1bW4gMSkgKHJvdGF0ZU1pZGRsZSAiRkFMU0UiKSAocm90YXRlVG9wICJGQUxTRSIpKQAoKGxheWVyMSBuaWwpIChsYXllcjIgInByQm91bmRhcnkiKSAobGF5ZXIzIG5pbCkgKHdlbGxMYXllciBuaWwpICh3ZWxsTGF5ZXJFbmMgMC4wKSAoaWRMYXllciBuaWwpICh2aWExTGF5ZXIgInk0IikgKHZpYTJMYXllciBuaWwpICh2aWExV2lkdGggMC4wKSAodmlhMUxlbmd0aCAwLjApICh2aWEyV2lkdGggMC4wKSAodmlhMkxlbmd0aCAwLjApICh2aWExQ29uTGF5ZXIgbmlsKSAodmlhMUNvbldpZHRoIDAuMCkgKHZpYTFDb25NaW5MIDAuMCkgKHZpYTFDb25NYXhMIDAuMCkgKHZpYTFDb25FbmMgMC4wKSAodmlhMUNvbkVuY1NxIDAuMCkgKHZpYTFDb25YRW5jIDAuMCkgKHZpYTFDb25ZRW5jIDAuMCkgKHZpYTFDb25MYXkxRW5jIDAuMCkgKHZpYTFDb25MYXkxRW5jU3EgMC4wKSAodmlhMUNvbkxheTFYRW5jIDAuMCkgKHZpYTFDb25MYXkxWUVuYyAwLjApICh2aWExQ29uTGF5MVlFeHQgMC4wKSAodmlhMUNvbkFsbCBuaWwpICh2aWExQ29uQ29sIG5pbCkgKHZpYTFMYXkxRW5jIDAuMCkgKHZpYTFMYXkxRW5jU3EgMC4wKSAodmlhMUxheTFYRW5jIDAuMCkgKHZpYTFMYXkxWUVuYyAwLjApICh2aWExTGF5MkVuYyAwLjApICh2aWExTGF5MkVuY1NxIDAuMCkgKHZpYTFMYXkyWEVuYyAwLjApICh2aWExTGF5MllFbmMgMC4wKSAodmlhMkxheTJFbmMgMC4wKSAodmlhMkxheTJFbmNTcSAwLjApICh2aWEyTGF5MlhFbmMgMC4wKSAodmlhMkxheTJZRW5jIDAuMCkgKHZpYTJMYXkzRW5jIDAuMCkgKHZpYTJMYXkzRW5jU3EgMC4wKSAodmlhMkxheTNYRW5jIDAuMCkgKHZpYTJMYXkzWUVuYyAwLjApIChsYXllcjFJbXBsYW50IG5pbCkgKGxheWVyMUltcEVuYyBsaXN0KDAuMCAwLjApKSAobGF5MUltcEluV2VsbCBuaWwpIChsYXkxSW1wSW5XZWxsRW5jIDAuMCkgKGxheWVyMkltcGxhbnQgbmlsKSAobGF5ZXIySW1wRW5jIDAuMCkgKGxheWVyM0ltcGxhbnQgbmlsKSAobGF5ZXIzSW1wRW5jIDAuMCkgKHZpYTFMYXllckltcGxhbnQgbmlsKSAodmlhMUxheWVySW1wRW5jIDAuMCkgKHZpYTFJbXBsYW50T24gbmlsKSAodmlhMUltcGxhbnRTaW5nbGUgbmlsKSAodmlhMUNvbkltcGxhbnQgbmlsKSAodmlhMUNvbkltcGxhbnRPbiBuaWwpICh2aWExQ29uSW1wRW5jIDAuMCkgKHZpYTJMYXllckltcGxhbnQgbmlsKSAodmlhMkxheWVySW1wRW5jIDAuMCkgKHNuYXBHcmlkIChURUNIZ2V0UHJvcCBzbmFwR3JpZCkpICh1c2VTcXVhcmVFbmMgbmlsKSAodXNlVmlhMU9mZiBuaWwpIChjb250YWN0T25YIG5pbCkgKGNvbnRhY3RPblkgbmlsKSAoY29udGFjdE9uWFkgbmlsKSAobWludmlhMUxheTFYRW5jIG5pbCkgKG1pblcgbmlsKSAobWluTCBuaWwpIChtaW52aWEyTGF5MlhFbmMgbmlsKSAoc3BlY2lhbExheWVyIG5pbCkpAChpZigoKGltcGxhbnQgPT0gdCkgfHwgKGltcGxhbnQgPT0gIlRSVUUiKSkgdGhlbiAoaW1wbGFudCA9IHQpIGVsc2UgKGltcGxhbnQgPSBuaWwpKSBpZigoKGluV2VsbCA9PSB0KSB8fCAoaW5XZWxsID09ICJUUlVFIikpIHRoZW4gKGluV2VsbCA9IHQpIGVsc2UgKGluV2VsbCA9IG5pbCkpIHdoZW4oaW1wbGFudCB3aGVuKGxheWVyMUltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGxheWVyMUltcGxhbnQgPSBjYWRyKGxheWVyMUltcGxhbnQpKSAobGF5ZXIxSW1wRW5jID0gY2FkcihsYXllcjFJbXBFbmMpKSBlbHNlIChsYXllcjFJbXBsYW50ID0gY2FyKGxheWVyMUltcGxhbnQpKSAobGF5ZXIxSW1wRW5jID0gY2FyKGxheWVyMUltcEVuYykpKSkgd2hlbihsYXllcjFDb3JlSW1wbGFudCBpZihpbldlbGwgdGhlbiAobGF5ZXIxQ29yZUltcGxhbnQgPSBjYWRyKGxheWVyMUNvcmVJbXBsYW50KSkgKGxheWVyMUNvcmVJbXBFbmMgPSBjYWRyKGxheWVyMUNvcmVJbXBFbmMpKSBlbHNlIChsYXllcjFDb3JlSW1wbGFudCA9IGNhcihsYXllcjFDb3JlSW1wbGFudCkpIChsYXllcjFDb3JlSW1wRW5jID0gY2FyKGxheWVyMUNvcmVJbXBFbmMpKSkpIHdoZW4obGF5ZXIySW1wbGFudCBpZihpbldlbGwgdGhlbiAobGF5ZXIySW1wbGFudCA9IGNhZHIobGF5ZXIySW1wbGFudCkpIChsYXllcjJJbXBFbmMgPSBjYWRyKGxheWVyMkltcEVuYykpIGVsc2UgKGxheWVyMkltcGxhbnQgPSBjYXIobGF5ZXIySW1wbGFudCkpIChsYXllcjJJbXBFbmMgPSBjYXIobGF5ZXIySW1wRW5jKSkpKSB3aGVuKGxheWVyM0ltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGxheWVyM0ltcGxhbnQgPSBjYWRyKGxheWVyM0ltcGxhbnQpKSAobGF5ZXIzSW1wRW5jID0gY2FkcihsYXllcjNJbXBFbmMpKSBlbHNlIChsYXllcjNJbXBsYW50ID0gY2FyKGxheWVyM0ltcGxhbnQpKSAobGF5ZXIzSW1wRW5jID0gY2FyKGxheWVyM0ltcEVuYykpKSkgd2hlbih2aWExSW1wbGFudCBpZihpbldlbGwgdGhlbiAodmlhMUltcGxhbnQgPSBjYWRyKHZpYTFJbXBsYW50KSkgKHZpYTFJbXBFbmMgPSBjYWRyKHZpYTFJbXBFbmMpKSBlbHNlICh2aWExSW1wbGFudCA9IGNhcih2aWExSW1wbGFudCkpICh2aWExSW1wRW5jID0gY2FyKHZpYTFJbXBFbmMpKSkpIHdoZW4odmlhMkltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKHZpYTJJbXBsYW50ID0gY2Fkcih2aWEySW1wbGFudCkpICh2aWEySW1wRW5jID0gY2Fkcih2aWEySW1wRW5jKSkgZWxzZSAodmlhMkltcGxhbnQgPSBjYXIodmlhMkltcGxhbnQpKSAodmlhMkltcEVuYyA9IGNhcih2aWEySW1wRW5jKSkpKSkgKGFsbERpciA9IGxpc3QoInJpZ2h0IiAibGVmdCIgInRvcCIgImJvdHRvbSIpKSAobmV0ID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJwcGQiKSkgd2hlbihzdHJpbmdwKGxheWVyMSkgKGxheWVyMSA9IGxpc3QobGF5ZXIxICJkcmF3aW5nIikpKSB3aGVuKHN0cmluZ3AobGF5ZXIyKSAobGF5ZXIyID0gbGlzdChsYXllcjIgImRyYXdpbmciKSkpIHdoZW4oKGxheWVyMyAmJiBzdHJpbmdwKGxheWVyMykpIChsYXllcjMgPSBsaXN0KGxheWVyMyAiZHJhd2luZyIpKSkgKGxheWVyMWxlbmd0aCA9IG1heCgoKDIgKiBsYXllcjFFbmNWaWExKSArIChjb2x1bW4gKiB2aWExV2lkdGgpICsgKChjb2x1bW4gLSAxKSAqIHZpYTFTcGFjZSkpIGxheWVyMVdpZHRoKSkgKGxheWVyMXdpZHRoID0gbWF4KCgoMiAqIGxheWVyMUVuY1ZpYTEpICsgKHJvdyAqIHZpYTFXaWR0aCkgKyAoKHJvdyAtIDEpICogdmlhMVNwYWNlKSkgbGF5ZXIxV2lkdGgpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjEgbGlzdChsaXN0KDAuMCAwLjApIGxpc3QobGF5ZXIxbGVuZ3RoIGxheWVyMXdpZHRoKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYm90TGF5ZXIiICJsaXN0IiBsYXllcjEpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYm90TGF5ZXJCYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSB3aGVuKG1heHZMYXllciAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBtYXh2TGF5ZXIgbGlzdChsaXN0KDAuMCAwLjApIGxpc3QobGF5ZXIxbGVuZ3RoIGxheWVyMXdpZHRoKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpKSB3aGVuKChpbXBsYW50ICYmIGxheWVyMUltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMUltcGxhbnQgbGlzdChsaXN0KCgtIGxheWVyMUltcEVuYykgKC0gbGF5ZXIxSW1wRW5jKSkgbGlzdCgobGF5ZXIxbGVuZ3RoICsgbGF5ZXIxSW1wRW5jKSAobGF5ZXIxd2lkdGggKyBsYXllcjFJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIHdoZW4oKGxheWVyMUNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMUNvcmVJbXBsYW50IGxpc3QobGlzdCgoLSBsYXllcjFDb3JlSW1wRW5jKSAoLSBsYXllcjFDb3JlSW1wRW5jKSkgbGlzdCgobGF5ZXIxbGVuZ3RoICsgbGF5ZXIxQ29yZUltcEVuYykgKGxheWVyMXdpZHRoICsgbGF5ZXIxQ29yZUltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgd2hlbigoaW1wbGFudCAmJiBpbldlbGwgJiYgd2VsbExheWVyKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgbGlzdChsaXN0KCgtIHdlbGxMYXllckVuYykgKC0gd2VsbExheWVyRW5jKSkgbGlzdCgobGF5ZXIxbGVuZ3RoICsgd2VsbExheWVyRW5jKSAobGF5ZXIxd2lkdGggKyB3ZWxsTGF5ZXJFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIChjb250YWN0UGl0Y2ggPSAodmlhMVNwYWNlICsgdmlhMVdpZHRoKSkgKHRoZVkgPSBsYXllcjFFbmNWaWExKSBmb3IociAxIHJvdyAodGhlWCA9IGxheWVyMUVuY1ZpYTEpIGZvcihjb2wgMSBjb2x1bW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdCh0aGVYIHRoZVkpIGxpc3QoKHRoZVggKyB2aWExV2lkdGgpICh0aGVZICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh0aGVYID0gKHRoZVggKyBjb250YWN0UGl0Y2gpKSkgKHRoZVkgPSAodGhlWSArIGNvbnRhY3RQaXRjaCkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3RXaWR0aCIgImxpc3QiIHZpYTFXaWR0aCkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0U3BhY2UiICJsaXN0IiB2aWExU3BhY2UpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiY29udGFjdExheWVyIiAibGlzdCIgdmlhMUxheWVyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3RMYXllckJib3giICJsaXN0IiBsaXN0KChsYXllcjFFbmNWaWExOmxheWVyMUVuY1ZpYTEpIChjYWFkcigoZGJJZH4+YkJveCkpOmNhZGFkcigoZGJJZH4+YkJveCkpKSkpIHdoZW4oKGltcGxhbnQgJiYgdmlhMUltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFJbXBsYW50IGxpc3QobGlzdCgobGF5ZXIxRW5jVmlhMSAtIHZpYTFJbXBFbmMpIChsYXllcjFFbmNWaWExIC0gdmlhMUltcEVuYykpIGxpc3QoKGNhYWRyKChkYklkfj5iQm94KSkgKyB2aWExSW1wRW5jKSAoY2FkYWRyKChkYklkfj5iQm94KSkgKyB2aWExSW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAobGF5ZXIyQmJveCA9IGxpc3QobGlzdCgobGF5ZXIxRW5jVmlhMSAtIGxheWVyMlhFbmNWaWExKSAobGF5ZXIxRW5jVmlhMSAtIGxheWVyMllFbmNWaWExKSkgbGlzdCgobWF4KGxheWVyMldpZHRoICgoMiAqIGxheWVyMlhFbmNWaWExKSArIChjb2x1bW4gKiB2aWExV2lkdGgpICsgKChjb2x1bW4gLSAxKSAqIHZpYTFTcGFjZSkpKSArIChsYXllcjFFbmNWaWExIC0gbGF5ZXIyWEVuY1ZpYTEpKSAobWF4KGxheWVyMldpZHRoICgoMiAqIGxheWVyMllFbmNWaWExKSArIChyb3cgKiB2aWExV2lkdGgpICsgKChyb3cgLSAxKSAqIHZpYTFTcGFjZSkpKSArIChsYXllcjFFbmNWaWExIC0gbGF5ZXIyWUVuY1ZpYTEpKSkpKSAobGF5ZXIyWDFDb29yZCA9IGNhYXIobGF5ZXIyQmJveCkpIChsYXllcjJZMUNvb3JkID0gY2FkYXIobGF5ZXIyQmJveCkpIHdoZW4obGF5ZXIzIChsYXllcjJCYm94ID0gbGlzdChsaXN0KG1pbihjYWFyKGxheWVyMkJib3gpIChsYXllcjFFbmNWaWExIC0gbGF5ZXIyRW5jVmlhMikpIG1pbihjYWRhcihsYXllcjJCYm94KSAobGF5ZXIxRW5jVmlhMSAtIGxheWVyMkVuY1ZpYTIpKSkgbGlzdChtYXgoY2FhZHIobGF5ZXIyQmJveCkgKCgyICogbGF5ZXIyRW5jVmlhMikgKyAoY29sdW1uICogdmlhMldpZHRoKSArICgoY29sdW1uIC0gMSkgKiB2aWEyU3BhY2UpICsgbGF5ZXIxRW5jVmlhMSArICgtIG1heChsYXllcjJFbmNWaWEyIGxheWVyMlhFbmNWaWExKSkpKSBtYXgoY2FkYWRyKGxheWVyMkJib3gpICgoMiAqIGxheWVyMkVuY1ZpYTIpICsgKHJvdyAqIHZpYTJXaWR0aCkgKyAoKHJvdyAtIDEpICogdmlhMlNwYWNlKSArIGxheWVyMUVuY1ZpYTEgKyAoLSBtYXgobGF5ZXIyRW5jVmlhMiBsYXllcjJZRW5jVmlhMSkpKSkpKSkgKGxheWVyMlgxQ29vcmQgPSBjYWFyKGxheWVyMkJib3gpKSAobGF5ZXIyWTFDb29yZCA9IGNhZGFyKGxheWVyMkJib3gpKSAobGF5ZXIzbGVuZ3RoID0gbWF4KCgoMi4wICogbGF5ZXIzWEVuY1ZpYTIpICsgKGNvbHVtbiAqIHZpYTJXaWR0aCkgKyAoKGNvbHVtbiAtIDEpICogdmlhMlNwYWNlKSkgbGF5ZXIzV2lkdGgpKSAobGF5ZXIzd2lkdGggPSBtYXgoKCgyLjAgKiBsYXllcjNZRW5jVmlhMikgKyAocm93ICogdmlhMldpZHRoKSArICgocm93IC0gMSkgKiB2aWEyU3BhY2UpKSBsYXllcjNXaWR0aCkpIChjb250YWN0UGl0Y2ggPSAodmlhMlNwYWNlICsgdmlhMldpZHRoKSkgKHRoZVkgPSAobGF5ZXIyWTFDb29yZCArIGxheWVyMkVuY1ZpYTIpKSAodGhlWCA9IChsYXllcjJYMUNvb3JkICsgbGF5ZXIyRW5jVmlhMikpIChsYXllcjNYMUNvb3JkID0gKHRoZVggLSBsYXllcjNYRW5jVmlhMikpIChsYXllcjNZMUNvb3JkID0gKHRoZVkgLSBsYXllcjNZRW5jVmlhMikpIGZvcihyIDEgcm93ICh0aGVYID0gKGxheWVyMlgxQ29vcmQgKyBsYXllcjJFbmNWaWEyKSkgZm9yKGNvbCAxIGNvbHVtbiAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdChsaXN0KHRoZVggdGhlWSkgbGlzdCgodGhlWCArIHZpYTJXaWR0aCkgKHRoZVkgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRoZVggPSAodGhlWCArIGNvbnRhY3RQaXRjaCkpKSAodGhlWSA9ICh0aGVZICsgY29udGFjdFBpdGNoKSkpIHdoZW4oKGltcGxhbnQgJiYgdmlhMkltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJJbXBsYW50IGxpc3QobGlzdCgobGF5ZXIyWDFDb29yZCArIGxheWVyMkVuY1ZpYTIgKyAoLSB2aWEySW1wRW5jKSkgKGxheWVyMlkxQ29vcmQgKyBsYXllcjJFbmNWaWEyICsgKC0gdmlhMkltcEVuYykpKSBsaXN0KChjYWFkcigoZGJJZH4+YkJveCkpICsgdmlhMkltcEVuYykgKGNhZGFkcigoZGJJZH4+YkJveCkpICsgdmlhMkltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkpIHdoZW4oKGltcGxhbnQgJiYgbGF5ZXIySW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIySW1wbGFudCBsaXN0KGxpc3QoKGxheWVyMlgxQ29vcmQgLSBsYXllcjJJbXBFbmMpIChsYXllcjJZMUNvb3JkIC0gbGF5ZXIySW1wRW5jKSkgbGlzdCgoY2FhZHIobGF5ZXIyQmJveCkgKyBsYXllcjJJbXBFbmMpIChjYWRhZHIobGF5ZXIyQmJveCkgKyBsYXllcjJJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsYXllcjJCYm94KSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSBjb25kKCghbGF5ZXIzIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSkgKHQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QoKGxheWVyM1gxQ29vcmQ6bGF5ZXIzWTFDb29yZCkgbGlzdCgobGF5ZXIzWDFDb29yZCArIGxheWVyM2xlbmd0aCkgKGxheWVyM1kxQ29vcmQgKyBsYXllcjN3aWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllciIgImxpc3QiIGxheWVyMykgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIHdoZW4oKGltcGxhbnQgJiYgbGF5ZXIzSW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzSW1wbGFudCBsaXN0KGxpc3QoKGxheWVyM1gxQ29vcmQgLSBsYXllcjNJbXBFbmMpIChsYXllcjNZMUNvb3JkIC0gbGF5ZXIzSW1wRW5jKSkgbGlzdCgobGF5ZXIzWDFDb29yZCArIGxheWVyM2xlbmd0aCArIGxheWVyM0ltcEVuYykgKGxheWVyM1kxQ29vcmQgKyBsYXllcjN3aWR0aCArIGxheWVyM0ltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkpKSkAKGxheWVyMSBsYXllcjIgbGF5ZXIzIG1heHZMYXllciB2aWExTGF5ZXIgdmlhMkxheWVyIHdlbGxMYXllciB3ZWxsTGF5ZXJFbmMgbGF5ZXIxSW1wbGFudCBsYXllcjJJbXBsYW50IGxheWVyM0ltcGxhbnQgbGF5ZXIxQ29yZUltcGxhbnQgbGF5ZXIxQ29yZUltcEVuYyB2aWExSW1wbGFudCB2aWEySW1wbGFudCBsYXllcjFXaWR0aCBsYXllcjJXaWR0aCBsYXllcjNXaWR0aCB2aWExV2lkdGggdmlhMVNwYWNlIHZpYTJXaWR0aCB2aWEyU3BhY2UgbGF5ZXIxRW5jVmlhMSBsYXllcjJYRW5jVmlhMSBsYXllcjJZRW5jVmlhMSBsYXllcjJFbmNWaWEyIGxheWVyM1hFbmNWaWEyIGxheWVyM1lFbmNWaWEyIGxheWVyMUltcEVuYyBsYXllcjJJbXBFbmMgbGF5ZXIzSW1wRW5jIHZpYTFJbXBFbmMgdmlhMkltcEVuYyByb3cgY29sdW1uIGltcGxhbnQgaW5XZWxsIGFsbERpciBuZXQgbGF5ZXIxbGVuZ3RoIGxheWVyMXdpZHRoIGRiSWQgcGluSWQgZGJpZCBjb250YWN0UGl0Y2ggdGhlWSByIHRoZVggY29sIGxheWVyMkJib3ggbGF5ZXIyWDFDb29yZCBsYXllcjJZMUNvb3JkIGxheWVyM2xlbmd0aCBsYXllcjN3aWR0aCBsYXllcjNYMUNvb3JkIGxheWVyM1kxQ29vcmQpACgocm93IDEpIChjb2x1bW4gMSkgKGltcGxhbnQgIkZBTFNFIikgKGluV2VsbCAiRkFMU0UiKSkAKChsYXllcjEgImhpbGl0ZSIpIChsYXllcjIgInByQm91bmRhcnkiKSAobGF5ZXIzIG5pbCkgKG1heHZMYXllciBuaWwpICh2aWExTGF5ZXIgInk0IikgKHZpYTJMYXllciBuaWwpICh3ZWxsTGF5ZXIgbmlsKSAod2VsbExheWVyRW5jIDAuMCkgKGxheWVyMUltcGxhbnQgbmlsKSAobGF5ZXIySW1wbGFudCBuaWwpIChsYXllcjNJbXBsYW50IG5pbCkgKGxheWVyMUNvcmVJbXBsYW50IG5pbCkgKGxheWVyMUNvcmVJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKHZpYTFJbXBsYW50IG5pbCkgKHZpYTJJbXBsYW50IG5pbCkgKGxheWVyMVdpZHRoIDAuMCkgKGxheWVyMldpZHRoIDAuMCkgKGxheWVyM1dpZHRoIDAuMCkgKHZpYTFXaWR0aCAwLjApICh2aWExU3BhY2UgMC4wKSAodmlhMldpZHRoIDAuMCkgKHZpYTJTcGFjZSAwLjApIChsYXllcjFFbmNWaWExIDAuMCkgKGxheWVyMlhFbmNWaWExIDAuMCkgKGxheWVyMllFbmNWaWExIDAuMCkgKGxheWVyMkVuY1ZpYTIgMC4wKSAobGF5ZXIzWEVuY1ZpYTIgMC4wKSAobGF5ZXIzWUVuY1ZpYTIgMC4wKSAobGF5ZXIxSW1wRW5jIGxpc3QoMC4wIDAuMCkpIChsYXllcjJJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKGxheWVyM0ltcEVuYyBsaXN0KDAuMCAwLjApKSAodmlhMUltcEVuYyBsaXN0KDAuMCAwLjApKSAodmlhMkltcEVuYyBsaXN0KDAuMCAwLjApKSkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoaWYoKChpbXBsYW50ID09IHQpIHx8IChpbXBsYW50ID09ICJUUlVFIikpIHRoZW4gKGltcGxhbnQgPSB0KSBlbHNlIChpbXBsYW50ID0gbmlsKSkgKGFsbERpciA9IGxpc3QoInJpZ2h0IiAibGVmdCIgInRvcCIgImJvdHRvbSIpKSAobmV0ID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJwcGQiKSkgd2hlbihzdHJpbmdwKGxheWVyMSkgKGxheWVyMSA9IGxpc3QobGF5ZXIxICJkcmF3aW5nIikpKSB3aGVuKHN0cmluZ3AobGF5ZXIyKSAobGF5ZXIyID0gbGlzdChsYXllcjIgImRyYXdpbmciKSkpIHdoZW4oKGxheWVyMyAmJiBzdHJpbmdwKGxheWVyMykpIChsYXllcjMgPSBsaXN0KGxheWVyMyAiZHJhd2luZyIpKSkgKGxheWVyMWxlbmd0aCA9IG1heCgoKDIgKiBsYXllcjFFbmNWaWExKSArIChjb2x1bW4gKiB2aWExV2lkdGgpICsgKChjb2x1bW4gLSAxKSAqIHZpYTFTcGFjZSkpIGxheWVyMVdpZHRoKSkgKGxheWVyMXdpZHRoID0gbWF4KCgoMiAqIGxheWVyMUVuY1ZpYTEpICsgKHJvdyAqIHZpYTFXaWR0aCkgKyAoKHJvdyAtIDEpICogdmlhMVNwYWNlKSkgbGF5ZXIxV2lkdGgpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjEgbGlzdChsaXN0KDAuMCAwLjApIGxpc3QobGF5ZXIxbGVuZ3RoIGxheWVyMXdpZHRoKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYm90TGF5ZXIiICJsaXN0IiBsYXllcjEpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYm90TGF5ZXJCYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSB3aGVuKG1heHZMYXllciAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBtYXh2TGF5ZXIgbGlzdChsaXN0KDAuMCAwLjApIGxpc3QobGF5ZXIxbGVuZ3RoIGxheWVyMXdpZHRoKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpKSB3aGVuKChpbXBsYW50ICYmIGxheWVyMUltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMUltcGxhbnQgbGlzdChsaXN0KCgtIGxheWVyMUltcEVuYykgKC0gbGF5ZXIxSW1wRW5jKSkgbGlzdCgobGF5ZXIxbGVuZ3RoICsgbGF5ZXIxSW1wRW5jKSAobGF5ZXIxbGVuZ3RoICsgbGF5ZXIxSW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAoY29udGFjdFBpdGNoID0gKHZpYTFTcGFjZSArIHZpYTFXaWR0aCkpICh0aGVZID0gbGF5ZXIxRW5jVmlhMSkgZm9yKHIgMSByb3cgKHRoZVggPSBsYXllcjFFbmNWaWExKSBmb3IoY29sIDEgY29sdW1uIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QodGhlWCB0aGVZKSBsaXN0KCh0aGVYICsgdmlhMVdpZHRoKSAodGhlWSArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodGhlWCA9ICh0aGVYICsgY29udGFjdFBpdGNoKSkpICh0aGVZID0gKHRoZVkgKyBjb250YWN0UGl0Y2gpKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0V2lkdGgiICJsaXN0IiB2aWExV2lkdGgpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiY29udGFjdFNwYWNlIiAibGlzdCIgdmlhMVNwYWNlKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3RMYXllciIgImxpc3QiIHZpYTFMYXllcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGF5ZXJCYm94IiAibGlzdCIgbGlzdCgobGF5ZXIxRW5jVmlhMTpsYXllcjFFbmNWaWExKSAoY2FhZHIoKGRiSWR+PmJCb3gpKTpjYWRhZHIoKGRiSWR+PmJCb3gpKSkpKSB3aGVuKChpbXBsYW50ICYmIHZpYTFJbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExSW1wbGFudCBsaXN0KGxpc3QoKGxheWVyMUVuY1ZpYTEgLSB2aWExSW1wRW5jKSAobGF5ZXIxRW5jVmlhMSAtIHZpYTFJbXBFbmMpKSBsaXN0KChjYWFkcigoZGJJZH4+YkJveCkpICsgdmlhMUltcEVuYykgKGNhZGFkcigoZGJJZH4+YkJveCkpICsgdmlhMUltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKGxheWVyMkJib3ggPSBsaXN0KGxpc3QoKGxheWVyMUVuY1ZpYTEgLSBsYXllcjJYRW5jVmlhMSkgKGxheWVyMUVuY1ZpYTEgLSBsYXllcjJZRW5jVmlhMSkpIGxpc3QobWF4KGxheWVyMldpZHRoICgoMiAqIGxheWVyMlhFbmNWaWExKSArIChjb2x1bW4gKiB2aWExV2lkdGgpICsgKChjb2x1bW4gLSAxKSAqIHZpYTFTcGFjZSkpKSBtYXgobGF5ZXIyV2lkdGggKCgyICogbGF5ZXIyWUVuY1ZpYTEpICsgKHJvdyAqIHZpYTFXaWR0aCkgKyAoKHJvdyAtIDEpICogdmlhMVNwYWNlKSkpKSkpIChsYXllcjJYMUNvb3JkID0gY2FhcihsYXllcjJCYm94KSkgKGxheWVyMlkxQ29vcmQgPSBjYWRhcihsYXllcjJCYm94KSkgd2hlbihsYXllcjMgKGxheWVyMkJib3ggPSBsaXN0KGxpc3QobWluKGNhYXIobGF5ZXIyQmJveCkgKGxheWVyMUVuY1ZpYTEgLSBsYXllcjJFbmNWaWEyKSkgbWluKGNhZGFyKGxheWVyMkJib3gpIChsYXllcjFFbmNWaWExIC0gbGF5ZXIyRW5jVmlhMikpKSBsaXN0KG1heChjYWFkcihsYXllcjJCYm94KSAoKDIgKiBsYXllcjJFbmNWaWEyKSArIChjb2x1bW4gKiB2aWEyV2lkdGgpICsgKChjb2x1bW4gLSAxKSAqIHZpYTJTcGFjZSkgKyBsYXllcjFFbmNWaWExICsgKC0gbWF4KGxheWVyMkVuY1ZpYTIgbGF5ZXIyWEVuY1ZpYTEpKSkpIG1heChjYWRhZHIobGF5ZXIyQmJveCkgKCgyICogbGF5ZXIyRW5jVmlhMikgKyAocm93ICogdmlhMldpZHRoKSArICgocm93IC0gMSkgKiB2aWEyU3BhY2UpICsgbGF5ZXIxRW5jVmlhMSArICgtIG1heChsYXllcjJFbmNWaWEyIGxheWVyMllFbmNWaWExKSkpKSkpKSAobGF5ZXIyWDFDb29yZCA9IGNhYXIobGF5ZXIyQmJveCkpIChsYXllcjJZMUNvb3JkID0gY2FkYXIobGF5ZXIyQmJveCkpIChsYXllcjNsZW5ndGggPSBtYXgoKCgyLjAgKiBsYXllcjNYRW5jVmlhMikgKyAoY29sdW1uICogdmlhMldpZHRoKSArICgoY29sdW1uIC0gMSkgKiB2aWEyU3BhY2UpKSBsYXllcjNXaWR0aCkpIChsYXllcjN3aWR0aCA9IG1heCgoKDIuMCAqIGxheWVyM1lFbmNWaWEyKSArIChyb3cgKiB2aWEyV2lkdGgpICsgKChyb3cgLSAxKSAqIHZpYTJTcGFjZSkpIGxheWVyM1dpZHRoKSkgKGNvbnRhY3RQaXRjaCA9ICh2aWEyU3BhY2UgKyB2aWEyV2lkdGgpKSAodGhlWSA9IChsYXllcjJZMUNvb3JkICsgbGF5ZXIyRW5jVmlhMikpICh0aGVYID0gKGxheWVyMlgxQ29vcmQgKyBsYXllcjJFbmNWaWEyKSkgKGxheWVyM1gxQ29vcmQgPSAodGhlWCAtIGxheWVyM1hFbmNWaWEyKSkgKGxheWVyM1kxQ29vcmQgPSAodGhlWSAtIGxheWVyM1lFbmNWaWEyKSkgZm9yKHIgMSByb3cgKHRoZVggPSAobGF5ZXIyWDFDb29yZCArIGxheWVyMkVuY1ZpYTIpKSBmb3IoY29sIDEgY29sdW1uIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KGxpc3QodGhlWCB0aGVZKSBsaXN0KCh0aGVYICsgdmlhMldpZHRoKSAodGhlWSArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodGhlWCA9ICh0aGVYICsgY29udGFjdFBpdGNoKSkpICh0aGVZID0gKHRoZVkgKyBjb250YWN0UGl0Y2gpKSkgd2hlbigoaW1wbGFudCAmJiB2aWEySW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkltcGxhbnQgbGlzdChsaXN0KChsYXllcjJYMUNvb3JkICsgbGF5ZXIyRW5jVmlhMiArICgtIHZpYTJJbXBFbmMpKSAobGF5ZXIyWTFDb29yZCArIGxheWVyMkVuY1ZpYTIgKyAoLSB2aWEySW1wRW5jKSkpIGxpc3QoKGNhYWRyKChkYklkfj5iQm94KSkgKyB2aWEySW1wRW5jKSAoY2FkYWRyKChkYklkfj5iQm94KSkgKyB2aWEySW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSkgd2hlbigoaW1wbGFudCAmJiBsYXllcjJJbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjJJbXBsYW50IGxpc3QobGlzdCgobGF5ZXIyWDFDb29yZCAtIGxheWVyMkltcEVuYykgKGxheWVyMlkxQ29vcmQgLSBsYXllcjJJbXBFbmMpKSBsaXN0KChjYWFkcihsYXllcjJCYm94KSArIGxheWVyMkltcEVuYykgKGNhZGFkcihsYXllcjJCYm94KSArIGxheWVyMkltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxheWVyMkJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIGNvbmQoKCFsYXllcjMgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllciIgImxpc3QiIGxheWVyMikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpKSAodCAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdCgobGF5ZXIzWDFDb29yZDpsYXllcjNZMUNvb3JkKSBsaXN0KChsYXllcjNYMUNvb3JkICsgbGF5ZXIzbGVuZ3RoKSAobGF5ZXIzWTFDb29yZCArIGxheWVyM3dpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyIiAibGlzdCIgbGF5ZXIzKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyUGluQmJveCIgImxpc3QiIChkYklkfj5iQm94KSkgd2hlbigoaW1wbGFudCAmJiBsYXllcjNJbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjNJbXBsYW50IGxpc3QobGlzdCgobGF5ZXIzWDFDb29yZCAtIGxheWVyM0ltcEVuYykgKGxheWVyM1kxQ29vcmQgLSBsYXllcjNJbXBFbmMpKSBsaXN0KChsYXllcjNYMUNvb3JkICsgbGF5ZXIzbGVuZ3RoICsgbGF5ZXIzSW1wRW5jKSAobGF5ZXIzWTFDb29yZCArIGxheWVyM3dpZHRoICsgbGF5ZXIzSW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSkpKQAobGF5ZXIxIGxheWVyMiBsYXllcjMgbWF4dkxheWVyIHZpYTFMYXllciB2aWEyTGF5ZXIgbGF5ZXIxSW1wbGFudCBsYXllcjJJbXBsYW50IGxheWVyM0ltcGxhbnQgdmlhMUltcGxhbnQgdmlhMkltcGxhbnQgbGF5ZXIxV2lkdGggbGF5ZXIyV2lkdGggbGF5ZXIzV2lkdGggdmlhMVdpZHRoIHZpYTFTcGFjZSB2aWEyV2lkdGggdmlhMlNwYWNlIGxheWVyMUVuY1ZpYTEgbGF5ZXIyWEVuY1ZpYTEgbGF5ZXIyWUVuY1ZpYTEgbGF5ZXIyRW5jVmlhMiBsYXllcjNYRW5jVmlhMiBsYXllcjNZRW5jVmlhMiBsYXllcjFJbXBFbmMgbGF5ZXIySW1wRW5jIGxheWVyM0ltcEVuYyB2aWExSW1wRW5jIHZpYTJJbXBFbmMgcm93IGNvbHVtbiBpbXBsYW50IGFsbERpciBuZXQgbGF5ZXIxbGVuZ3RoIGxheWVyMXdpZHRoIGRiSWQgcGluSWQgY29udGFjdFBpdGNoIHRoZVkgciB0aGVYIGNvbCBsYXllcjJCYm94IGxheWVyMlgxQ29vcmQgbGF5ZXIyWTFDb29yZCBsYXllcjNsZW5ndGggbGF5ZXIzd2lkdGggbGF5ZXIzWDFDb29yZCBsYXllcjNZMUNvb3JkKQAoKHJvdyAxKSAoY29sdW1uIDEpIChpbXBsYW50ICJGQUxTRSIpKQAoKGxheWVyMSAiaGlsaXRlIikgKGxheWVyMiAicHJCb3VuZGFyeSIpIChsYXllcjMgbmlsKSAobWF4dkxheWVyIG5pbCkgKHZpYTFMYXllciAieTQiKSAodmlhMkxheWVyIG5pbCkgKGxheWVyMUltcGxhbnQgbmlsKSAobGF5ZXIySW1wbGFudCBuaWwpIChsYXllcjNJbXBsYW50IG5pbCkgKHZpYTFJbXBsYW50IG5pbCkgKHZpYTJJbXBsYW50IG5pbCkgKGxheWVyMVdpZHRoIDAuMCkgKGxheWVyMldpZHRoIDAuMCkgKGxheWVyM1dpZHRoIDAuMCkgKHZpYTFXaWR0aCAwLjApICh2aWExU3BhY2UgMC4wKSAodmlhMldpZHRoIDAuMCkgKHZpYTJTcGFjZSAwLjApIChsYXllcjFFbmNWaWExIDAuMCkgKGxheWVyMlhFbmNWaWExIDAuMCkgKGxheWVyMllFbmNWaWExIDAuMCkgKGxheWVyMkVuY1ZpYTIgMC4wKSAobGF5ZXIzWEVuY1ZpYTIgMC4wKSAobGF5ZXIzWUVuY1ZpYTIgMC4wKSAobGF5ZXIxSW1wRW5jIDAuMCkgKGxheWVyMkltcEVuYyAwLjApIChsYXllcjNJbXBFbmMgMC4wKSAodmlhMUltcEVuYyAwLjApICh2aWEySW1wRW5jIDAuMCkpACgoYWxsRGlyID0gbGlzdCgicmlnaHQiICJsZWZ0IiAidG9wIiAiYm90dG9tIikpIChuZXQgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgInBwZCIpKSB3aGVuKHN0cmluZ3AobGF5ZXIxKSAobGF5ZXIxID0gbGlzdChsYXllcjEgImRyYXdpbmciKSkpIHdoZW4oc3RyaW5ncChsYXllcjIpIChsYXllcjIgPSBsaXN0KGxheWVyMiAiZHJhd2luZyIpKSkgd2hlbigobGF5ZXIzICYmIHN0cmluZ3AobGF5ZXIzKSkgKGxheWVyMyA9IGxpc3QobGF5ZXIzICJkcmF3aW5nIikpKSAobGF5ZXIxbGVuZ3RoID0gbWF4KCgoMiAqIGxheWVyMUVuY1ZpYTEpICsgKGNvbHVtbiAqIHZpYTFXaWR0aCkgKyAoKGNvbHVtbiAtIDEpICogdmlhMVNwYWNlKSkgbGF5ZXIxV2lkdGgpKSAobGF5ZXIxd2lkdGggPSBtYXgoKCgyICogbGF5ZXIxRW5jVmlhMSkgKyAocm93ICogdmlhMVdpZHRoKSArICgocm93IC0gMSkgKiB2aWExU3BhY2UpKSBsYXllcjFXaWR0aCkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMSBsaXN0KGxpc3QoMC4wIDAuMCkgbGlzdChsYXllcjFsZW5ndGggbGF5ZXIxd2lkdGgpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0Rpcikgd2hlbihtYXh2TGF5ZXIgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbWF4dkxheWVyIGxpc3QobGlzdCgwLjAgMC4wKSBsaXN0KGxheWVyMWxlbmd0aCBsYXllcjF3aWR0aCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllciIgImxpc3QiIGxheWVyMSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllckJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIChjb250YWN0UGl0Y2ggPSAodmlhMVNwYWNlICsgdmlhMVdpZHRoKSkgKHRoZVkgPSBsYXllcjFFbmNWaWExKSBmb3IociAxIHJvdyAodGhlWCA9IGxheWVyMUVuY1ZpYTEpIGZvcihjb2wgMSBjb2x1bW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdCh0aGVYIHRoZVkpIGxpc3QoKHRoZVggKyB2aWExV2lkdGgpICh0aGVZICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh0aGVYID0gKHRoZVggKyBjb250YWN0UGl0Y2gpKSkgKHRoZVkgPSAodGhlWSArIGNvbnRhY3RQaXRjaCkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3RMYXllciIgImxpc3QiIHZpYTFMYXllcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGF5ZXJCYm94IiAibGlzdCIgbGlzdCgobGF5ZXIxRW5jVmlhMTpsYXllcjFFbmNWaWExKSAoY2FhZHIoKGRiSWR+PmJCb3gpKTpjYWRhZHIoKGRiSWR+PmJCb3gpKSkpKSAobGF5ZXIybGVuZ3RoID0gbWF4KCgoMiAqIGxheWVyMlhFbmNWaWExKSArIChjb2x1bW4gKiB2aWExV2lkdGgpICsgKChjb2x1bW4gLSAxKSAqIHZpYTFTcGFjZSkpIGxheWVyMldpZHRoKSkgKGxheWVyMndpZHRoID0gbWF4KCgoMiAqIGxheWVyMllFbmNWaWExKSArIChyb3cgKiB2aWExV2lkdGgpICsgKChyb3cgLSAxKSAqIHZpYTFTcGFjZSkpIGxheWVyMldpZHRoKSkgKGxheWVyMlgxQ29vcmQgPSAobGF5ZXIxRW5jVmlhMSAtIGxheWVyMlhFbmNWaWExKSkgKGxheWVyMlkxQ29vcmQgPSAobGF5ZXIxRW5jVmlhMSAtIGxheWVyMllFbmNWaWExKSkgd2hlbihsYXllcjMgKGxheWVyMlJpZ2h0RWRnZSA9IChsYXllcjJYMUNvb3JkICsgbGF5ZXIybGVuZ3RoKSkgKGxheWVyMlRvcEVkZ2UgPSAobGF5ZXIyWTFDb29yZCArIGxheWVyMndpZHRoKSkgKGxheWVyMkxlZnRFZGdlID0gbGF5ZXIyWDFDb29yZCkgKGxheWVyMkJvdEVkZ2UgPSBsYXllcjJZMUNvb3JkKSAobGF5ZXIybGVuZ3RoID0gKCgyICogbGF5ZXIyRW5jVmlhMikgKyAoY29sdW1uICogdmlhMldpZHRoKSArICgoY29sdW1uIC0gMSkgKiB2aWEyU3BhY2UpKSkgKGxheWVyMndpZHRoID0gKCgyICogbGF5ZXIyRW5jVmlhMikgKyAocm93ICogdmlhMldpZHRoKSArICgocm93IC0gMSkgKiB2aWEyU3BhY2UpKSkgKGxheWVyMlgxQ29vcmQgPSAobGF5ZXIxRW5jVmlhMSAtIGxheWVyMkVuY1ZpYTIpKSAobGF5ZXIyWTFDb29yZCA9IChsYXllcjFFbmNWaWExIC0gbGF5ZXIyRW5jVmlhMikpIChsYXllcjJSaWdodEVkZ2UgPSBtYXgobGF5ZXIyUmlnaHRFZGdlIChsYXllcjJYMUNvb3JkICsgbGF5ZXIybGVuZ3RoKSkpIChsYXllcjJUb3BFZGdlID0gbWF4KGxheWVyMlRvcEVkZ2UgKGxheWVyMlkxQ29vcmQgKyBsYXllcjJ3aWR0aCkpKSAobGF5ZXIyWDFDb29yZCA9IG1pbihsYXllcjJMZWZ0RWRnZSBsYXllcjJYMUNvb3JkKSkgKGxheWVyMlkxQ29vcmQgPSBtaW4obGF5ZXIyQm90RWRnZSBsYXllcjJZMUNvb3JkKSkgKGxheWVyMmxlbmd0aCA9IChsYXllcjJSaWdodEVkZ2UgLSBsYXllcjJYMUNvb3JkKSkgKGxheWVyMndpZHRoID0gKGxheWVyMlRvcEVkZ2UgLSBsYXllcjJZMUNvb3JkKSkgKGxheWVyM2xlbmd0aCA9IG1heCgoKDIuMCAqIGxheWVyM1hFbmNWaWEyKSArIChjb2x1bW4gKiB2aWEyV2lkdGgpICsgKChjb2x1bW4gLSAxKSAqIHZpYTJTcGFjZSkpIGxheWVyM1dpZHRoKSkgKGxheWVyM3dpZHRoID0gbWF4KCgoMi4wICogbGF5ZXIzWUVuY1ZpYTIpICsgKHJvdyAqIHZpYTJXaWR0aCkgKyAoKHJvdyAtIDEpICogdmlhMlNwYWNlKSkgbGF5ZXIzV2lkdGgpKSAoY29udGFjdFBpdGNoID0gKHZpYTJTcGFjZSArIHZpYTJXaWR0aCkpICh0aGVZID0gKGxheWVyMlkxQ29vcmQgKyBsYXllcjJFbmNWaWEyKSkgKHRoZVggPSAobGF5ZXIyWDFDb29yZCArIGxheWVyMkVuY1ZpYTIpKSAobGF5ZXIzWDFDb29yZCA9ICh0aGVYIC0gbGF5ZXIzWEVuY1ZpYTIpKSAobGF5ZXIzWTFDb29yZCA9ICh0aGVZIC0gbGF5ZXIzWUVuY1ZpYTIpKSBmb3IociAxIHJvdyAodGhlWCA9IChsYXllcjJYMUNvb3JkICsgbGF5ZXIyRW5jVmlhMikpIGZvcihjb2wgMSBjb2x1bW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QobGlzdCh0aGVYIHRoZVkpIGxpc3QoKHRoZVggKyB2aWEyV2lkdGgpICh0aGVZICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh0aGVYID0gKHRoZVggKyBjb250YWN0UGl0Y2gpKSkgKHRoZVkgPSAodGhlWSArIGNvbnRhY3RQaXRjaCkpKSkgKGxheWVyMlgyQ29vcmQgPSAobGF5ZXIyWDFDb29yZCArIGxheWVyMmxlbmd0aCkpIChsYXllcjJZMkNvb3JkID0gKGxheWVyMlkxQ29vcmQgKyBsYXllcjJ3aWR0aCkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KChsYXllcjJYMUNvb3JkOmxheWVyMlkxQ29vcmQpIChsYXllcjJYMkNvb3JkOmxheWVyMlkyQ29vcmQpKSkpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSBjb25kKCghbGF5ZXIzIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSkgKHQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QoKGxheWVyM1gxQ29vcmQ6bGF5ZXIzWTFDb29yZCkgKChsYXllcjNYMUNvb3JkICsgbGF5ZXIzbGVuZ3RoKToobGF5ZXIzWTFDb29yZCArIGxheWVyM3dpZHRoKSkpKSkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjMpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSkpKQAobGF5ZXIxIGxheWVyMiBsYXllcjMgbWF4dkxheWVyIHZpYTFMYXllciB2aWEyTGF5ZXIgbGF5ZXIxV2lkdGggbGF5ZXIyV2lkdGggbGF5ZXIzV2lkdGggdmlhMVdpZHRoIHZpYTFTcGFjZSB2aWEyV2lkdGggdmlhMlNwYWNlIGxheWVyMUVuY1ZpYTEgbGF5ZXIyWEVuY1ZpYTEgbGF5ZXIyWUVuY1ZpYTEgbGF5ZXIyRW5jVmlhMiBsYXllcjNYRW5jVmlhMiBsYXllcjNZRW5jVmlhMiByb3cgY29sdW1uIGFsbERpciBuZXQgbGF5ZXIxbGVuZ3RoIGxheWVyMXdpZHRoIGRiSWQgcGluSWQgY29udGFjdFBpdGNoIHRoZVkgciB0aGVYIGNvbCBsYXllcjJsZW5ndGggbGF5ZXIyd2lkdGggbGF5ZXIyWDFDb29yZCBsYXllcjJZMUNvb3JkIGxheWVyMlJpZ2h0RWRnZSBsYXllcjJUb3BFZGdlIGxheWVyMkxlZnRFZGdlIGxheWVyMkJvdEVkZ2UgbGF5ZXIzbGVuZ3RoIGxheWVyM3dpZHRoIGxheWVyM1gxQ29vcmQgbGF5ZXIzWTFDb29yZCBsYXllcjJYMkNvb3JkIGxheWVyMlkyQ29vcmQpACgocm93IDEpIChjb2x1bW4gMSkpACgobGF5ZXIxICJoaWxpdGUiKSAobGF5ZXIyICJwckJvdW5kYXJ5IikgKGxheWVyMyBuaWwpIChtYXh2TGF5ZXIgbmlsKSAodmlhMUxheWVyICJ5NCIpICh2aWEyTGF5ZXIgbmlsKSAobGF5ZXIxV2lkdGggMC4wKSAobGF5ZXIyV2lkdGggMC4wKSAobGF5ZXIzV2lkdGggMC4wKSAodmlhMVdpZHRoIDAuMCkgKHZpYTFTcGFjZSAwLjApICh2aWEyV2lkdGggMC4wKSAodmlhMlNwYWNlIDAuMCkgKGxheWVyMUVuY1ZpYTEgMC4wKSAobGF5ZXIyWEVuY1ZpYTEgMC4wKSAobGF5ZXIyWUVuY1ZpYTEgMC4wKSAobGF5ZXIyRW5jVmlhMiAwLjApIChsYXllcjNYRW5jVmlhMiAwLjApIChsYXllcjNZRW5jVmlhMiAwLjApKQAoaWYoKChpbldlbGwgPT0gdCkgfHwgKGluV2VsbCA9PSAiVFJVRSIpKSB0aGVuIChpbldlbGwgPSB0KSBlbHNlIChpbldlbGwgPSBuaWwpKSBpZigoKGltcGxhbnQgPT0gdCkgfHwgKGltcGxhbnQgPT0gIlRSVUUiKSkgdGhlbiAoaW1wbGFudCA9IHQpIGVsc2UgKGltcGxhbnQgPSBuaWwpKSBpZigoKHJvdEwxRW5jVjEgPT0gdCkgfHwgKHJvdEwxRW5jVjEgPT0gIlRSVUUiKSkgdGhlbiAocm90TDFFbmNWMSA9IHQpIGVsc2UgKHJvdEwxRW5jVjEgPSBuaWwpKSBpZigoKHJvdEwyRW5jVjEgPT0gdCkgfHwgKHJvdEwyRW5jVjEgPT0gIlRSVUUiKSkgdGhlbiAocm90TDJFbmNWMSA9IHQpIGVsc2UgKHJvdEwyRW5jVjEgPSBuaWwpKSBpZigoKHJvdEwyRW5jVjIgPT0gdCkgfHwgKHJvdEwyRW5jVjIgPT0gIlRSVUUiKSkgdGhlbiAocm90TDJFbmNWMiA9IHQpIGVsc2UgKHJvdEwyRW5jVjIgPSBuaWwpKSBpZigoKHJvdEwzRW5jVjIgPT0gdCkgfHwgKHJvdEwzRW5jVjIgPT0gIlRSVUUiKSkgdGhlbiAocm90TDNFbmNWMiA9IHQpIGVsc2UgKHJvdEwzRW5jVjIgPSBuaWwpKSBpZigoKG5vTGF5ZXIzID09IHQpIHx8IChub0xheWVyMyA9PSAiVFJVRSIpKSB0aGVuIChub0xheWVyMyA9IHQpIGVsc2UgKG5vTGF5ZXIzID0gbmlsKSkgaWYoKChmdWxsTGF5ZXIyID09IHQpIHx8IChmdWxsTGF5ZXIyID09ICJUUlVFIikpIHRoZW4gKGZ1bGxMYXllcjIgPSB0KSBlbHNlIChmdWxsTGF5ZXIyID0gbmlsKSkgaWYoKChSb3dDb2wgPT0gdCkgfHwgKFJvd0NvbCA9PSAiVFJVRSIpKSB0aGVuIChSb3dDb2wgPSB0KSBlbHNlIChSb3dDb2wgPSBuaWwpKSB3aGVuKHJvdEwxRW5jVjEgKHRlbXAgPSBsYXllcjFYRW5jVmlhMSkgKGxheWVyMVhFbmNWaWExID0gbGF5ZXIxWUVuY1ZpYTEpIChsYXllcjFZRW5jVmlhMSA9IHRlbXApKSB3aGVuKHJvdEwyRW5jVjEgKHRlbXAgPSBsYXllcjJYRW5jVmlhMSkgKGxheWVyMlhFbmNWaWExID0gbGF5ZXIyWUVuY1ZpYTEpIChsYXllcjJZRW5jVmlhMSA9IHRlbXApKSB3aGVuKHJvdEwyRW5jVjIgKHRlbXAgPSBsYXllcjJYRW5jVmlhMikgKGxheWVyMlhFbmNWaWEyID0gbGF5ZXIyWUVuY1ZpYTIpIChsYXllcjJZRW5jVmlhMiA9IHRlbXApKSB3aGVuKHJvdEwzRW5jVjIgKHRlbXAgPSBsYXllcjNYRW5jVmlhMikgKGxheWVyM1hFbmNWaWEyID0gbGF5ZXIzWUVuY1ZpYTIpIChsYXllcjNZRW5jVmlhMiA9IHRlbXApKSB3aGVuKGltcGxhbnQgd2hlbihsYXllcjFJbXBsYW50IGlmKGluV2VsbCB0aGVuIChsYXllcjFJbXBsYW50ID0gY2FkcihsYXllcjFJbXBsYW50KSkgKGxheWVyMUltcEVuYyA9IGNhZHIobGF5ZXIxSW1wRW5jKSkgZWxzZSAobGF5ZXIxSW1wbGFudCA9IGNhcihsYXllcjFJbXBsYW50KSkgKGxheWVyMUltcEVuYyA9IGNhcihsYXllcjFJbXBFbmMpKSkpIHdoZW4obGF5ZXIySW1wbGFudCBpZihpbldlbGwgdGhlbiAobGF5ZXIySW1wbGFudCA9IGNhZHIobGF5ZXIySW1wbGFudCkpIChsYXllcjJJbXBFbmMgPSBjYWRyKGxheWVyMkltcEVuYykpIGVsc2UgKGxheWVyMkltcGxhbnQgPSBjYXIobGF5ZXIySW1wbGFudCkpIChsYXllcjJJbXBFbmMgPSBjYXIobGF5ZXIySW1wRW5jKSkpKSB3aGVuKGxheWVyM0ltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGxheWVyM0ltcGxhbnQgPSBjYWRyKGxheWVyM0ltcGxhbnQpKSAobGF5ZXIzSW1wRW5jID0gY2FkcihsYXllcjNJbXBFbmMpKSBlbHNlIChsYXllcjNJbXBsYW50ID0gY2FyKGxheWVyM0ltcGxhbnQpKSAobGF5ZXIzSW1wRW5jID0gY2FyKGxheWVyM0ltcEVuYykpKSkgd2hlbih2aWExSW1wbGFudCBpZihpbldlbGwgdGhlbiAodmlhMUltcGxhbnQgPSBjYWRyKHZpYTFJbXBsYW50KSkgKHZpYTFJbXBFbmMgPSBjYWRyKHZpYTFJbXBFbmMpKSBlbHNlICh2aWExSW1wbGFudCA9IGNhcih2aWExSW1wbGFudCkpICh2aWExSW1wRW5jID0gY2FyKHZpYTFJbXBFbmMpKSkpIHdoZW4odmlhMkltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKHZpYTJJbXBsYW50ID0gY2Fkcih2aWEySW1wbGFudCkpICh2aWEySW1wRW5jID0gY2Fkcih2aWEySW1wRW5jKSkgZWxzZSAodmlhMkltcGxhbnQgPSBjYXIodmlhMkltcGxhbnQpKSAodmlhMkltcEVuYyA9IGNhcih2aWEySW1wRW5jKSkpKSkgKGFsbERpciA9IGxpc3QoInJpZ2h0IiAibGVmdCIgInRvcCIgImJvdHRvbSIpKSAobmV0ID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJwcGQiKSkgKHZpYTFYUGl0Y2ggPSAodmlhMVNwYWNpbmcgKyB2aWExV2lkdGgpKSAodmlhMVlQaXRjaCA9ICh2aWExU3BhY2luZyArIHZpYTFMZW5ndGgpKSAodmlhMlhQaXRjaCA9ICh2aWEyU3BhY2luZyArIHZpYTJXaWR0aCkpICh2aWEyWVBpdGNoID0gKHZpYTJTcGFjaW5nICsgdmlhMkxlbmd0aCkpIGlmKFJvd0NvbCB0aGVuIChyb3dWaWExID0gbWF4KHJvdyAxKSkgKGNvbFZpYTEgPSBtYXgoY29sdW1uIDEpKSAobGF5ZXIxWFNpemUgPSAoKGNvbFZpYTEgKiB2aWExWFBpdGNoKSArICgtIHZpYTFTcGFjaW5nKSArIGxheWVyMVhFbmNWaWExICsgbGF5ZXIxWEVuY1ZpYTEpKSAobGF5ZXIxWVNpemUgPSAoKHJvd1ZpYTEgKiB2aWExWVBpdGNoKSArICgtIHZpYTFTcGFjaW5nKSArIGxheWVyMVlFbmNWaWExICsgbGF5ZXIxWUVuY1ZpYTEpKSBlbHNlIGlmKChsYXllcjFXIDwgbWF4KGxheWVyMVdpZHRoICh2aWExV2lkdGggKyAoMiAqIGxheWVyMVhFbmNWaWExKSkpKSB0aGVuIGVycm9yKCJyYzNJbnRlckNvbkNlblBvbEltcENsYXNzOiBsYXllcjFXICVnIGlzIHRvbyBuYXJyb3cgKG1pbiAlZylcbiIgbGF5ZXIxVyAodmlhMVdpZHRoICsgKDIgKiBsYXllcjFYRW5jVmlhMSkpKSkgaWYoKGxheWVyMUwgPCBtYXgobGF5ZXIxV2lkdGggKHZpYTFMZW5ndGggKyAoMiAqIGxheWVyMVlFbmNWaWExKSkpKSB0aGVuIGVycm9yKCJyYzNJbnRlckNvbkNlblBvbEltcENsYXNzOiBsYXllcjFMICVnIGlzIHRvbyBuYXJyb3cgKG1pbiAlZylcbiIgbGF5ZXIxTCAodmlhMUxlbmd0aCArICgyICogbGF5ZXIxWUVuY1ZpYTEpKSkpIChsYXllcjFYU2l6ZSA9IGxheWVyMVcpIChsYXllcjFZU2l6ZSA9IGxheWVyMUwpKSAocm93VmlhMSA9IG1heChmaXgoKCgobGF5ZXIxWVNpemUgKyB2aWExU3BhY2luZyArICgtICgyICogbGF5ZXIxWUVuY1ZpYTEpKSkgLyB2aWExWVBpdGNoKSArIDFlLTA1KSkgMSkpIChjb2xWaWExID0gbWF4KGZpeCgoKChsYXllcjFYU2l6ZSArIHZpYTFTcGFjaW5nICsgKC0gKDIgKiBsYXllcjFYRW5jVmlhMSkpKSAvIHZpYTFYUGl0Y2gpICsgMWUtMDUpKSAxKSkgKGxheWVyMUJib3ggPSBsaXN0KGxpc3QoMC4wIDAuMCkgbGlzdChsYXllcjFYU2l6ZSBsYXllcjFZU2l6ZSkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjEgbGF5ZXIxQmJveCkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllciIgImxpc3QiIGxheWVyMSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllckJib3giICJsaXN0IiBsYXllcjFCYm94KSB3aGVuKChpbXBsYW50ICYmIGxheWVyMUltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMUltcGxhbnQgbGlzdChsaXN0KCgtIGxheWVyMUltcEVuYykgKC0gbGF5ZXIxSW1wRW5jKSkgbGlzdCgobGF5ZXIxWFNpemUgKyBsYXllcjFJbXBFbmMpIChsYXllcjFZU2l6ZSArIGxheWVyMUltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgd2hlbigod2VsbExheWVyICYmIGluV2VsbCAmJiBpbXBsYW50KSAod2VsbExheWVyWDEgPSAoY2FhcihsYXllcjFCYm94KSAtIHdlbGxMYXllckVuYykpICh3ZWxsTGF5ZXJZMSA9IChjYWRhcihsYXllcjFCYm94KSAtIHdlbGxMYXllckVuYykpICh3ZWxsTGF5ZXJYMiA9IChjYWFkcihsYXllcjFCYm94KSArIHdlbGxMYXllckVuYykpICh3ZWxsTGF5ZXJZMiA9IChjYWRhZHIobGF5ZXIxQmJveCkgKyB3ZWxsTGF5ZXJFbmMpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgbGlzdCgod2VsbExheWVyWDE6d2VsbExheWVyWTEpICh3ZWxsTGF5ZXJYMjp3ZWxsTGF5ZXJZMikpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSB3aGVuKGlkTGF5ZXIgaWYoKHdlbGxMYXllciAmJiBpbldlbGwgJiYgaW1wbGFudCAmJiBpZEVuY1dlbGwpIHRoZW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaWRMYXllciBsaXN0KGxpc3QoKHdlbGxMYXllclgxIC0gaWRMYXllckVuY1dlbGwpICh3ZWxsTGF5ZXJZMSAtIGlkTGF5ZXJFbmNXZWxsKSkgbGlzdCgod2VsbExheWVyWDIgKyBpZExheWVyRW5jV2VsbCkgKHdlbGxMYXllclkyICsgaWRMYXllckVuY1dlbGwpKSkpKSBlbHNlIChsYXllcjFYd2lkdGggPSBhYnMoKGNhYXIobGF5ZXIxQmJveCkgLSBjYWFkcihsYXllcjFCYm94KSkpKSAobGF5ZXIxWXdpZHRoID0gYWJzKChjYWRhcihsYXllcjFCYm94KSAtIGNhZGFkcihsYXllcjFCYm94KSkpKSAoaWRXaWR0aFggPSAoKDIgKiBpZExheWVyRW5jKSArIGxheWVyMVh3aWR0aCkpIChpZFdpZHRoWSA9ICgoMiAqIGlkTGF5ZXJFbmMpICsgbGF5ZXIxWXdpZHRoKSkgaWYoKGlkV2lkdGhYIDwgaWRMYXllcldpZHRoKSB0aGVuIChpZExheWVyRW5jWCA9ICgoaWRMYXllcldpZHRoIC0gbGF5ZXIxWHdpZHRoKSAvIDIpKSAoaWRMYXllckVuY1ggPSAoKGNlaWxpbmcgKChpZExheWVyRW5jWCAvIHNuYXBHcmlkKSArIC0xZS0wNikpICogc25hcEdyaWQpKSBlbHNlIChpZExheWVyRW5jWCA9IGlkTGF5ZXJFbmMpKSBpZigoaWRXaWR0aFkgPCBpZExheWVyV2lkdGgpIHRoZW4gKGlkTGF5ZXJFbmNZID0gKChpZExheWVyV2lkdGggLSBsYXllcjFZd2lkdGgpIC8gMikpIChpZExheWVyRW5jWSA9ICgoY2VpbGluZyAoKGlkTGF5ZXJFbmNZIC8gc25hcEdyaWQpICsgLTFlLTA2KSkgKiBzbmFwR3JpZCkpIGVsc2UgKGlkTGF5ZXJFbmNZID0gaWRMYXllckVuYykpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGlkTGF5ZXIgbGlzdChsaXN0KChjYWFyKGxheWVyMUJib3gpIC0gaWRMYXllckVuY1gpIChjYWRhcihsYXllcjFCYm94KSAtIGlkTGF5ZXJFbmNZKSkgbGlzdCgoY2FhZHIobGF5ZXIxQmJveCkgKyBpZExheWVyRW5jWCkgKGNhZGFkcihsYXllcjFCYm94KSArIGlkTGF5ZXJFbmNZKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKHZpYTFZb2Zmc2V0ID0gbWF4KDAuMCAoKGxheWVyMVlTaXplICsgKC0yICogbGF5ZXIxWUVuY1ZpYTEpICsgdmlhMVNwYWNpbmcgKyAoKC0gcm93VmlhMSkgKiB2aWExWVBpdGNoKSkgLyAyKSkpICh2aWExWW9mZnNldCA9IChmaXgoKCh2aWExWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA1KSkgKiBzbmFwR3JpZCkpICh2aWExWXN0YXJ0ID0gKGNhZGFyKGxheWVyMUJib3gpICsgdmlhMVlvZmZzZXQgKyBsYXllcjFZRW5jVmlhMSkpICh2aWExWG9mZnNldCA9IG1heCgwLjAgKChsYXllcjFYU2l6ZSArICgtMiAqIGxheWVyMVhFbmNWaWExKSArIHZpYTFTcGFjaW5nICsgKCgtIGNvbFZpYTEpICogdmlhMVhQaXRjaCkpIC8gMikpKSAodmlhMVhvZmZzZXQgPSAoZml4KCgodmlhMVhvZmZzZXQgLyBzbmFwR3JpZCkgKyAxZS0wNSkpICogc25hcEdyaWQpKSAodmlhMVhzdGFydCA9ICh2aWExWG9mZnNldCArIGNhYXIobGF5ZXIxQmJveCkgKyBsYXllcjFYRW5jVmlhMSkpICh0aGVZID0gdmlhMVlzdGFydCkgZm9yKHIgMSByb3dWaWExICh0aGVYID0gdmlhMVhzdGFydCkgZm9yKGNvbCAxIGNvbFZpYTEgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHRoZVg6dGhlWSkgKCh0aGVYICsgdmlhMVdpZHRoKToodGhlWSArIHZpYTFMZW5ndGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRoZVggPSAodGhlWCArIHZpYTFYUGl0Y2gpKSkgKHRoZVkgPSAodGhlWSArIHZpYTFZUGl0Y2gpKSkgKHZpYTFCYm94ID0gbGlzdChsaXN0KHZpYTFYc3RhcnQgdmlhMVlzdGFydCkgbGlzdChjYWFkcigoZGJJZH4+YkJveCkpIGNhZGFkcigoZGJJZH4+YkJveCkpKSkpIHdoZW4oKGltcGxhbnQgJiYgdmlhMUltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFJbXBsYW50IGxpc3QobGlzdCgoY2Fhcih2aWExQmJveCkgLSB2aWExSW1wRW5jKSAoY2FkYXIodmlhMUJib3gpIC0gdmlhMUltcEVuYykpIGxpc3QoKGNhYWRyKHZpYTFCYm94KSArIHZpYTFJbXBFbmMpIChjYWRhZHIodmlhMUJib3gpICsgdmlhMUltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKGxheWVyMkJib3ggPSBsaXN0KGxpc3QoKHZpYTFYc3RhcnQgLSBsYXllcjJYRW5jVmlhMSkgKHZpYTFZc3RhcnQgLSBsYXllcjJZRW5jVmlhMSkpIGxpc3QoKGNhYWRyKHZpYTFCYm94KSArIGxheWVyMlhFbmNWaWExKSAoY2FkYWRyKHZpYTFCYm94KSArIGxheWVyMllFbmNWaWExKSkpKSB3aGVuKGZ1bGxMYXllcjIgKGxheWVyMkJib3ggPSBsaXN0KGxpc3QobWluKGNhYXIobGF5ZXIyQmJveCkgY2FhcihsYXllcjFCYm94KSkgbWluKGNhZGFyKGxheWVyMkJib3gpIGNhZGFyKGxheWVyMUJib3gpKSkgbGlzdChtYXgoY2FhZHIobGF5ZXIyQmJveCkgY2FhZHIobGF5ZXIxQmJveCkpIG1heChjYWRhZHIobGF5ZXIyQmJveCkgY2FkYWRyKGxheWVyMUJib3gpKSkpKSkgaWYoKCFsYXllcjMgfHwgbm9MYXllcjMpIHRoZW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxheWVyMkJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAibGlzdCIgbGF5ZXIyQmJveCkgd2hlbigoaW1wbGFudCAmJiBsYXllcjJJbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjJJbXBsYW50IGxpc3QobGlzdCgoY2FhcihsYXllcjJCYm94KSAtIGxheWVyMkltcEVuYykgKGNhZGFyKGxheWVyMkJib3gpIC0gbGF5ZXIySW1wRW5jKSkgbGlzdCgoY2FhZHIobGF5ZXIyQmJveCkgKyBsYXllcjJJbXBFbmMpIChjYWRhZHIobGF5ZXIyQmJveCkgKyBsYXllcjJJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIGVsc2UgKGxheWVyMlhTaXplID0gKGNhYWRyKGxheWVyMkJib3gpIC0gY2FhcihsYXllcjJCYm94KSkpIChsYXllcjJZU2l6ZSA9IChjYWRhZHIobGF5ZXIyQmJveCkgLSBjYWRhcihsYXllcjJCYm94KSkpIChyb3dWaWEyID0gbWF4KGZpeCgoKChsYXllcjJZU2l6ZSArIHZpYTJTcGFjaW5nICsgKC0gKDIgKiBsYXllcjJZRW5jVmlhMikpKSAvIHZpYTJZUGl0Y2gpICsgMWUtMDUpKSAxKSkgKGNvbFZpYTIgPSBtYXgoZml4KCgoKGxheWVyMlhTaXplICsgdmlhMlNwYWNpbmcgKyAoLSAoMiAqIGxheWVyMlhFbmNWaWEyKSkpIC8gdmlhMlhQaXRjaCkgKyAxZS0wNSkpIDEpKSAobGF5ZXIyWVNpemVWMiA9ICgodmlhMllQaXRjaCAqIHJvd1ZpYTIpICsgKDIuMCAqIGxheWVyMllFbmNWaWEyKSArICgtIHZpYTJTcGFjaW5nKSkpIChsYXllcjJZRXh0cmEgPSBtYXgoMC4wIChsYXllcjJZU2l6ZVYyIC0gbGF5ZXIyWVNpemUpKSkgKGxheWVyMllFeHRyYSA9ICgoY2VpbGluZyAoKChsYXllcjJZRXh0cmEgLyAyLjApIC8gc25hcEdyaWQpICsgLTFlLTA1KSkgKiBzbmFwR3JpZCkpIChsYXllcjJYU2l6ZVYyID0gKCh2aWEyWFBpdGNoICogY29sVmlhMikgKyAoMi4wICogbGF5ZXIyWEVuY1ZpYTIpICsgKC0gdmlhMlNwYWNpbmcpKSkgKGxheWVyMlhFeHRyYSA9IG1heCgwLjAgKGxheWVyMlhTaXplVjIgLSBsYXllcjJYU2l6ZSkpKSAobGF5ZXIyWEV4dHJhID0gKChjZWlsaW5nICgoKGxheWVyMlhFeHRyYSAvIDIuMCkgLyBzbmFwR3JpZCkgKyAtMWUtMDUpKSAqIHNuYXBHcmlkKSkgKGxheWVyMkJib3ggPSBsaXN0KGxpc3QoKGNhYXIobGF5ZXIyQmJveCkgLSBsYXllcjJYRXh0cmEpIChjYWRhcihsYXllcjJCYm94KSAtIGxheWVyMllFeHRyYSkpIGxpc3QoKGNhYWRyKGxheWVyMkJib3gpICsgbGF5ZXIyWEV4dHJhKSAoY2FkYWRyKGxheWVyMkJib3gpICsgbGF5ZXIyWUV4dHJhKSkpKSAobGF5ZXIyWFNpemUgPSAoY2FhZHIobGF5ZXIyQmJveCkgLSBjYWFyKGxheWVyMkJib3gpKSkgKGxheWVyMllTaXplID0gKGNhZGFkcihsYXllcjJCYm94KSAtIGNhZGFyKGxheWVyMkJib3gpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxheWVyMkJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIHdoZW4oKGltcGxhbnQgJiYgbGF5ZXIySW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIySW1wbGFudCBsaXN0KGxpc3QoKGNhYXIobGF5ZXIyQmJveCkgLSBsYXllcjJJbXBFbmMpIChjYWRhcihsYXllcjJCYm94KSAtIGxheWVyMkltcEVuYykpIGxpc3QoKGNhYWRyKGxheWVyMkJib3gpICsgbGF5ZXIySW1wRW5jKSAoY2FkYWRyKGxheWVyMkJib3gpICsgbGF5ZXIySW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAodmlhMllvZmZzZXQgPSBtYXgoMC4wICgobGF5ZXIyWVNpemUgKyAoLTIgKiBsYXllcjJZRW5jVmlhMikgKyB2aWEyU3BhY2luZyArICgoLSByb3dWaWEyKSAqIHZpYTJZUGl0Y2gpKSAvIDIpKSkgKHZpYTJZb2Zmc2V0ID0gKGZpeCgoKHZpYTJZb2Zmc2V0IC8gc25hcEdyaWQpICsgMWUtMDUpKSAqIHNuYXBHcmlkKSkgKHZpYTJZc3RhcnQgPSAoY2FkYXIobGF5ZXIyQmJveCkgKyB2aWEyWW9mZnNldCArIGxheWVyMllFbmNWaWEyKSkgKHZpYTJYb2Zmc2V0ID0gbWF4KDAuMCAoKGxheWVyMlhTaXplICsgKC0yICogbGF5ZXIyWEVuY1ZpYTIpICsgdmlhMlNwYWNpbmcgKyAoKC0gY29sVmlhMikgKiB2aWEyWFBpdGNoKSkgLyAyKSkpICh2aWEyWG9mZnNldCA9IChmaXgoKCh2aWEyWG9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA1KSkgKiBzbmFwR3JpZCkpICh2aWEyWHN0YXJ0ID0gKHZpYTJYb2Zmc2V0ICsgY2FhcihsYXllcjJCYm94KSArIGxheWVyMlhFbmNWaWEyKSkgKHRoZVkgPSB2aWEyWXN0YXJ0KSBmb3IociAxIHJvd1ZpYTIgKHRoZVggPSB2aWEyWHN0YXJ0KSBmb3IoY29sIDEgY29sVmlhMiAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdCgodGhlWDp0aGVZKSAoKHRoZVggKyB2aWEyV2lkdGgpOih0aGVZICsgdmlhMkxlbmd0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodGhlWCA9ICh0aGVYICsgdmlhMlhQaXRjaCkpKSAodGhlWSA9ICh0aGVZICsgdmlhMllQaXRjaCkpKSAodmlhMkJib3ggPSBsaXN0KGxpc3QodmlhMlhzdGFydCB2aWEyWXN0YXJ0KSBsaXN0KGNhYWRyKChkYklkfj5iQm94KSkgY2FkYWRyKChkYklkfj5iQm94KSkpKSkgd2hlbigoaW1wbGFudCAmJiB2aWEySW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkltcGxhbnQgbGlzdChsaXN0KChjYWFyKHZpYTJCYm94KSAtIHZpYTJJbXBFbmMpIChjYWRhcih2aWEyQmJveCkgLSB2aWEySW1wRW5jKSkgbGlzdCgoY2FhZHIodmlhMkJib3gpICsgdmlhMkltcEVuYykgKGNhZGFkcih2aWEyQmJveCkgKyB2aWEySW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAobGF5ZXIzQmJveCA9IGxpc3QobGlzdCgodmlhMlhzdGFydCAtIGxheWVyM1hFbmNWaWEyKSAodmlhMllzdGFydCAtIGxheWVyM1lFbmNWaWEyKSkgbGlzdCgoY2FhZHIodmlhMkJib3gpICsgbGF5ZXIzWEVuY1ZpYTIpIChjYWRhZHIodmlhMkJib3gpICsgbGF5ZXIzWUVuY1ZpYTIpKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsYXllcjNCYm94KSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyIiAibGlzdCIgbGF5ZXIzKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyUGluQmJveCIgImxpc3QiIGxheWVyM0Jib3gpIHdoZW4oKGltcGxhbnQgJiYgbGF5ZXIzSW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzSW1wbGFudCBsaXN0KGxpc3QoKGNhYXIobGF5ZXIzQmJveCkgLSBsYXllcjNJbXBFbmMpIChjYWRhcihsYXllcjNCYm94KSAtIGxheWVyM0ltcEVuYykpIGxpc3QoKGNhYWRyKGxheWVyM0Jib3gpICsgbGF5ZXIzSW1wRW5jKSAoY2FkYWRyKGxheWVyM0Jib3gpICsgbGF5ZXIzSW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSkpAChsYXllcjEgbGF5ZXIyIGxheWVyMyB2aWExTGF5ZXIgdmlhMkxheWVyIGxheWVyMVdpZHRoIGxheWVyMVhFbmNWaWExIGxheWVyMVlFbmNWaWExIGxheWVyMlhFbmNWaWExIGxheWVyMllFbmNWaWExIGxheWVyMlhFbmNWaWEyIGxheWVyMllFbmNWaWEyIGxheWVyM1hFbmNWaWEyIGxheWVyM1lFbmNWaWEyIHdlbGxMYXllciB3ZWxsTGF5ZXJFbmMgaWRMYXllciBpZExheWVyRW5jIGlkTGF5ZXJFbmNXZWxsIGlkRW5jV2VsbCBpZExheWVyV2lkdGggbGF5ZXIxSW1wbGFudCBsYXllcjFJbXBFbmMgbGF5ZXIySW1wbGFudCBsYXllcjJJbXBFbmMgbGF5ZXIzSW1wbGFudCBsYXllcjNJbXBFbmMgdmlhMUltcGxhbnQgdmlhMUltcEVuYyB2aWEySW1wbGFudCB2aWEySW1wRW5jIHZpYTFXaWR0aCB2aWExTGVuZ3RoIHZpYTFTcGFjaW5nIHZpYTJXaWR0aCB2aWEyTGVuZ3RoIHZpYTJTcGFjaW5nIHNuYXBHcmlkIHJvdEwxRW5jVjEgcm90TDJFbmNWMSByb3RMMkVuY1YyIHJvdEwzRW5jVjIgbm9MYXllcjMgZnVsbExheWVyMiBSb3dDb2wgaW5XZWxsIGltcGxhbnQgcm93IGNvbHVtbiBsYXllcjFXIGxheWVyMUwgdGVtcCBhbGxEaXIgbmV0IHZpYTFYUGl0Y2ggdmlhMVlQaXRjaCB2aWEyWFBpdGNoIHZpYTJZUGl0Y2ggcm93VmlhMSBjb2xWaWExIGxheWVyMVhTaXplIGxheWVyMVlTaXplIGxheWVyMUJib3ggZGJJZCBwaW5JZCB3ZWxsTGF5ZXJYMSB3ZWxsTGF5ZXJZMSB3ZWxsTGF5ZXJYMiB3ZWxsTGF5ZXJZMiBsYXllcjFYd2lkdGggbGF5ZXIxWXdpZHRoIGlkV2lkdGhYIGlkV2lkdGhZIGlkTGF5ZXJFbmNYIGlkTGF5ZXJFbmNZIHZpYTFZb2Zmc2V0IHZpYTFZc3RhcnQgdmlhMVhvZmZzZXQgdmlhMVhzdGFydCB0aGVZIHIgdGhlWCBjb2wgdmlhMUJib3ggbGF5ZXIyQmJveCBsYXllcjJYU2l6ZSBsYXllcjJZU2l6ZSByb3dWaWEyIGNvbFZpYTIgbGF5ZXIyWVNpemVWMiBsYXllcjJZRXh0cmEgbGF5ZXIyWFNpemVWMiBsYXllcjJYRXh0cmEgdmlhMllvZmZzZXQgdmlhMllzdGFydCB2aWEyWG9mZnNldCB2aWEyWHN0YXJ0IHZpYTJCYm94IGxheWVyM0Jib3gpACgocm90TDFFbmNWMSAiRkFMU0UiKSAocm90TDJFbmNWMSAiRkFMU0UiKSAocm90TDJFbmNWMiAiRkFMU0UiKSAocm90TDNFbmNWMiAiRkFMU0UiKSAobm9MYXllcjMgdCkgKGZ1bGxMYXllcjIgIkZBTFNFIikgKFJvd0NvbCAiRkFMU0UiKSAoaW5XZWxsICJGQUxTRSIpIChpbXBsYW50IHQpIChyb3cgMSkgKGNvbHVtbiAxKSAobGF5ZXIxVyAwLjApIChsYXllcjFMIDAuMCkpACgobGF5ZXIxICJoaWxpdGUiKSAobGF5ZXIyICJwckJvdW5kYXJ5IikgKGxheWVyMyBuaWwpICh2aWExTGF5ZXIgInk0IikgKHZpYTJMYXllciBuaWwpIChsYXllcjFXaWR0aCAwLjApIChsYXllcjFYRW5jVmlhMSAwLjApIChsYXllcjFZRW5jVmlhMSAwLjApIChsYXllcjJYRW5jVmlhMSAwLjApIChsYXllcjJZRW5jVmlhMSAwLjApIChsYXllcjJYRW5jVmlhMiAwLjApIChsYXllcjJZRW5jVmlhMiAwLjApIChsYXllcjNYRW5jVmlhMiAwLjApIChsYXllcjNZRW5jVmlhMiAwLjApICh3ZWxsTGF5ZXIgbmlsKSAod2VsbExheWVyRW5jIDAuMCkgKGlkTGF5ZXIgbmlsKSAoaWRMYXllckVuYyAwLjApIChpZExheWVyRW5jV2VsbCAwLjApIChpZEVuY1dlbGwgbmlsKSAoaWRMYXllcldpZHRoIDAuMCkgKGxheWVyMUltcGxhbnQgbmlsKSAobGF5ZXIxSW1wRW5jIGxpc3QoMC4wIDAuMCkpIChsYXllcjJJbXBsYW50IG5pbCkgKGxheWVyMkltcEVuYyBsaXN0KDAuMCAwLjApKSAobGF5ZXIzSW1wbGFudCBuaWwpIChsYXllcjNJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKHZpYTFJbXBsYW50IG5pbCkgKHZpYTFJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKHZpYTJJbXBsYW50IG5pbCkgKHZpYTJJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKHZpYTFXaWR0aCAwLjApICh2aWExTGVuZ3RoIDAuMCkgKHZpYTFTcGFjaW5nIDAuMCkgKHZpYTJXaWR0aCAwLjApICh2aWEyTGVuZ3RoIDAuMCkgKHZpYTJTcGFjaW5nIDAuMCkgKHNuYXBHcmlkIChURUNIZ2V0UHJvcCBzbmFwR3JpZCkpKQAod2hlbigoZGVsdGF3IDwgMCkgZXJyb3IoImRlbHRhdyAoJWcpIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAuMFxuIiBkZWx0YXcpKSB3aGVuKChkZWx0YWwgPCAwKSBlcnJvcigiZGVsdGFsICglZykgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMC4wXG4iIGRlbHRhbCkpIGlmKChsYXllcjJBZGpFbmMgPCBsYXllcjJBbnlFbmMpIHRoZW4gKGxheWVyMkFkakVuYyA9IGxheWVyMkFueUVuYykpIGlmKCgoaW5XZWxsID09IHQpIHx8IChpbldlbGwgPT0gIlRSVUUiKSkgdGhlbiAoaW5XZWxsID0gdCkgZWxzZSAoaW5XZWxsID0gbmlsKSkgaWYoKChpbXBsYW50ID09IHQpIHx8IChpbXBsYW50ID09ICJUUlVFIikpIHRoZW4gKGltcGxhbnQgPSB0KSBlbHNlIChpbXBsYW50ID0gbmlsKSkgaWYoKChyb3RhdGUgPT0gdCkgfHwgKHJvdGF0ZSA9PSAiVFJVRSIpKSB0aGVuIChyb3RhdGUgPSB0KSBlbHNlIChyb3RhdGUgPSBuaWwpKSAoYWxsRGlyID0gbGlzdCgicmlnaHQiICJsZWZ0IiAidG9wIiAiYm90dG9tIikpIChuZXQgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgInBwZCIpKSB3aGVuKHN0cmluZ3AobGF5ZXIxKSAobGF5ZXIxID0gbGlzdChsYXllcjEgImRyYXdpbmciKSkpIHdoZW4oc3RyaW5ncChsYXllcjIpIChsYXllcjIgPSBsaXN0KGxheWVyMiAiZHJhd2luZyIpKSkgd2hlbihpbXBsYW50IHdoZW4obGF5ZXIxSW1wbGFudCBpZihpbldlbGwgdGhlbiAobGF5ZXIxSW1wbGFudCA9IGNhZHIobGF5ZXIxSW1wbGFudCkpIChsYXllcjFJbXBFbmMgPSBjYWRyKGxheWVyMUltcEVuYykpIGVsc2UgKGxheWVyMUltcGxhbnQgPSBjYXIobGF5ZXIxSW1wbGFudCkpIChsYXllcjFJbXBFbmMgPSBjYXIobGF5ZXIxSW1wRW5jKSkpKSB3aGVuKGxheWVyMkltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGxheWVyMkltcGxhbnQgPSBjYWRyKGxheWVyMkltcGxhbnQpKSAobGF5ZXIySW1wRW5jID0gY2FkcihsYXllcjJJbXBFbmMpKSBlbHNlIChsYXllcjJJbXBsYW50ID0gY2FyKGxheWVyMkltcGxhbnQpKSAobGF5ZXIySW1wRW5jID0gY2FyKGxheWVyMkltcEVuYykpKSkgd2hlbih2aWFMYXllckltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKHZpYUxheWVySW1wbGFudCA9IGNhZHIodmlhTGF5ZXJJbXBsYW50KSkgKHZpYUxheWVySW1wRW5jID0gY2Fkcih2aWFMYXllckltcEVuYykpIGVsc2UgKHZpYUxheWVySW1wbGFudCA9IGNhcih2aWFMYXllckltcGxhbnQpKSAodmlhTGF5ZXJJbXBFbmMgPSBjYXIodmlhTGF5ZXJJbXBFbmMpKSkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWFMYXllciBsaXN0KGxpc3QoMC4wIDAuMCkgbGlzdCh2aWFMYXllclggdmlhTGF5ZXJZKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGF5ZXIiICJsaXN0IiB2aWFMYXllcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGF5ZXJCYm94IiAibGlzdCIgbGlzdCgoMC4wOjAuMCkgKHZpYUxheWVyWDp2aWFMYXllclkpKSkgd2hlbigodmlhTGF5ZXJJbXBsYW50ICYmIGltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYUxheWVySW1wbGFudCBsaXN0KGxpc3QoKGNhYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSAtIHZpYUxheWVySW1wRW5jKSAoY2FkYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSAtIHZpYUxheWVySW1wRW5jKSkgbGlzdCgoY2FhZHIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSArIHZpYUxheWVySW1wRW5jKSAoY2FkYWRyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgKyB2aWFMYXllckltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgY29uZCgoKGVuY0J5TGF5ZXIxID09IDAuMCkgKGxheWVyMVggPSBsYXllcjFYRW5jKSAobGF5ZXIxWSA9IGxheWVyMVlFbmMpKSAodCAobGF5ZXIxWCA9IGVuY0J5TGF5ZXIxKSAobGF5ZXIxWSA9IGVuY0J5TGF5ZXIxKSkpIGlmKHJvdGF0ZSB0aGVuIChsYXllcjFCYm94ID0gbGlzdChsaXN0KCgtIGxheWVyMVkpICgtIGxheWVyMVgpKSBsaXN0KCh2aWFMYXllclggKyBsYXllcjFZKSAodmlhTGF5ZXJZICsgbGF5ZXIxWCkpKSkgZWxzZSAobGF5ZXIxQmJveCA9IGxpc3QobGlzdCgoLSBsYXllcjFYKSAoLSBsYXllcjFZKSkgbGlzdCgodmlhTGF5ZXJYICsgbGF5ZXIxWCkgKHZpYUxheWVyWSArIGxheWVyMVkpKSkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjEgbGF5ZXIxQmJveCkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllciIgImxpc3QiIGxheWVyMSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllckJib3giICJsaXN0IiBsYXllcjFCYm94KSB3aGVuKG1heHZMYXllciAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBtYXh2TGF5ZXIgbGF5ZXIxQmJveCkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikpIHdoZW4oKGxheWVyMUltcGxhbnQgJiYgaW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIxSW1wbGFudCBsaXN0KGxpc3QoKGNhYXIobGF5ZXIxQmJveCkgLSBsYXllcjFJbXBFbmMpIChjYWRhcihsYXllcjFCYm94KSAtIGxheWVyMUltcEVuYykpIGxpc3QoKGNhYWRyKGxheWVyMUJib3gpICsgbGF5ZXIxSW1wRW5jKSAoY2FkYWRyKGxheWVyMUJib3gpICsgbGF5ZXIxSW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSB3aGVuKCh3ZWxsTGF5ZXIgJiYgaW1wbGFudCAmJiBpbldlbGwpICh3ZWxsTGF5ZXJYMSA9IChjYWFyKGxheWVyMUJib3gpIC0gd2VsbExheWVyRW5jKSkgKHdlbGxMYXllclkxID0gKGNhZGFyKGxheWVyMUJib3gpIC0gd2VsbExheWVyRW5jKSkgKHdlbGxMYXllclgyID0gKGNhYWRyKGxheWVyMUJib3gpICsgd2VsbExheWVyRW5jKSkgKHdlbGxMYXllclkyID0gKGNhZGFkcihsYXllcjFCYm94KSArIHdlbGxMYXllckVuYykpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KCh3ZWxsTGF5ZXJYMTp3ZWxsTGF5ZXJZMSkgKHdlbGxMYXllclgyOndlbGxMYXllclkyKSkpKSkgd2hlbihpZExheWVyIGlmKCh3ZWxsTGF5ZXIgJiYgaW5XZWxsICYmIGltcGxhbnQgJiYgaWRFbmNXZWxsKSB0aGVuIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGlkTGF5ZXIgbGlzdChsaXN0KCh3ZWxsTGF5ZXJYMSAtIGlkTGF5ZXJFbmNXZWxsKSAod2VsbExheWVyWTEgLSBpZExheWVyRW5jV2VsbCkpIGxpc3QoKHdlbGxMYXllclgyICsgaWRMYXllckVuY1dlbGwpICh3ZWxsTGF5ZXJZMiArIGlkTGF5ZXJFbmNXZWxsKSkpKSkgZWxzZSAobGF5ZXIxWHdpZHRoID0gYWJzKChjYWFkcihsYXllcjFCYm94KSAtIGNhYXIobGF5ZXIxQmJveCkpKSkgKGxheWVyMVl3aWR0aCA9IGFicygoY2FkYWRyKGxheWVyMUJib3gpIC0gY2FkYXIobGF5ZXIxQmJveCkpKSkgKGlkV2lkdGhYID0gKCgyICogaWRMYXllckVuYykgKyBsYXllcjFYd2lkdGgpKSAoaWRXaWR0aFkgPSAoKDIgKiBpZExheWVyRW5jKSArIGxheWVyMVl3aWR0aCkpIGlmKChpZFdpZHRoWCA8IGlkTGF5ZXJXaWR0aCkgdGhlbiAoaWRMYXllckVuY1ggPSAoKGlkTGF5ZXJXaWR0aCAtIGxheWVyMVh3aWR0aCkgLyAyKSkgKGlkTGF5ZXJFbmNYID0gKChjZWlsaW5nICgoaWRMYXllckVuY1ggLyBzbmFwR3JpZCkgKyAtMWUtMDYpKSAqIHNuYXBHcmlkKSkgZWxzZSAoaWRMYXllckVuY1ggPSBpZExheWVyRW5jKSkgaWYoKGlkV2lkdGhZIDwgaWRMYXllcldpZHRoKSB0aGVuIChpZExheWVyRW5jWSA9ICgoaWRMYXllcldpZHRoIC0gbGF5ZXIxWXdpZHRoKSAvIDIpKSAoaWRMYXllckVuY1kgPSAoKGNlaWxpbmcgKChpZExheWVyRW5jWSAvIHNuYXBHcmlkKSArIC0xZS0wNikpICogc25hcEdyaWQpKSBlbHNlIChpZExheWVyRW5jWSA9IGlkTGF5ZXJFbmMpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBpZExheWVyIGxpc3QobGlzdCgoY2FhcihsYXllcjFCYm94KSAtIGlkTGF5ZXJFbmNYKSAoY2FkYXIobGF5ZXIxQmJveCkgLSBpZExheWVyRW5jWSkpIGxpc3QoKGNhYWRyKGxheWVyMUJib3gpICsgaWRMYXllckVuY1gpIChjYWRhZHIobGF5ZXIxQmJveCkgKyBpZExheWVyRW5jWSkpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIGlmKChkZWx0YXcgPCAoKGxheWVyMkFkakVuYyAtIGxheWVyMkFueUVuYykgLSAxZS0wNikpIHRoZW4gKGxheWVyMkRlbHRhWSA9IGxheWVyMkFkakVuYykgZWxzZSAobGF5ZXIyRGVsdGFZID0gbGF5ZXIyQW55RW5jKSkgKGxheWVyMkJib3ggPSBsaXN0KGxpc3QoKC0gKGxheWVyMkFueUVuYyArIGRlbHRhdykpICgtIGxheWVyMkRlbHRhWSkpIGxpc3QoKHZpYUxheWVyWCArIGxheWVyMkFueUVuYyArIGRlbHRhdykgKHZpYUxheWVyWSArIGRlbHRhbCArIGxheWVyMkRlbHRhWSkpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxheWVyMkJib3gpKSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllciIgImxpc3QiIGxheWVyMikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiBsYXllcjJCYm94KSB3aGVuKChsYXllcjJJbXBsYW50ICYmIGltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMkltcGxhbnQgbGlzdChsaXN0KChjYWFyKGxheWVyMkJib3gpIC0gbGF5ZXIySW1wRW5jKSAoY2FkYXIobGF5ZXIyQmJveCkgLSBsYXllcjJJbXBFbmMpKSBsaXN0KChjYWFkcihsYXllcjJCYm94KSArIGxheWVyMkltcEVuYykgKGNhZGFkcihsYXllcjJCYm94KSArIGxheWVyMkltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkpAChsYXllcjEgbGF5ZXIyIHZpYUxheWVyIG1heHZMYXllciB2aWFMYXllclggdmlhTGF5ZXJZIGVuY0J5TGF5ZXIxIGxheWVyMVhFbmMgbGF5ZXIxWUVuYyBsYXllcjJBZGpFbmMgbGF5ZXIyQW55RW5jIGxheWVyMUltcGxhbnQgbGF5ZXIxSW1wRW5jIGxheWVyMkltcGxhbnQgbGF5ZXIySW1wRW5jIHZpYUxheWVySW1wbGFudCB2aWFMYXllckltcEVuYyB3ZWxsTGF5ZXIgd2VsbExheWVyRW5jIGlkTGF5ZXIgaWRMYXllckVuYyBpZExheWVyRW5jV2VsbCBpZEVuY1dlbGwgaWRMYXllcldpZHRoIHNuYXBHcmlkIGRlbHRhdyBkZWx0YWwgaW1wbGFudCBpbldlbGwgcm90YXRlIGFsbERpciBuZXQgZGJJZCBsYXllcjFYIGxheWVyMVkgbGF5ZXIxQmJveCBwaW5JZCB3ZWxsTGF5ZXJYMSB3ZWxsTGF5ZXJZMSB3ZWxsTGF5ZXJYMiB3ZWxsTGF5ZXJZMiBsYXllcjFYd2lkdGggbGF5ZXIxWXdpZHRoIGlkV2lkdGhYIGlkV2lkdGhZIGlkTGF5ZXJFbmNYIGlkTGF5ZXJFbmNZIGxheWVyMkRlbHRhWSBsYXllcjJCYm94KQAoKGRlbHRhdyAwLjApIChkZWx0YWwgMC4wKSAoaW1wbGFudCB0KSAoaW5XZWxsIHQpIChyb3RhdGUgIkZBTFNFIikpACgobGF5ZXIxICJoaWxpdGUiKSAobGF5ZXIyICJwckJvdW5kYXJ5IikgKHZpYUxheWVyICJ5NCIpIChtYXh2TGF5ZXIgbmlsKSAodmlhTGF5ZXJYIDAuMCkgKHZpYUxheWVyWSAwLjApIChlbmNCeUxheWVyMSAwLjApIChsYXllcjFYRW5jIDAuMCkgKGxheWVyMVlFbmMgMC4wKSAobGF5ZXIyQWRqRW5jIDAuMCkgKGxheWVyMkFueUVuYyAwLjApIChsYXllcjFJbXBsYW50IG5pbCkgKGxheWVyMUltcEVuYyBsaXN0KDAuMCAwLjApKSAobGF5ZXIySW1wbGFudCBuaWwpIChsYXllcjJJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKHZpYUxheWVySW1wbGFudCBuaWwpICh2aWFMYXllckltcEVuYyBsaXN0KDAuMCAwLjApKSAod2VsbExheWVyIG5pbCkgKHdlbGxMYXllckVuYyAwLjApIChpZExheWVyIG5pbCkgKGlkTGF5ZXJFbmMgMC4wKSAoaWRMYXllckVuY1dlbGwgMC4wKSAoaWRFbmNXZWxsIG5pbCkgKGlkTGF5ZXJXaWR0aCAwLjApIChzbmFwR3JpZCAoVEVDSGdldFByb3Agc25hcEdyaWQpKSkAKGlmKCgoaW1wbGFudCA9PSB0KSB8fCAoaW1wbGFudCA9PSAiVFJVRSIpKSB0aGVuIChpbXBsYW50ID0gdCkgZWxzZSAoaW1wbGFudCA9IG5pbCkpIGlmKCgoaW5XZWxsID09IHQpIHx8IChpbldlbGwgPT0gIlRSVUUiKSkgdGhlbiAoaW5XZWxsID0gdCkgZWxzZSAoaW5XZWxsID0gbmlsKSkgaWYoKChDZW50ZXJBdE9yaWdpbiA9PSB0KSB8fCAoQ2VudGVyQXRPcmlnaW4gPT0gIlRSVUUiKSkgdGhlbiAoY2VudGVyID0gdCkgZWxzZSAoY2VudGVyID0gbmlsKSkgd2hlbigoKHJvdGF0ZVRvcCA9PSB0KSB8fCAocm90YXRlVG9wID09ICJUUlVFIikpIChzd2FwVGVtcCA9IGxheWVyMlhFbmMpIChsYXllcjJYRW5jID0gbGF5ZXIyWUVuYykgKGxheWVyMllFbmMgPSBzd2FwVGVtcCkpIChhbGxEaXIgPSBsaXN0KCJyaWdodCIgImxlZnQiICJ0b3AiICJib3R0b20iKSkgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIHdoZW4oc3RyaW5ncChsYXllcjEpIChsYXllcjEgPSBsaXN0KGxheWVyMSAiZHJhd2luZyIpKSkgd2hlbihzdHJpbmdwKGxheWVyMikgKGxheWVyMiA9IGxpc3QobGF5ZXIyICJkcmF3aW5nIikpKSB3aGVuKGltcGxhbnQgd2hlbihsYXllcjFJbXBsYW50IGlmKGluV2VsbCB0aGVuIChsYXllcjFJbXBsYW50ID0gY2FkcihsYXllcjFJbXBsYW50KSkgKGxheWVyMUltcEVuYyA9IGNhZHIobGF5ZXIxSW1wRW5jKSkgZWxzZSAobGF5ZXIxSW1wbGFudCA9IGNhcihsYXllcjFJbXBsYW50KSkgKGxheWVyMUltcEVuYyA9IGNhcihsYXllcjFJbXBFbmMpKSkpIHdoZW4obGF5ZXIxQ29yZUltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGxheWVyMUNvcmVJbXBsYW50ID0gY2FkcihsYXllcjFDb3JlSW1wbGFudCkpIChsYXllcjFDb3JlSW1wRW5jID0gY2FkcihsYXllcjFDb3JlSW1wRW5jKSkgZWxzZSAobGF5ZXIxQ29yZUltcGxhbnQgPSBjYXIobGF5ZXIxQ29yZUltcGxhbnQpKSAobGF5ZXIxQ29yZUltcEVuYyA9IGNhcihsYXllcjFDb3JlSW1wRW5jKSkpKSB3aGVuKGxheWVyMkltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGxheWVyMkltcGxhbnQgPSBjYWRyKGxheWVyMkltcGxhbnQpKSAobGF5ZXIySW1wRW5jID0gY2FkcihsYXllcjJJbXBFbmMpKSBlbHNlIChsYXllcjJJbXBsYW50ID0gY2FyKGxheWVyMkltcGxhbnQpKSAobGF5ZXIySW1wRW5jID0gY2FyKGxheWVyMkltcEVuYykpKSkgd2hlbih2aWFMYXllckltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKHZpYUxheWVySW1wbGFudCA9IGNhZHIodmlhTGF5ZXJJbXBsYW50KSkgKHZpYUxheWVySW1wRW5jID0gY2Fkcih2aWFMYXllckltcEVuYykpIGVsc2UgKHZpYUxheWVySW1wbGFudCA9IGNhcih2aWFMYXllckltcGxhbnQpKSAodmlhTGF5ZXJJbXBFbmMgPSBjYXIodmlhTGF5ZXJJbXBFbmMpKSkpKSBjb25kKCgoZW5jQnlMYXllcjEgPT0gMC4wKSAobGF5ZXIxWCA9IGxheWVyMVhFbmMpIChsYXllcjFZID0gbGF5ZXIxWUVuYykpICh0IChsYXllcjFYID0gZW5jQnlMYXllcjEpIChsYXllcjFZID0gZW5jQnlMYXllcjEpKSkgKGxheWVyMWxlbmd0aCA9ICgoMiAqIGxheWVyMVgpICsgdyArICgoY29sdW1uIC0gMSkgKiB4UGl0Y2gpKSkgKGxheWVyMXdpZHRoID0gKCgyICogbGF5ZXIxWSkgKyBsICsgKChyb3cgLSAxKSAqIHlQaXRjaCkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjEgbGlzdChsaXN0KDAuMCAwLjApIGxpc3QobGF5ZXIxbGVuZ3RoIGxheWVyMXdpZHRoKSkpKSBpZihDZW50ZXJBdE9yaWdpbiB0aGVuICh4U2hpZnQgPSAobGF5ZXIxbGVuZ3RoIC8gMikpICh5U2hpZnQgPSAobGF5ZXIxd2lkdGggLyAyKSkgZWxzZSAoeFNoaWZ0ID0gMCkgKHlTaGlmdCA9IDApKSAoZGJJZCA9IChkYk1vdmVGaWcgZGJJZCBuaWwgbGlzdCgoKC0geFNoaWZ0KTooLSB5U2hpZnQpKSAiUjAiKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllciIgImxpc3QiIGxheWVyMSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllckJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIHdoZW4obWF4dkxheWVyIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IG1heHZMYXllciBsaXN0KGxpc3QoMC4wIDAuMCkgbGlzdChsYXllcjFsZW5ndGggbGF5ZXIxd2lkdGgpKSkpIChkYklkID0gKGRiTW92ZUZpZyBkYklkIG5pbCBsaXN0KCgoLSB4U2hpZnQpOigtIHlTaGlmdCkpICJSMCIpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSkgd2hlbigobGF5ZXIxSW1wbGFudCAmJiBpbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjFJbXBsYW50IGxpc3QobGlzdCgoLSBsYXllcjFJbXBFbmMpICgtIGxheWVyMUltcEVuYykpIGxpc3QoKGxheWVyMWxlbmd0aCArIGxheWVyMUltcEVuYykgKGxheWVyMXdpZHRoICsgbGF5ZXIxSW1wRW5jKSkpKSkgKGRiSWQgPSAoZGJNb3ZlRmlnIGRiSWQgbmlsIGxpc3QoKCgtIHhTaGlmdCk6KC0geVNoaWZ0KSkgIlIwIikpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIHdoZW4oKGxheWVyMUNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMUNvcmVJbXBsYW50IGxpc3QobGlzdCgoLSBsYXllcjFDb3JlSW1wRW5jKSAoLSBsYXllcjFDb3JlSW1wRW5jKSkgbGlzdCgobGF5ZXIxbGVuZ3RoICsgbGF5ZXIxQ29yZUltcEVuYykgKGxheWVyMXdpZHRoICsgbGF5ZXIxQ29yZUltcEVuYykpKSkpIChkYklkID0gKGRiTW92ZUZpZyBkYklkIG5pbCBsaXN0KCgoLSB4U2hpZnQpOigtIHlTaGlmdCkpICJSMCIpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSB3aGVuKCh3ZWxsTGF5ZXIgJiYgaW1wbGFudCAmJiBpbldlbGwpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KGxpc3QoKC0gd2VsbExheWVyRW5jKSAoLSB3ZWxsTGF5ZXJFbmMpKSBsaXN0KChsYXllcjFsZW5ndGggKyB3ZWxsTGF5ZXJFbmMpIChsYXllcjF3aWR0aCArIHdlbGxMYXllckVuYykpKSkpIChkYklkID0gKGRiTW92ZUZpZyBkYklkIG5pbCBsaXN0KCgoLSB4U2hpZnQpOigtIHlTaGlmdCkpICJSMCIpKSkpICh0aGVZID0gbGF5ZXIxWSkgZm9yKHIgMSByb3cgKHRoZVggPSBsYXllcjFYKSBmb3IoY29sIDEgY29sdW1uIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYUxheWVyIGxpc3QobGlzdCh0aGVYIHRoZVkpIGxpc3QoKHRoZVggKyB3KSAodGhlWSArIGwpKSkpKSAoZGJJZCA9IChkYk1vdmVGaWcgZGJJZCBuaWwgbGlzdCgoKC0geFNoaWZ0KTooLSB5U2hpZnQpKSAiUjAiKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodGhlWCA9ICh0aGVYICsgeFBpdGNoKSkpICh0aGVZID0gKHRoZVkgKyB5UGl0Y2gpKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGF5ZXIiICJsaXN0IiB2aWFMYXllcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGF5ZXJCYm94IiAibGlzdCIgbGlzdCgobGF5ZXIxWDpsYXllcjFZKSAoY2FhZHIoKGRiSWR+PmJCb3gpKTpjYWRhZHIoKGRiSWR+PmJCb3gpKSkpKSAobGF5ZXIybGVuZ3RoID0gKCgyICogbGF5ZXIyWEVuYykgKyB3ICsgKChjb2x1bW4gLSAxKSAqIHhQaXRjaCkpKSAobGF5ZXIyd2lkdGggPSAoKDIgKiBsYXllcjJZRW5jKSArIGwgKyAoKHJvdyAtIDEpICogeVBpdGNoKSkpIChsYXllcjJYMUNvb3JkID0gKGxheWVyMVggLSBsYXllcjJYRW5jKSkgKGxheWVyMlkxQ29vcmQgPSAobGF5ZXIxWSAtIGxheWVyMllFbmMpKSAobGF5ZXIyWDJDb29yZCA9IChsYXllcjJYMUNvb3JkICsgbGF5ZXIybGVuZ3RoKSkgKGxheWVyMlkyQ29vcmQgPSAobGF5ZXIyWTFDb29yZCArIGxheWVyMndpZHRoKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QoKGxheWVyMlgxQ29vcmQ6bGF5ZXIyWTFDb29yZCkgKGxheWVyMlgyQ29vcmQ6bGF5ZXIyWTJDb29yZCkpKSkgKGRiSWQgPSAoZGJNb3ZlRmlnIGRiSWQgbmlsIGxpc3QoKCgtIHhTaGlmdCk6KC0geVNoaWZ0KSkgIlIwIikpKSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllciIgImxpc3QiIGxheWVyMikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIHdoZW4oKGxheWVyMkltcGxhbnQgJiYgaW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIySW1wbGFudCBsaXN0KGxpc3QoKGxheWVyMlgxQ29vcmQgLSBsYXllcjJJbXBFbmMpIChsYXllcjJZMUNvb3JkIC0gbGF5ZXIySW1wRW5jKSkgbGlzdCgobGF5ZXIyWDJDb29yZCArIGxheWVyMkltcEVuYykgKGxheWVyMlkyQ29vcmQgKyBsYXllcjJJbXBFbmMpKSkpKSAoZGJJZCA9IChkYk1vdmVGaWcgZGJJZCBuaWwgbGlzdCgoKC0geFNoaWZ0KTooLSB5U2hpZnQpKSAiUjAiKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgd2hlbigodmlhTGF5ZXJJbXBsYW50ICYmIGltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYUxheWVySW1wbGFudCBsaXN0KGxpc3QoKGNhYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSAtIHZpYUxheWVySW1wRW5jKSAoY2FkYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSAtIHZpYUxheWVySW1wRW5jKSkgbGlzdCgoY2FhZHIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSArIHZpYUxheWVySW1wRW5jKSAoY2FkYWRyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgKyB2aWFMYXllckltcEVuYykpKSkpIChkYklkID0gKGRiTW92ZUZpZyBkYklkIG5pbCBsaXN0KCgoLSB4U2hpZnQpOigtIHlTaGlmdCkpICJSMCIpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJCb3hFZmYiICJsaXN0IiBsaXN0KGxpc3QobWluKGNhYXIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIGNhYXIoKHRjQ2VsbFZpZXd+PmJvdExheWVyQmJveCkpKSBtaW4oY2FkYXIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIGNhZGFyKCh0Y0NlbGxWaWV3fj5ib3RMYXllckJib3gpKSkpIGxpc3QobWF4KGNhYWRyKCh0Y0NlbGxWaWV3fj50b3BMYXllclBpbkJib3gpKSBjYWFkcigodGNDZWxsVmlld34+Ym90TGF5ZXJCYm94KSkpIG1heChjYWRhZHIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIGNhZGFkcigodGNDZWxsVmlld34+Ym90TGF5ZXJCYm94KSkpKSkpKQAobGF5ZXIxIGxheWVyMiB2aWFMYXllciBtYXh2TGF5ZXIgZW5jQnlMYXllcjEgbGF5ZXIxWEVuYyBsYXllcjFZRW5jIGxheWVyMlhFbmMgbGF5ZXIyWUVuYyBsYXllcjFJbXBsYW50IGxheWVyMUltcEVuYyBsYXllcjFDb3JlSW1wbGFudCBsYXllcjFDb3JlSW1wRW5jIGxheWVyMkltcGxhbnQgbGF5ZXIySW1wRW5jIHZpYUxheWVySW1wbGFudCB2aWFMYXllckltcEVuYyB3ZWxsTGF5ZXIgd2VsbExheWVyRW5jIENlbnRlckF0T3JpZ2luIHJvdyBjb2x1bW4geFBpdGNoIHlQaXRjaCB3IGwgaW1wbGFudCBpbldlbGwgcm90YXRlVG9wIGNlbnRlciBzd2FwVGVtcCBhbGxEaXIgbmV0IGxheWVyMVggbGF5ZXIxWSBsYXllcjFsZW5ndGggbGF5ZXIxd2lkdGggZGJJZCB4U2hpZnQgeVNoaWZ0IHBpbklkIHRoZVkgciB0aGVYIGNvbCBsYXllcjJsZW5ndGggbGF5ZXIyd2lkdGggbGF5ZXIyWDFDb29yZCBsYXllcjJZMUNvb3JkIGxheWVyMlgyQ29vcmQgbGF5ZXIyWTJDb29yZCkAKChyb3cgMSkgKGNvbHVtbiAxKSAoeFBpdGNoIDAuMCkgKHlQaXRjaCAwLjApICh3IDAuMCkgKGwgMC4wKSAoaW1wbGFudCB0KSAoaW5XZWxsIHQpIChyb3RhdGVUb3AgIkZBTFNFIikpACgobGF5ZXIxICJoaWxpdGUiKSAobGF5ZXIyICJwckJvdW5kYXJ5IikgKHZpYUxheWVyICJ5NCIpIChtYXh2TGF5ZXIgbmlsKSAoZW5jQnlMYXllcjEgMC4wKSAobGF5ZXIxWEVuYyAwLjApIChsYXllcjFZRW5jIDAuMCkgKGxheWVyMlhFbmMgMC4wKSAobGF5ZXIyWUVuYyAwLjApIChsYXllcjFJbXBsYW50IG5pbCkgKGxheWVyMUltcEVuYyBsaXN0KDAuMCAwLjApKSAobGF5ZXIxQ29yZUltcGxhbnQgbmlsKSAobGF5ZXIxQ29yZUltcEVuYyBsaXN0KDAuMCAwLjApKSAobGF5ZXIySW1wbGFudCBuaWwpIChsYXllcjJJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKHZpYUxheWVySW1wbGFudCBuaWwpICh2aWFMYXllckltcEVuYyBsaXN0KDAuMCAwLjApKSAod2VsbExheWVyIG5pbCkgKHdlbGxMYXllckVuYyAwLjApIChDZW50ZXJBdE9yaWdpbiAiRkFMU0UiKSkAKGlmKCgoaW1wbGFudCA9PSB0KSB8fCAoaW1wbGFudCA9PSAiVFJVRSIpKSB0aGVuIChpbXBsYW50ID0gdCkgZWxzZSAoaW1wbGFudCA9IG5pbCkpIHdoZW4oKChyb3RhdGVUb3AgPT0gdCkgfHwgKHJvdGF0ZVRvcCA9PSAiVFJVRSIpKSAoc3dhcFRlbXAgPSBsYXllcjJYRW5jKSAobGF5ZXIyWEVuYyA9IGxheWVyMllFbmMpIChsYXllcjJZRW5jID0gc3dhcFRlbXApKSAoYWxsRGlyID0gbGlzdCgicmlnaHQiICJsZWZ0IiAidG9wIiAiYm90dG9tIikpIChuZXQgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgInBwZCIpKSB3aGVuKHN0cmluZ3AobGF5ZXIxKSAobGF5ZXIxID0gbGlzdChsYXllcjEgImRyYXdpbmciKSkpIHdoZW4oc3RyaW5ncChsYXllcjIpIChsYXllcjIgPSBsaXN0KGxheWVyMiAiZHJhd2luZyIpKSkgY29uZCgoKGVuY0J5TGF5ZXIxID09IDAuMCkgKGxheWVyMVggPSBsYXllcjFYRW5jKSAobGF5ZXIxWSA9IGxheWVyMVlFbmMpKSAodCAobGF5ZXIxWCA9IGVuY0J5TGF5ZXIxKSAobGF5ZXIxWSA9IGVuY0J5TGF5ZXIxKSkpIChsYXllcjFsZW5ndGggPSAoKDIgKiBsYXllcjFYKSArIHcgKyAoKGNvbHVtbiAtIDEpICogeFBpdGNoKSkpIChsYXllcjF3aWR0aCA9ICgoMiAqIGxheWVyMVkpICsgbCArICgocm93IC0gMSkgKiB5UGl0Y2gpKSkgKGxheWVyMVhMTCA9ICgtIChsYXllcjFsZW5ndGggLyAyLjApKSkgKGxheWVyMVlMTCA9ICgtIChsYXllcjF3aWR0aCAvIDIuMCkpKSAobGF5ZXIxWFVSID0gKGxheWVyMWxlbmd0aCAvIDIuMCkpIChsYXllcjFZVVIgPSAobGF5ZXIxd2lkdGggLyAyLjApKSBpZihDZW50ZXJBdE9yaWdpbiB0aGVuIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMSBsaXN0KGxpc3QobGF5ZXIxWExMIGxheWVyMVlMTCkgbGlzdChsYXllcjFYVVIgbGF5ZXIxWVVSKSkpKSBlbHNlIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMSBsaXN0KGxpc3QoMC4wIDAuMCkgbGlzdChsYXllcjFsZW5ndGggbGF5ZXIxd2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYm90TGF5ZXIiICJsaXN0IiBsYXllcjEpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYm90TGF5ZXJCYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSB3aGVuKG1heHZMYXllciBpZihDZW50ZXJBdE9yaWdpbiB0aGVuIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IG1heHZMYXllciBsaXN0KGxpc3QobGF5ZXIxWExMIGxheWVyMVlMTCkgbGlzdChsYXllcjFYVVIgbGF5ZXIxWVVSKSkpKSBlbHNlIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IG1heHZMYXllciBsaXN0KGxpc3QoMC4wIDAuMCkgbGlzdChsYXllcjFsZW5ndGggbGF5ZXIxd2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpKSB3aGVuKChsYXllcjFJbXBsYW50ICYmIGltcGxhbnQpIGlmKENlbnRlckF0T3JpZ2luIHRoZW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIxSW1wbGFudCBsaXN0KGxpc3QoKGxheWVyMVhMTCAtIGxheWVyMUltcEVuYykgKGxheWVyMVlMTCAtIGxheWVyMUltcEVuYykpIGxpc3QoKGxheWVyMVhVUiArIGxheWVyMUltcEVuYykgKGxheWVyMVlVUiArIGxheWVyMUltcEVuYykpKSkpIGVsc2UgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIxSW1wbGFudCBsaXN0KGxpc3QoKC0gbGF5ZXIxSW1wRW5jKSAoLSBsYXllcjFJbXBFbmMpKSBsaXN0KChsYXllcjFsZW5ndGggKyBsYXllcjFJbXBFbmMpIChsYXllcjF3aWR0aCArIGxheWVyMUltcEVuYykpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIGlmKENlbnRlckF0T3JpZ2luIHRoZW4gKHRoZVkgPSAobGF5ZXIxWUxMICsgbGF5ZXIxWSkpIGVsc2UgKHRoZVkgPSBsYXllcjFZKSkgZm9yKHIgMSByb3cgaWYoQ2VudGVyQXRPcmlnaW4gdGhlbiAodGhlWCA9IChsYXllcjFYTEwgKyBsYXllcjFYKSkgZWxzZSAodGhlWCA9IGxheWVyMVgpKSBmb3IoY29sIDEgY29sdW1uIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYUxheWVyIGxpc3QobGlzdCh0aGVYIHRoZVkpIGxpc3QoKHRoZVggKyB3KSAodGhlWSArIGwpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRoZVggPSAodGhlWCArIHhQaXRjaCkpKSAodGhlWSA9ICh0aGVZICsgeVBpdGNoKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiY29udGFjdExheWVyIiAibGlzdCIgdmlhTGF5ZXIpIGlmKENlbnRlckF0T3JpZ2luIHRoZW4gKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGF5ZXJCYm94IiAibGlzdCIgbGlzdCgoKGxheWVyMVhMTCArIGxheWVyMVgpOihsYXllcjFZTEwgKyBsYXllcjFZKSkgKGNhYWRyKChkYklkfj5iQm94KSk6Y2FkYWRyKChkYklkfj5iQm94KSkpKSkgZWxzZSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3RMYXllckJib3giICJsaXN0IiBsaXN0KChsYXllcjFYOmxheWVyMVkpIChjYWFkcigoZGJJZH4+YkJveCkpOmNhZGFkcigoZGJJZH4+YkJveCkpKSkpKSAobGF5ZXIybGVuZ3RoID0gKCgyICogbGF5ZXIyWEVuYykgKyB3ICsgKChjb2x1bW4gLSAxKSAqIHhQaXRjaCkpKSAobGF5ZXIyd2lkdGggPSAoKDIgKiBsYXllcjJZRW5jKSArIGwgKyAoKHJvdyAtIDEpICogeVBpdGNoKSkpIGlmKENlbnRlckF0T3JpZ2luIHRoZW4gKGxheWVyMlgxQ29vcmQgPSAobGF5ZXIxWExMICsgKGxheWVyMVggLSBsYXllcjJYRW5jKSkpIChsYXllcjJZMUNvb3JkID0gKGxheWVyMVlMTCArIChsYXllcjFZIC0gbGF5ZXIyWUVuYykpKSBlbHNlIChsYXllcjJYMUNvb3JkID0gKGxheWVyMVggLSBsYXllcjJYRW5jKSkgKGxheWVyMlkxQ29vcmQgPSAobGF5ZXIxWSAtIGxheWVyMllFbmMpKSkgKGxheWVyMlgyQ29vcmQgPSAobGF5ZXIyWDFDb29yZCArIGxheWVyMmxlbmd0aCkpIChsYXllcjJZMkNvb3JkID0gKGxheWVyMlkxQ29vcmQgKyBsYXllcjJ3aWR0aCkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KChsYXllcjJYMUNvb3JkOmxheWVyMlkxQ29vcmQpIChsYXllcjJYMkNvb3JkOmxheWVyMlkyQ29vcmQpKSkpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyIiAibGlzdCIgbGF5ZXIyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyUGluQmJveCIgImxpc3QiIChkYklkfj5iQm94KSkgd2hlbigobGF5ZXIySW1wbGFudCAmJiBpbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjJJbXBsYW50IGxpc3QobGlzdCgobGF5ZXIyWDFDb29yZCAtIGxheWVyMkltcEVuYykgKGxheWVyMlkxQ29vcmQgLSBsYXllcjJJbXBFbmMpKSBsaXN0KChsYXllcjJYMkNvb3JkICsgbGF5ZXIySW1wRW5jKSAobGF5ZXIyWTJDb29yZCArIGxheWVyMkltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgd2hlbigodmlhTGF5ZXJJbXBsYW50ICYmIGltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYUxheWVySW1wbGFudCBsaXN0KGxpc3QoKGNhYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSAtIHZpYUxheWVySW1wRW5jKSAoY2FkYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSAtIHZpYUxheWVySW1wRW5jKSkgbGlzdCgoY2FhZHIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSArIHZpYUxheWVySW1wRW5jKSAoY2FkYWRyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgKyB2aWFMYXllckltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJiQm94RWZmIiAibGlzdCIgbGlzdChsaXN0KG1pbihjYWFyKCh0Y0NlbGxWaWV3fj50b3BMYXllclBpbkJib3gpKSBjYWFyKCh0Y0NlbGxWaWV3fj5ib3RMYXllckJib3gpKSkgbWluKGNhZGFyKCh0Y0NlbGxWaWV3fj50b3BMYXllclBpbkJib3gpKSBjYWRhcigodGNDZWxsVmlld34+Ym90TGF5ZXJCYm94KSkpKSBsaXN0KG1heChjYWFkcigodGNDZWxsVmlld34+dG9wTGF5ZXJQaW5CYm94KSkgY2FhZHIoKHRjQ2VsbFZpZXd+PmJvdExheWVyQmJveCkpKSBtYXgoY2FkYWRyKCh0Y0NlbGxWaWV3fj50b3BMYXllclBpbkJib3gpKSBjYWRhZHIoKHRjQ2VsbFZpZXd+PmJvdExheWVyQmJveCkpKSkpKSkAKGxheWVyMSBsYXllcjIgdmlhTGF5ZXIgbWF4dkxheWVyIGVuY0J5TGF5ZXIxIGxheWVyMVhFbmMgbGF5ZXIxWUVuYyBsYXllcjJYRW5jIGxheWVyMllFbmMgbGF5ZXIxSW1wbGFudCBsYXllcjFJbXBFbmMgbGF5ZXIySW1wbGFudCBsYXllcjJJbXBFbmMgdmlhTGF5ZXJJbXBsYW50IHZpYUxheWVySW1wRW5jIENlbnRlckF0T3JpZ2luIHJvdyBjb2x1bW4geFBpdGNoIHlQaXRjaCB3IGwgaW1wbGFudCByb3RhdGVUb3Agc3dhcFRlbXAgYWxsRGlyIG5ldCBsYXllcjFYIGxheWVyMVkgbGF5ZXIxbGVuZ3RoIGxheWVyMXdpZHRoIGxheWVyMVhMTCBsYXllcjFZTEwgbGF5ZXIxWFVSIGxheWVyMVlVUiBkYklkIHBpbklkIHRoZVkgciB0aGVYIGNvbCBsYXllcjJsZW5ndGggbGF5ZXIyd2lkdGggbGF5ZXIyWDFDb29yZCBsYXllcjJZMUNvb3JkIGxheWVyMlgyQ29vcmQgbGF5ZXIyWTJDb29yZCkAKChyb3cgMSkgKGNvbHVtbiAxKSAoeFBpdGNoIDAuMCkgKHlQaXRjaCAwLjApICh3IDAuMCkgKGwgMC4wKSAoaW1wbGFudCB0KSAocm90YXRlVG9wICJGQUxTRSIpKQAoKGxheWVyMSAiaGlsaXRlIikgKGxheWVyMiAicHJCb3VuZGFyeSIpICh2aWFMYXllciAieTQiKSAobWF4dkxheWVyIG5pbCkgKGVuY0J5TGF5ZXIxIDAuMCkgKGxheWVyMVhFbmMgMC4wKSAobGF5ZXIxWUVuYyAwLjApIChsYXllcjJYRW5jIDAuMCkgKGxheWVyMllFbmMgMC4wKSAobGF5ZXIxSW1wbGFudCBuaWwpIChsYXllcjFJbXBFbmMgMC4wKSAobGF5ZXIySW1wbGFudCBuaWwpIChsYXllcjJJbXBFbmMgMC4wKSAodmlhTGF5ZXJJbXBsYW50IG5pbCkgKHZpYUxheWVySW1wRW5jIDAuMCkgKENlbnRlckF0T3JpZ2luICJGQUxTRSIpKQAod2hlbigoKHJvdGF0ZVRvcCA9PSB0KSB8fCAocm90YXRlVG9wID09ICJUUlVFIikpIChzd2FwVGVtcCA9IGxheWVyMlhFbmMpIChsYXllcjJYRW5jID0gbGF5ZXIyWUVuYykgKGxheWVyMllFbmMgPSBzd2FwVGVtcCkpIChhbGxEaXIgPSBsaXN0KCJyaWdodCIgImxlZnQiICJ0b3AiICJib3R0b20iKSkgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIHdoZW4oc3RyaW5ncChsYXllcjEpIChsYXllcjEgPSBsaXN0KGxheWVyMSAiZHJhd2luZyIpKSkgd2hlbihzdHJpbmdwKGxheWVyMikgKGxheWVyMiA9IGxpc3QobGF5ZXIyICJkcmF3aW5nIikpKSBjb25kKCgoZW5jQnlMYXllcjEgPT0gMC4wKSAobGF5ZXIxWCA9IGxheWVyMVhFbmMpIChsYXllcjFZID0gbGF5ZXIxWUVuYykpICh0IChsYXllcjFYID0gZW5jQnlMYXllcjEpIChsYXllcjFZID0gZW5jQnlMYXllcjEpKSkgKGxheWVyMWxlbmd0aCA9ICgoMiAqIGxheWVyMVgpICsgdyArICgoY29sdW1uIC0gMSkgKiB4UGl0Y2gpKSkgKGxheWVyMXdpZHRoID0gKCgyICogbGF5ZXIxWSkgKyBsICsgKChyb3cgLSAxKSAqIHlQaXRjaCkpKSAobGF5ZXIxWExMID0gKC0gKGxheWVyMWxlbmd0aCAvIDIuMCkpKSAobGF5ZXIxWUxMID0gKC0gKGxheWVyMXdpZHRoIC8gMi4wKSkpIChsYXllcjFYVVIgPSAobGF5ZXIxbGVuZ3RoIC8gMi4wKSkgKGxheWVyMVlVUiA9IChsYXllcjF3aWR0aCAvIDIuMCkpIGlmKENlbnRlckF0T3JpZ2luIHRoZW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIxIGxpc3QobGlzdChsYXllcjFYTEwgbGF5ZXIxWUxMKSBsaXN0KGxheWVyMVhVUiBsYXllcjFZVVIpKSkpIGVsc2UgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIxIGxpc3QobGlzdCgwLjAgMC4wKSBsaXN0KGxheWVyMWxlbmd0aCBsYXllcjF3aWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllciIgImxpc3QiIGxheWVyMSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllckJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIHdoZW4obWF4dkxheWVyIGlmKENlbnRlckF0T3JpZ2luIHRoZW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbWF4dkxheWVyIGxpc3QobGlzdChsYXllcjFYTEwgbGF5ZXIxWUxMKSBsaXN0KGxheWVyMVhVUiBsYXllcjFZVVIpKSkpIGVsc2UgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbWF4dkxheWVyIGxpc3QobGlzdCgwLjAgMC4wKSBsaXN0KGxheWVyMWxlbmd0aCBsYXllcjF3aWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikpIHdoZW4obGF5ZXIxSW1wbGFudCBpZihDZW50ZXJBdE9yaWdpbiB0aGVuIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMUltcGxhbnQgbGlzdChsaXN0KChsYXllcjFYTEwgLSBsYXllcjFJbXBFbmMpIChsYXllcjFZTEwgLSBsYXllcjFJbXBFbmMpKSBsaXN0KChsYXllcjFYVVIgKyBsYXllcjFJbXBFbmMpIChsYXllcjFZVVIgKyBsYXllcjFJbXBFbmMpKSkpKSBlbHNlIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMUltcGxhbnQgbGlzdChsaXN0KCgtIGxheWVyMUltcEVuYykgKC0gbGF5ZXIxSW1wRW5jKSkgbGlzdCgobGF5ZXIxbGVuZ3RoICsgbGF5ZXIxSW1wRW5jKSAobGF5ZXIxd2lkdGggKyBsYXllcjFJbXBFbmMpKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSkgaWYoQ2VudGVyQXRPcmlnaW4gdGhlbiAodGhlWSA9IChsYXllcjFZTEwgKyBsYXllcjFZKSkgZWxzZSAodGhlWSA9IGxheWVyMVkpKSBmb3IociAxIHJvdyBpZihDZW50ZXJBdE9yaWdpbiB0aGVuICh0aGVYID0gKGxheWVyMVhMTCArIGxheWVyMVgpKSBlbHNlICh0aGVYID0gbGF5ZXIxWCkpIGZvcihjb2wgMSBjb2x1bW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhTGF5ZXIgbGlzdChsaXN0KHRoZVggdGhlWSkgbGlzdCgodGhlWCArIHcpICh0aGVZICsgbCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodGhlWCA9ICh0aGVYICsgeFBpdGNoKSkpICh0aGVZID0gKHRoZVkgKyB5UGl0Y2gpKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGF5ZXIiICJsaXN0IiB2aWFMYXllcikgaWYoQ2VudGVyQXRPcmlnaW4gdGhlbiAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3RMYXllckJib3giICJsaXN0IiBsaXN0KCgobGF5ZXIxWExMICsgbGF5ZXIxWCk6KGxheWVyMVlMTCArIGxheWVyMVkpKSAoY2FhZHIoKGRiSWR+PmJCb3gpKTpjYWRhZHIoKGRiSWR+PmJCb3gpKSkpKSBlbHNlIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiY29udGFjdExheWVyQmJveCIgImxpc3QiIGxpc3QoKGxheWVyMVg6bGF5ZXIxWSkgKGNhYWRyKChkYklkfj5iQm94KSk6Y2FkYWRyKChkYklkfj5iQm94KSkpKSkpIChsYXllcjJsZW5ndGggPSAoKDIgKiBsYXllcjJYRW5jKSArIHcgKyAoKGNvbHVtbiAtIDEpICogeFBpdGNoKSkpIChsYXllcjJ3aWR0aCA9ICgoMiAqIGxheWVyMllFbmMpICsgbCArICgocm93IC0gMSkgKiB5UGl0Y2gpKSkgaWYoQ2VudGVyQXRPcmlnaW4gdGhlbiAobGF5ZXIyWDFDb29yZCA9IChsYXllcjFYTEwgKyAobGF5ZXIxWCAtIGxheWVyMlhFbmMpKSkgKGxheWVyMlkxQ29vcmQgPSAobGF5ZXIxWUxMICsgKGxheWVyMVkgLSBsYXllcjJZRW5jKSkpIGVsc2UgKGxheWVyMlgxQ29vcmQgPSAobGF5ZXIxWCAtIGxheWVyMlhFbmMpKSAobGF5ZXIyWTFDb29yZCA9IChsYXllcjFZIC0gbGF5ZXIyWUVuYykpKSAobGF5ZXIyWDJDb29yZCA9IChsYXllcjJYMUNvb3JkICsgbGF5ZXIybGVuZ3RoKSkgKGxheWVyMlkyQ29vcmQgPSAobGF5ZXIyWTFDb29yZCArIGxheWVyMndpZHRoKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QoKGxheWVyMlgxQ29vcmQ6bGF5ZXIyWTFDb29yZCkgKGxheWVyMlgyQ29vcmQ6bGF5ZXIyWTJDb29yZCkpKSkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSB3aGVuKGxheWVyMkltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIySW1wbGFudCBsaXN0KGxpc3QoKGxheWVyMlgxQ29vcmQgLSBsYXllcjJJbXBFbmMpIChsYXllcjJZMUNvb3JkIC0gbGF5ZXIySW1wRW5jKSkgbGlzdCgobGF5ZXIyWDJDb29yZCArIGxheWVyMkltcEVuYykgKGxheWVyMlkyQ29vcmQgKyBsYXllcjJJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpKSB3aGVuKHZpYUxheWVySW1wbGFudCAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWFMYXllckltcGxhbnQgbGlzdChsaXN0KChjYWFyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgLSB2aWFMYXllckltcEVuYykgKGNhZGFyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgLSB2aWFMYXllckltcEVuYykpIGxpc3QoKGNhYWRyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgKyB2aWFMYXllckltcEVuYykgKGNhZGFkcigodGNDZWxsVmlld34+Y29udGFjdExheWVyQmJveCkpICsgdmlhTGF5ZXJJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJCb3hFZmYiICJsaXN0IiBsaXN0KGxpc3QobWluKGNhYXIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIGNhYXIoKHRjQ2VsbFZpZXd+PmJvdExheWVyQmJveCkpKSBtaW4oY2FkYXIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIGNhZGFyKCh0Y0NlbGxWaWV3fj5ib3RMYXllckJib3gpKSkpIGxpc3QobWF4KGNhYWRyKCh0Y0NlbGxWaWV3fj50b3BMYXllclBpbkJib3gpKSBjYWFkcigodGNDZWxsVmlld34+Ym90TGF5ZXJCYm94KSkpIG1heChjYWRhZHIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIGNhZGFkcigodGNDZWxsVmlld34+Ym90TGF5ZXJCYm94KSkpKSkpKQAobGF5ZXIxIGxheWVyMiB2aWFMYXllciBtYXh2TGF5ZXIgZW5jQnlMYXllcjEgbGF5ZXIxWEVuYyBsYXllcjFZRW5jIGxheWVyMlhFbmMgbGF5ZXIyWUVuYyBsYXllcjFJbXBsYW50IGxheWVyMUltcEVuYyBsYXllcjJJbXBsYW50IGxheWVyMkltcEVuYyB2aWFMYXllckltcGxhbnQgdmlhTGF5ZXJJbXBFbmMgQ2VudGVyQXRPcmlnaW4gcm93IGNvbHVtbiB4UGl0Y2ggeVBpdGNoIHcgbCByb3RhdGVUb3Agc3dhcFRlbXAgYWxsRGlyIG5ldCBsYXllcjFYIGxheWVyMVkgbGF5ZXIxbGVuZ3RoIGxheWVyMXdpZHRoIGxheWVyMVhMTCBsYXllcjFZTEwgbGF5ZXIxWFVSIGxheWVyMVlVUiBkYklkIHBpbklkIHRoZVkgciB0aGVYIGNvbCBsYXllcjJsZW5ndGggbGF5ZXIyd2lkdGggbGF5ZXIyWDFDb29yZCBsYXllcjJZMUNvb3JkIGxheWVyMlgyQ29vcmQgbGF5ZXIyWTJDb29yZCkAKChyb3cgMSkgKGNvbHVtbiAxKSAoeFBpdGNoIDAuMCkgKHlQaXRjaCAwLjApICh3IDAuMCkgKGwgMC4wKSAocm90YXRlVG9wICJGQUxTRSIpKQAoKGxheWVyMSAiaGlsaXRlIikgKGxheWVyMiAicHJCb3VuZGFyeSIpICh2aWFMYXllciAieTQiKSAobWF4dkxheWVyIG5pbCkgKGVuY0J5TGF5ZXIxIDAuMCkgKGxheWVyMVhFbmMgMC4wKSAobGF5ZXIxWUVuYyAwLjApIChsYXllcjJYRW5jIDAuMCkgKGxheWVyMllFbmMgMC4wKSAobGF5ZXIxSW1wbGFudCBuaWwpIChsYXllcjFJbXBFbmMgMC4wKSAobGF5ZXIySW1wbGFudCBuaWwpIChsYXllcjJJbXBFbmMgMC4wKSAodmlhTGF5ZXJJbXBsYW50IG5pbCkgKHZpYUxheWVySW1wRW5jIDAuMCkgKENlbnRlckF0T3JpZ2luICJGQUxTRSIpKQAoaWYoKChpbXBsYW50ID09IHQpIHx8IChpbXBsYW50ID09ICJUUlVFIikpIHRoZW4gKGltcGxhbnQgPSB0KSBlbHNlIChpbXBsYW50ID0gbmlsKSkgaWYoKChtYXhpbWlzZUNvbnRhY3RzID09IHQpIHx8IChtYXhpbWlzZUNvbnRhY3RzID09ICJUUlVFIikpIHRoZW4gKG1heGltaXNlQ29udGFjdHMgPSB0KSBlbHNlIChtYXhpbWlzZUNvbnRhY3RzID0gbmlsKSkgKGZOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAicjAiKSkgKGRiQ3JlYXRlVGVybSBmTmV0ICJyMCIgImlucHV0T3V0cHV0IikgKGxOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAicjEiKSkgKGRiQ3JlYXRlVGVybSBsTmV0ICJyMSIgImlucHV0T3V0cHV0IikgKHgxQ29vcmQgPSAwLjApICh4T2Zmc2V0ID0gMC4wKSAoeDFDb29yZDIgPSAwLjApICh5MUNvb3JkID0gMC4wKSB3aGVuKCgocnBvTWF4TGVuZ3RoID4gMC4wKSAmJiAocnBvTWluTGVuZ3RoID4gMC4wKSkgd2hlbigoKHJsID4gcnBvTWF4TGVuZ3RoKSB8fCAocmwgPCBycG9NaW5MZW5ndGgpKSBlcnJvcihzcHJpbnRmKG5pbCAiTWluIHJwbyBMZW5ndGggPSAlZiBhbmQgTWF4IHJwbyBMZW5ndGggPSAlZiBcbiIgcnBvTWluTGVuZ3RoIHJwb01heExlbmd0aCkpKSkgd2hlbigoY29udGFjdE5hbWUgIT0gIiIpIChjb250YWN0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgY29udGFjdE5hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhjb250YWN0SWQgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kL29wZW4gYCVzJ1xuIiBjb250YWN0TmFtZSkpKSB1bmxlc3MoKGNvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJgJXMnIGlzIG5vdCBhIHBjZWxsXG4iIGNvbnRhY3ROYW1lKSkpIChwYXJhbXMgPSAoY29udGFjdElkfj5wYXJhbWV0ZXJzKSkgaWYoKHBhcmFtc34+eVBpdGNoKSB0aGVuIChjb250YWN0UGl0Y2ggPSAocGFyYW1zfj55UGl0Y2gpKSBlbHNlIChjb250YWN0UGl0Y2ggPSAoKGNvbnRhY3RJZH4+Y29udGFjdFdpZHRoKSArIChjb250YWN0SWR+PmNvbnRhY3RTcGFjZSkpKSkgaWYoKHBhcmFtc34+bCkgdGhlbiAoY29udGFjdFNwYWNlID0gKGNvbnRhY3RQaXRjaCAtIChwYXJhbXN+PmwpKSkgZWxzZSAoY29udGFjdFNwYWNlID0gKGNvbnRhY3RJZH4+Y29udGFjdFNwYWNlKSkpIHdoZW4obWF4aW1pc2VDb250YWN0cyAodmlhQmJveCA9IChjb250YWN0SWR+PmNvbnRhY3RMYXllckJib3gpKSAoZWZmZWN0aXZlUncgPSAocncgKyAoLTIuMCAqIGNhZGFyKHZpYUJib3gpKSArIGNvbnRhY3RTcGFjZSkpIChudW1Sb3dzQ29udGFjdHMgPSBtYXgoMSBmaXgoKDFlLTA2ICsgKGVmZmVjdGl2ZVJ3IC8gY29udGFjdFBpdGNoKSkpKSkgKGluc3RQYXJhbXMgPSBsaXN0KGxpc3QoInJvdyIgImludCIgbnVtUm93c0NvbnRhY3RzKSkpKSB1bmxlc3MobWF4aW1pc2VDb250YWN0cyAobnVtUm93cyA9IG1heChmaXgoKChydyAvIGNvbnRhY3RQaXRjaCkgKyAxZS0wNikpIDEpKSAoaW5zdFBhcmFtcyA9IGxpc3QobGlzdCgicm93IiAiaW50IiBudW1Sb3dzKSkpKSAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgbGlzdCgiY29sdW1uIiAiaW50IiBudW1Db2xzKSkpIHdoZW4oKHBhcmFtc34+aW1wbGFudCkgaWYoaW1wbGFudCB0aGVuIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBsaXN0KCJpbXBsYW50IiAiYm9vbGVhbiIgdCkpKSBlbHNlIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBsaXN0KCJpbXBsYW50IiAiYm9vbGVhbiIgIkZBTFNFIikpKSkpIHdoZW4oKHBhcmFtc34+aW5XZWxsKSBpZih3ZWxsTGF5ZXIgdGhlbiAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgbGlzdCgiaW5XZWxsIiAiYm9vbGVhbiIgdCkpKSBlbHNlIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBsaXN0KCJpbldlbGwiICJib29sZWFuIiAiRkFMU0UiKSkpKSkgKGluc3QgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBjb250YWN0SWQgImMwIiAoeDFDb29yZDp5MUNvb3JkKSAiTVkiIDEgaW5zdFBhcmFtcykpIHVubGVzcyhpbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGAlcydcbiIgY29udGFjdE5hbWUpKSkgKG1hc3RlciA9IChpbnN0fj5tYXN0ZXIpKSB1bmxlc3MoKG1hc3Rlcn4+Ym90TGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQgYm90TGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnXG4iIGNvbnRhY3ROYW1lKSkpIHVubGVzcygobWFzdGVyfj5jb250YWN0TGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQgY29udGFjdExheWVyQmJveCBwcm9wZXJ0eSBmb3IgYCVzJ1xuIiBjb250YWN0TmFtZSkpKSB1bmxlc3MoKChtYXN0ZXJ+PnRvcExheWVyKSAmJiAobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSBlcnJvcihzcHJpbnRmKG5pbCAiTWlzc2luZyB0b3BMYXllciBhbmQvb3IgdG9wTGF5ZXJQaW5CYm94IGluIGAlcydcbiIgY29udGFjdE5hbWUpKSkgKGNvbnRhY3RYT2Zmc2V0ID0gMC4wKSBpZigoKHJ3IC0gKGNhZGFkcigobWFzdGVyfj5ib3RMYXllckJib3gpKSAtIGNhZGFyKChtYXN0ZXJ+PmJvdExheWVyQmJveCkpKSkgPiAtMWUtMDYpIHRoZW4gKGNvbnRhY3RYT2Zmc2V0ID0gY2FhcigobWFzdGVyfj5jb250YWN0TGF5ZXJCYm94KSkpIGVsc2Ugd2hlbigocGVyY2VudFZhcmlhYmlsaXR5ID4gMWUtMDYpIGVycm9yKHNwcmludGYobmlsICJwZXJjZW50VmFyaWFiaWxpdHkgbXVzdCBiZSAwIHdoZW4gcncgaXMgbGVzcyB0aGFuICVMXG4iIChjYWRhZHIoKG1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkgLSBjYWRhcigobWFzdGVyfj5ib3RMYXllckJib3gpKSkpKSAocGVyY2VudFZhcmlhYmlsaXR5ID0gMCkpKSAoY29udGFjdFlPZmZzZXQgPSAoKHJ3IC8gMi4wKSAtICgoKGNhZGFkcigobWFzdGVyfj5jb250YWN0TGF5ZXJCYm94KSkgLSBjYWRhcigobWFzdGVyfj5jb250YWN0TGF5ZXJCYm94KSkpIC8gMi4wKSArIChjYWRhcigobWFzdGVyfj5jb250YWN0TGF5ZXJCYm94KSkgLSBjYWRhcigobWFzdGVyfj5ib3RMYXllckJib3gpKSkpKSkgKGNvbnRhY3RZT2Zmc2V0ID0gKHJvdW5kKChjb250YWN0WU9mZnNldCAvIHJlc2lzdG9yTGF5ZXJHcmlkKSkgKiByZXNpc3RvckxheWVyR3JpZCkpIChkYk1vdmVGaWcgaW5zdCB0Y0NlbGxWaWV3IGxpc3QoKGNvbnRhY3RYT2Zmc2V0OmNvbnRhY3RZT2Zmc2V0KSAiUjAiKSkgKGJCb3ggPSBsaXN0KGxpc3QoKGNvbnRhY3RYT2Zmc2V0IC0gY2FhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkgKGNvbnRhY3RZT2Zmc2V0ICsgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSBsaXN0KChjb250YWN0WE9mZnNldCAtIGNhYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSAoY29udGFjdFlPZmZzZXQgKyBjYWRhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IChtYXN0ZXJ+PnRvcExheWVyKSBiQm94KSkgKGRiQ3JlYXRlUGluIGZOZXQgZGJpZCkgKHhPZmZzZXQgPSAoY2FhZHIoKG1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkgLSBjb250YWN0WE9mZnNldCkpICh4MUNvb3JkMiA9ICh4MUNvb3JkIC0geE9mZnNldCkpIHdoZW4od2VsbExheWVyICh4MVdlbGxDb29yZCA9ICh4MUNvb3JkMiAtIHdlbGxFbmMpKSAoeTFXZWxsQ29vcmQgPSAoLSB3ZWxsRW5jKSkgd2hlbigoY29udGFjdFlPZmZzZXQgPCAxZS0wNikgKHkxV2VsbENvb3JkID0gKGNvbnRhY3RZT2Zmc2V0IC0gd2VsbEVuYykpKSkgd2hlbihpbXBsYW50TGF5ZXIgKGltcE9mZnNldCA9IChpbXBTcGFjZUNvbnRhY3QgLSAoY2FhcigobWFzdGVyfj5jb250YWN0TGF5ZXJCYm94KSkgLSBjb250YWN0WE9mZnNldCkpKSB3aGVuKChydyA8IChjYWRhZHIoKG1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkgLSBjYWRhcigobWFzdGVyfj5ib3RMYXllckJib3gpKSkpIChpbXBPZmZzZXQgPSAoaW1wU3BhY2VSZXNpc3RvckxheWVyICsgY2FhcigobWFzdGVyfj5ib3RMYXllckJib3gpKSkpKSAoeDFJbXBDb29yZCA9ICh4MUNvb3JkICsgaW1wT2Zmc2V0KSkgKHkxSW1wQ29vcmQgPSAoeTFDb29yZCAtIGltcEVuYykpICh4MUNvb3JkID0gKHgxQ29vcmQgKyBpbXBPZmZzZXQpKSAoeE9mZnNldCA9ICh4T2Zmc2V0ICsgaW1wT2Zmc2V0KSkpKSAoeDJDb29yZCA9ICh4MUNvb3JkICsgcmwgKyB4T2Zmc2V0KSkgKHgyQ29vcmQyID0gKHgxQ29vcmQgKyBybCkpIHdoZW4oKHBlcmNlbnRWYXJpYWJpbGl0eSA+IDFlLTA2KSAoSW5jTGVuZ3RoID0gKChybCAqIHBlcmNlbnRWYXJpYWJpbGl0eSkgLyAxMDAuMCkpIChJbmNMZW5ndGggPSAocm91bmQoKEluY0xlbmd0aCAvIHJlc2lzdG9yTGF5ZXJHcmlkKSkgKiByZXNpc3RvckxheWVyR3JpZCkpICh4MkNvb3JkID0gKHhPZmZzZXQgKyB4MUNvb3JkICsgcmwgKyBJbmNMZW5ndGgpKSAoeDJDb29yZDIgPSAoeDFDb29yZCArIHJsICsgbWluKGRlbHRhTGVuZ3RoIEluY0xlbmd0aCkpKSkgKGNlbnRlclggPSAoeDFDb29yZCArICgoeDJDb29yZDIgLSB4MUNvb3JkKSAvIDIuMCkpKSAoYkJveCA9IGxpc3QobGlzdCgoY2VudGVyWCAtIChyZXNDdXRXaWR0aCAvIDIuMCkpIHkxQ29vcmQpIGxpc3QoKGNlbnRlclggKyAocmVzQ3V0V2lkdGggLyAyLjApKSAoeTFDb29yZCArIHJ3KSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmVzQ3V0TGF5ZXIgYkJveCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc2lzdG9yTGF5ZXIgbGlzdCgoeDFDb29yZDI6eTFDb29yZCkgKHgyQ29vcmQ6KHkxQ29vcmQgKyBydykpKSkgd2hlbigoZnVsbEltcGxhbnRMYXllciAmJiBpbXBsYW50KSAoZnVsbEltcEJib3ggPSBsaXN0KGxpc3QoKHgxQ29vcmQyIC0gZnVsbEltcEVuYykgKHkxQ29vcmQgLSBmdWxsSW1wRW5jKSkgbGlzdCgoeDJDb29yZCArIGZ1bGxJbXBFbmMpICh5MUNvb3JkICsgZnVsbEltcEVuYyArIHJ3KSkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc0lkTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoeDJDb29yZDI6KHkxQ29vcmQgKyBydykpKSkgd2hlbihhcmVhSWRMYXllciAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgYXJlYUlkTGF5ZXIgbGlzdCgoKHgxQ29vcmQgKyAoLSBhcmVhSWRFbmNSZXMpKTooeTFDb29yZCArICgtIGFyZWFJZEVuY1JlcykpKSAoKHgyQ29vcmQyICsgYXJlYUlkRW5jUmVzKTooeTFDb29yZCArIHJ3ICsgYXJlYUlkRW5jUmVzKSkpKSkgd2hlbigoY29udGFjdE5hbWUgPT0gIiIpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc2lzdG9yTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKHgxQ29vcmQgKyByZXNpc3RvckxheWVyR3JpZCk6KHkxQ29vcmQgKyBydykpKSkpIChkYkNyZWF0ZVBpbiBmTmV0IGRiaWQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc2lzdG9yTGF5ZXIgbGlzdCgoKHgyQ29vcmQyIC0gcmVzaXN0b3JMYXllckdyaWQpOnkxQ29vcmQpICh4MkNvb3JkMjooeTFDb29yZCArIHJ3KSkpKSkgKGRiQ3JlYXRlUGluIGxOZXQgZGJpZCkgd2hlbih3ZWxsTGF5ZXIgKHgxV2VsbENvb3JkID0gKHgxQ29vcmQgLSB3ZWxsRW5jKSkgKHkxV2VsbENvb3JkID0gKHkxQ29vcmQgLSB3ZWxsRW5jKSkgKHgyV2VsbENvb3JkID0gbWF4KCh4MVdlbGxDb29yZCArIHdlbGxXaWR0aCkgKHgyQ29vcmQgKyB3ZWxsRW5jKSkpICh5MldlbGxDb29yZCA9IG1heCgoeTFXZWxsQ29vcmQgKyB3ZWxsV2lkdGgpICh5MUNvb3JkICsgcncgKyB3ZWxsRW5jKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgbGlzdCgoeDFXZWxsQ29vcmQ6eTFXZWxsQ29vcmQpICh4MldlbGxDb29yZDp5MldlbGxDb29yZCkpKSkgd2hlbihpbXBsYW50TGF5ZXIgKHgxSW1wQ29vcmQgPSAoeDFDb29yZCAtIGltcEVuYykpICh5MUltcENvb3JkID0gKHkxQ29vcmQgLSBpbXBFbmMpKSAoeDJJbXBDb29yZCA9IG1heCgoeDJDb29yZDIgKyBpbXBFbmMpICh4MUltcENvb3JkICsgaW1wV2lkdGgpKSkgKHkySW1wQ29vcmQgPSBtYXgoKHkxQ29vcmQgKyBydyArIGltcEVuYykgKHkxSW1wQ29vcmQgKyBpbXBXaWR0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaW1wbGFudExheWVyIGxpc3QoKHgxSW1wQ29vcmQ6eTFJbXBDb29yZCkgKHgySW1wQ29vcmQ6eTJJbXBDb29yZCkpKSkpIHdoZW4oKGNvbnRhY3ROYW1lICE9ICIiKSAoeDFDb29yZCA9ICh4MkNvb3JkMiArIGNhYXIoKG1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkpKSB3aGVuKGltcGxhbnRMYXllciAoeDJJbXBDb29yZCA9IG1heCh4MkNvb3JkMiAoeDFJbXBDb29yZCArIGltcFdpZHRoKSkpICh5MkltcENvb3JkID0gbWF4KCh5MUNvb3JkICsgcncgKyBpbXBFbmMpICh5MUltcENvb3JkICsgaW1wV2lkdGgpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGltcGxhbnRMYXllciBsaXN0KCh4MUltcENvb3JkOnkxSW1wQ29vcmQpICh4MkltcENvb3JkOnkySW1wQ29vcmQpKSkgKHgxQ29vcmQgPSAoeDFDb29yZCArIGltcE9mZnNldCkpKSAoY29udGFjdFhPZmZzZXQgPSAoLSBjb250YWN0WE9mZnNldCkpIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkICJjMSIgKCh4MUNvb3JkICsgY29udGFjdFhPZmZzZXQpOmNvbnRhY3RZT2Zmc2V0KSAiUjAiIDEgaW5zdFBhcmFtcykpIHVubGVzcyhpbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGAlcydcbiIgY29udGFjdE5hbWUpKSkgKG1hc3RlciA9IChpbnN0fj5tYXN0ZXIpKSAoYkJveCA9IGxpc3QobGlzdCgoeDFDb29yZCArIGNhYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyBjb250YWN0WE9mZnNldCkgKGNvbnRhY3RZT2Zmc2V0ICsgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSBsaXN0KCh4MUNvb3JkICsgY2FhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyBjb250YWN0WE9mZnNldCkgKGNvbnRhY3RZT2Zmc2V0ICsgY2FkYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkpKSB3aGVuKCgocGVyY2VudFZhcmlhYmlsaXR5ID4gMWUtMDYpICYmICgoSW5jTGVuZ3RoIC0gZGVsdGFMZW5ndGgpID4gMWUtMDYpKSAoYkJveCA9IGxpc3QobGlzdCgoeDFDb29yZCArIGNhYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyBjb250YWN0WE9mZnNldCkgKGNvbnRhY3RZT2Zmc2V0ICsgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSBsaXN0KCh4MUNvb3JkICsgY2FhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyBjb250YWN0WE9mZnNldCArIChJbmNMZW5ndGggLSBkZWx0YUxlbmd0aCkpIChjb250YWN0WU9mZnNldCArIGNhZGFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IChtYXN0ZXJ+PnRvcExheWVyKSBiQm94KSkgKGRiQ3JlYXRlUGluIGxOZXQgZGJpZCkgd2hlbih3ZWxsTGF5ZXIgKHgyV2VsbENvb3JkID0gbWF4KCh4MVdlbGxDb29yZCArIHdlbGxXaWR0aCkgKHgyQ29vcmQgKyB3ZWxsRW5jKSkpICh5MldlbGxDb29yZCA9IG1heCgoeTFDb29yZCArIHJ3ICsgd2VsbEVuYykgKGNvbnRhY3RZT2Zmc2V0ICsgY2FkYWRyKChtYXN0ZXJ+PmJvdExheWVyQmJveCkpICsgd2VsbEVuYykgKHkxV2VsbENvb3JkICsgd2VsbFdpZHRoKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgbGlzdCgoeDFXZWxsQ29vcmQ6eTFXZWxsQ29vcmQpICh4MldlbGxDb29yZDp5MldlbGxDb29yZCkpKSkgd2hlbigoZnVsbEltcGxhbnRMYXllciAmJiBpbXBsYW50KSAoZnVsbEltcEJib3ggPSBsaXN0KGxpc3QobWluKGNhYXIoZnVsbEltcEJib3gpIChjYWFyKChtYXN0ZXJ+PmJvdExheWVyQmJveCkpIC0gZnVsbEltcEVuYykpIG1pbihjYWRhcihmdWxsSW1wQmJveCkgKGNvbnRhY3RZT2Zmc2V0ICsgY2FkYXIoKG1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkgKyAoLSBmdWxsSW1wRW5jKSkpKSBsaXN0KG1heChjYWFkcihmdWxsSW1wQmJveCkgKHgyQ29vcmQgKyBmdWxsSW1wRW5jKSkgbWF4KGNhZGFkcihmdWxsSW1wQmJveCkgKGNvbnRhY3RZT2Zmc2V0ICsgY2FkYWRyKChtYXN0ZXJ+PmJvdExheWVyQmJveCkpICsgZnVsbEltcEVuYykpKSkpKSAoZGJDbG9zZSBjb250YWN0SWQpKSB3aGVuKChmdWxsSW1wbGFudExheWVyICYmIGltcGxhbnQpIChidWxraWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZnVsbEltcGxhbnRMYXllciBmdWxsSW1wQmJveCkpIChiTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImIiKSkgKGRiQ3JlYXRlVGVybSBiTmV0ICJiIiAiaW5wdXQiKSAoZGJDcmVhdGVQaW4gYk5ldCBidWxraWQgImIiKSkpAChyZXNpc3RvckxheWVyIHJlc0lkTGF5ZXIgcmVzQ3V0TGF5ZXIgcmVzQ3V0V2lkdGggYXJlYUlkTGF5ZXIgZnVsbEltcGxhbnRMYXllciBmdWxsSW1wRW5jIHdlbGxMYXllciB3ZWxsRW5jIHdlbGxXaWR0aCBpbXBsYW50TGF5ZXIgaW1wRW5jIGltcFdpZHRoIGltcFNwYWNlQ29udGFjdCBpbXBTcGFjZVJlc2lzdG9yTGF5ZXIgcmVzaXN0b3JMYXllckdyaWQgbWF4aW1pc2VDb250YWN0cyBudW1Db2xzIGFyZWFJZEVuY1JlcyBycG9NYXhMZW5ndGggcnBvTWluTGVuZ3RoIHJ3IHJsIHBlcmNlbnRWYXJpYWJpbGl0eSBkZWx0YUxlbmd0aCBjb250YWN0TmFtZSBpbXBsYW50IGZOZXQgbE5ldCB4MUNvb3JkIHhPZmZzZXQgeDFDb29yZDIgeTFDb29yZCBjb250YWN0SWQgcGFyYW1zIGNvbnRhY3RQaXRjaCBjb250YWN0U3BhY2UgdmlhQmJveCBlZmZlY3RpdmVSdyBudW1Sb3dzQ29udGFjdHMgaW5zdFBhcmFtcyBudW1Sb3dzIGluc3QgbWFzdGVyIGNvbnRhY3RYT2Zmc2V0IGNvbnRhY3RZT2Zmc2V0IGJCb3ggZGJpZCB4MVdlbGxDb29yZCB5MVdlbGxDb29yZCBpbXBPZmZzZXQgeDFJbXBDb29yZCB5MUltcENvb3JkIHgyQ29vcmQgeDJDb29yZDIgSW5jTGVuZ3RoIGNlbnRlclggZnVsbEltcEJib3ggeDJXZWxsQ29vcmQgeTJXZWxsQ29vcmQgeDJJbXBDb29yZCB5MkltcENvb3JkIGJ1bGtpZCBiTmV0KQAoKHJ3IDAuMCkgKHJsIDAuMCkgKHBlcmNlbnRWYXJpYWJpbGl0eSAwKSAoZGVsdGFMZW5ndGggMC4wKSAoY29udGFjdE5hbWUgIiIpIChpbXBsYW50IHQpKQAoKHJlc2lzdG9yTGF5ZXIgInRhcCIpIChyZXNJZExheWVyIGxpc3QoInJlcyIgImRyYXdpbmciKSkgKHJlc0N1dExheWVyIGxpc3QoInJlcyIgImN1dCIpKSAocmVzQ3V0V2lkdGggMC4wKSAoYXJlYUlkTGF5ZXIgbmlsKSAoZnVsbEltcGxhbnRMYXllciBuaWwpIChmdWxsSW1wRW5jIDAuMCkgKHdlbGxMYXllciBuaWwpICh3ZWxsRW5jIDAuMCkgKHdlbGxXaWR0aCAwLjApIChpbXBsYW50TGF5ZXIgbmlsKSAoaW1wRW5jIDAuMCkgKGltcFdpZHRoIDAuMCkgKGltcFNwYWNlQ29udGFjdCAwLjApIChpbXBTcGFjZVJlc2lzdG9yTGF5ZXIgMC4wKSAocmVzaXN0b3JMYXllckdyaWQgMC4wKSAobWF4aW1pc2VDb250YWN0cyAiRkFMU0UiKSAobnVtQ29scyAxKSAoYXJlYUlkRW5jUmVzIDAuMCkgKHJwb01heExlbmd0aCAwLjApIChycG9NaW5MZW5ndGggMC4wKSkAKHdoZW4oKHcgPiBtb2RlbFdtYXgpIGVycm9yKCIlZiBpcyBncmVhdGVyIHRoYW4gYWxsb3dhYmxlIG1heGltdW0gd2lkdGggJWYgZm9yIG1vZGVsICVMIiB3IG1vZGVsV21heCBtb2RlbFRleHQpKSB3aGVuKCh3IDwgbW9kZWxXbWluKSBlcnJvcigiJWYgaXMgbGVzcyB0aGFuIGFsbG93YWJsZSBtaW5pbXVtIHdpZHRoICVmIGZvciBtb2RlbCAlTCIgdyBtb2RlbFdtaW4gbW9kZWxUZXh0KSkgd2hlbigobCA+IG1vZGVsTG1heCkgZXJyb3IoIiVmIGlzIGdyZWF0ZXIgdGhhbiBhbGxvd2FibGUgbGVuZ3RoICVmIGZvciBtb2RlbCAlTCIgbCBtb2RlbExtYXggbW9kZWxUZXh0KSkgd2hlbigobCA8IG1vZGVsTG1pbikgZXJyb3IoIiVmIGlzIGxlc3MgdGhhbiBhbGxvd2FibGUgbWluaW11bSBsZW5ndGggJWYgZm9yIG1vZGVsICVMIiBsIG1vZGVsTG1pbiBtb2RlbFRleHQpKSAoZ05ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJnIikpIChkYkNyZWF0ZVRlcm0gZ05ldCAiZyIgImlucHV0IikgKHNOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAicyIpKSAoZGJDcmVhdGVUZXJtIHNOZXQgInMiICJpbnB1dE91dHB1dCIpIChkTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImQiKSkgKGRiQ3JlYXRlVGVybSBkTmV0ICJkIiAiaW5wdXRPdXRwdXQiKSAoaXJOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiaXIiKSkgKGRiQ3JlYXRlVGVybSBpck5ldCAiaXIiICJpbnB1dE91dHB1dCIpIChvck5ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJvciIpKSAoZGJDcmVhdGVUZXJtIG9yTmV0ICJvciIgImlucHV0T3V0cHV0IikgY29uZCgoKHNocmlua1BlcmNlbnQgPT0gMC4wKSAoc2NhbGVNdWx0ID0gMS4wKSkgKHQgKHNjYWxlTXVsdCA9ICgxMDAuMCAvICgxMDAuMCAtIHNocmlua1BlcmNlbnQpKSkgKHZpYTFQb2x5R3JpZCA9IG1heCh2aWExZ3JpZCBwb2x5R3JpZCkpIGZvcmVhY2goc2l6ZUFuZEdyaWQgbGlzdChsaXN0KCdzcmNWaWFHYXRlU3BhY2UgdmlhMVBvbHlHcmlkKSBsaXN0KCdkcm5WaWFHYXRlU3BhY2UgdmlhMVBvbHlHcmlkKSBsaXN0KCdkcm5WaWFZc3BhY2VSaW5nVmlhVG9wIHZpYTFncmlkKSBsaXN0KCdkcm5WaWFZc3BhY2VSaW5nVmlhQm90IHZpYTFncmlkKSBsaXN0KCdpbm5lclJpbmdUYXBXaWR0aCB0YXBHcmlkKSBsaXN0KCdvdXRlclJpbmdUYXBXaWR0aCB0YXBHcmlkKSBsaXN0KCdpbm5lclJpbmdNZXRhbFdpZHRoIGxheWVyMmdyaWQpIGxpc3QoJ3ZpYTFWaWEyU3BhY2UgdmlhMWdyaWQpIGxpc3QoJ2xheWVyMldpZHRoIGxheWVyMmdyaWQpIGxpc3QoJ2xheWVyM1dpZHRoIGxheWVyM2dyaWQpIGxpc3QoJ29yTGF5ZXIzV2lkdGggbGF5ZXIzZ3JpZCkgbGlzdCgnbWluVyBkaWZmR3JpZCkgbGlzdCgnbWF4VyBkaWZmR3JpZCkgbGlzdCgnbWluVG90YWxXIGRpZmZHcmlkKSkgKHRoZVNpemUgPSBjYXIoc2l6ZUFuZEdyaWQpKSAodGhlR3JpZCA9IGNhZHIoc2l6ZUFuZEdyaWQpKSAodGVtcFNpemUgPSAoKGV2YWwodGhlU2l6ZSkgKiBzY2FsZU11bHQpIC8gdGhlR3JpZCkpIHNldCh0aGVTaXplIChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIHRoZUdyaWQpKSkpKSBmb3JlYWNoKGtsdWRnZSBsaXN0KGxpc3QoJ29yTGF5ZXIzV2lkdGggbGF5ZXIzZ3JpZCB2aWEyV2lkdGggdmlhMmdyaWQpIGxpc3QoJ291dGVyUmluZ1RhcFdpZHRoIHRhcEdyaWQgdmlhMVdpZHRoIHZpYTFncmlkKSkgKHRtcE9yTGF5ZXJXaWR0aCA9IG50aCgwIGtsdWRnZSkpICh0bXBPckxheWVyR3JpZCA9IG50aCgxIGtsdWRnZSkpICh0bXBWaWFXaWR0aCA9IG50aCgyIGtsdWRnZSkpICh0bXBWaWFHcmlkID0gbnRoKDMga2x1ZGdlKSkgKHRlbXBTaXplID0gKHRtcFZpYVdpZHRoIC8gdG1wVmlhR3JpZCkpIGNvbmQoKG9kZHAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkpICh0ZW1wU2l6ZSA9IChldmFsKHRtcE9yTGF5ZXJXaWR0aCkgLyB0bXBPckxheWVyR3JpZCkpIHdoZW4oZXZlbnAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkpIHNldCh0bXBPckxheWVyV2lkdGggKGV2YWwodG1wT3JMYXllcldpZHRoKSArIGxheWVyM2dyaWQpKSkpICh0ICh0ZW1wU2l6ZSA9IChldmFsKHRtcE9yTGF5ZXJXaWR0aCkgLyB0bXBPckxheWVyR3JpZCkpIHdoZW4ob2RkcChmaXgoKHRlbXBTaXplICsgMC45OTkpKSkgc2V0KHRtcE9yTGF5ZXJXaWR0aCAoZXZhbCh0bXBPckxheWVyV2lkdGgpICsgbGF5ZXIzZ3JpZCkpKSkpKSAodmlhMVBpdGNoID0gKHZpYTFXaWR0aCArIHZpYTFTcGFjZSkpICh2aWEyUGl0Y2ggPSAodmlhMldpZHRoICsgdmlhMlNwYWNlKSkgKHRhcmdldFJvd3MgPSAoKHcgKyAoLTIuMCAqIHZpYUV4dERpZmYpICsgdmlhMVNwYWNlKSAvIHZpYTFQaXRjaCkpIChyb3dzT2ZDb250YWN0cyA9IGZpeCgoMC45OTkgKyB0YXJnZXRSb3dzKSkpIHdoZW4oKGFicygocm93c09mQ29udGFjdHMgLSB0YXJnZXRSb3dzKSkgPiAwLjAwMDEpIGVycm9yKCJwRXNkVHJhbkltcENhc2NvZGVDbGFzczogdyAoJWYpIGRvZXMgbm90IHNhdGlzZnkgdmlhIHBpdGNoIHJlcXVpcmVtZW50cy4gIFRyeSBlaXRoZXIgJWYgb3IgJWZcbiIgdyAoKHJvd3NPZkNvbnRhY3RzICogdmlhMVBpdGNoKSArICgtIHZpYTFTcGFjZSkgKyAoMi4wICogdmlhRXh0RGlmZikpICgoKHJvd3NPZkNvbnRhY3RzIC0gMSkgKiB2aWExUGl0Y2gpICsgKC0gdmlhMVNwYWNlKSArICgyLjAgKiB2aWFFeHREaWZmKSkpKSB3aGVuKCgodyAtIDFlLTA2KSA8IG1pblcpIGVycm9yKCJwRXNkVHJhbkltcENhc2NvZGVDbGFzczogIHcgKCVmKSBpcyBsZXNzIHRoYW4gbWluaW11bSBhbGxvd2FibGUgd2lkdGggcGVyIGxlZyAoJWYpXG4iIHcgbWluVykpIHdoZW4oKCh3IC0gMWUtMDYpID4gbWF4VykgZXJyb3IoInBFc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgdyAoJWYpIGlzIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIGFsbG93YWJsZSB3aWR0aCBwZXIgbGVnICglZilcbiIgdyBtYXhXKSkgd2hlbigoKHcgKiBtKSA8IG1pblRvdGFsVykgZXJyb3IoInBFc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgdG90YWwgdyAoJWYpIGlzIGxlc3MgdGhhbiB0aGUgbWluaW11bSB0b3RhbCB3aWR0aCAoJWYpXG4iICh3ICogbSkgbWluVG90YWxXKSkgdW5sZXNzKCghZmxvYXRwKG0pICYmIG51bWJlcnAobSkpIGVycm9yKCJwRXNkVHJhbkltcENhc2NvZGVDbGFzczogIG0gbXVzdCBiZSBhbiBldmVuIGludGVnZXIsIG5vdCBhIGZsb2F0XG4iKSkgd2hlbihvZGRwKG0pIGVycm9yKCJwRXNkVHJhbkltcENhc2NvZGVDbGFzczogIG0gKG51bWJlciBvZiBsZWdzKSBtdXN0IGJlIGFuIGV2ZW4gaW50ZWdlclxuIikpIChmbGFyZWRHYXRlSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZmxhcmVkR2F0ZU5hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhmbGFyZWRHYXRlSWQgZXJyb3IoInBFc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgQ2Fubm90IGZpbmQvb3BlbiBmbGFyZWQgZ2F0ZSAlc1xuIiBmbGFyZWRHYXRlTmFtZSkpIHVubGVzcygoZmxhcmVkR2F0ZUlkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoInBFc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgRmxhcmVkIGdhdGUgJXMgaXMgbm90IGEgcGNlbGxcbiIgZmxhcmVkR2F0ZU5hbWUpKSAocmluZ0lkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGdlbmVyaWNSaW5nTmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHJpbmdJZCBlcnJvcigicEVzZFRyYW5JbXBDYXNjb2RlQ2xhc3M6ICBDYW5ub3QgZmluZC9vcGVuIHJpbmcgJXNcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgdW5sZXNzKChyaW5nSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigicEVzZFRyYW5JbXBDYXNjb2RlQ2xhc3M6ICBSaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIGdlbmVyaWNSaW5nTmFtZSkpIChyaXZldGVkUmluZ0lkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIHJpdmV0ZWRSaW5nTmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHJpdmV0ZWRSaW5nSWQgZXJyb3IoInBFc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgQ2Fubm90IGZpbmQvb3BlbiByaXZldGVkIHJpbmcgJXNcbiIgcml2ZXRlZFJpbmdOYW1lKSkgdW5sZXNzKChyaXZldGVkUmluZ0lkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoInBFc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgUml2ZXRlZCByaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIHJpdmV0ZWRSaW5nTmFtZSkpIChzcmNWaWFUb1NyY1RhcFNwYWNlID0gbWF4KDAuMCAodmlhMVNwYWNlIC0gKCh0YXBXaWR0aCAtIHZpYTFXaWR0aCkgLyAyLjApKSBzcmNWaWFUYXBTcGFjZSkpIChkaWZmWG9yaWdpbiA9ICgoLSB0YXBXaWR0aCkgKyAoLSBzcmNWaWFUb1NyY1RhcFNwYWNlKSArICgtIHZpYTFXaWR0aCkgKyAoLSBzcmNWaWFHYXRlU3BhY2UpICsgKC0gZXh0cmFTcmNTcGFjZSkpKSAoZGlmZllvcmlnaW4gPSAwLjApICh0b3RhbERybkxlbmd0aCA9ICgoMi4wICogKGRyblZpYUdhdGVTcGFjZSArIGV4dHJhRHJuU3BhY2UpKSArIHZpYTFXaWR0aCkpIChoYWxmU3JjRGlmZkxlbmd0aCA9IChzcmNWaWFHYXRlU3BhY2UgKyBleHRyYVNyY1NwYWNlICsgdmlhMVdpZHRoICsgc3JjVmlhVG9TcmNUYXBTcGFjZSkpICh0b3RhbFNyY0RpZmZMZW5ndGggPSAoMi4wICogaGFsZlNyY0RpZmZMZW5ndGgpKSAoaGFsZkwgPSAobCArIChHYXRlVG9HYXRlU3BhY2UgLyAyLjApKSkgKGRpZmZZZW5kID0gdykgKGRpZmZJbXBZZW5kID0gKGRpZmZZZW5kICsgZGlmZkltcEVuYykpIChkaWZmSW1wWW9yaWdpbiA9IChkaWZmWW9yaWdpbiAtIGRpZmZJbXBFbmMpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBMYXllciBsaXN0KChkaWZmWG9yaWdpbjpkaWZmWW9yaWdpbikgKChkaWZmWG9yaWdpbiArIHRhcFdpZHRoKTpkaWZmWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBXZWxsSW1wbGFudCBsaXN0KGxpc3QoKGRpZmZYb3JpZ2luIC0gdGFwV2VsbEltcEVuYykgKGRpZmZZb3JpZ2luIC0gdGFwV2VsbEltcEVuYykpIGxpc3QoKGRpZmZYb3JpZ2luICsgdGFwV2lkdGgpIChkaWZmWWVuZCArIHRhcFdlbGxJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkaWZmWGxvb3AgPSAoZGlmZlhvcmlnaW4gKyB0YXBXaWR0aCkpIGZvcihzZWN0aW9uIDEgKG0gLyAyKSAoc3JjRGlmZlhlbmQgPSAoZGlmZlhsb29wICsgaGFsZlNyY0RpZmZMZW5ndGggKyBoYWxmTCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KChkaWZmWGxvb3A6ZGlmZllvcmlnaW4pIChzcmNEaWZmWGVuZDpkaWZmWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoZGlmZlhsb29wIGRpZmZJbXBZb3JpZ2luKSBsaXN0KHNyY0RpZmZYZW5kIGRpZmZJbXBZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkaWZmWGxvb3AgPSBzcmNEaWZmWGVuZCkgKGRybkRpZmZYZW5kID0gKGRpZmZYbG9vcCArIHRvdGFsRHJuTGVuZ3RoICsgbCArIGwgKyBHYXRlVG9HYXRlU3BhY2UpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhsb29wOmRpZmZZb3JpZ2luKSAoZHJuRGlmZlhlbmQ6ZGlmZlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KGRpZmZYbG9vcCBkaWZmSW1wWW9yaWdpbikgbGlzdChkcm5EaWZmWGVuZCBkaWZmSW1wWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBkTmV0KSAoZGlmZlhsb29wID0gZHJuRGlmZlhlbmQpIChzcmNEaWZmWGVuZCA9IChkaWZmWGxvb3AgKyBoYWxmU3JjRGlmZkxlbmd0aCArIGhhbGZMKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKGRpZmZYbG9vcDpkaWZmWW9yaWdpbikgKHNyY0RpZmZYZW5kOmRpZmZZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdChkaWZmWGxvb3AgZGlmZkltcFlvcmlnaW4pIGxpc3Qoc3JjRGlmZlhlbmQgZGlmZkltcFllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRpZmZYbG9vcCA9IChzcmNEaWZmWGVuZCArIHRhcFdpZHRoKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwTGF5ZXIgbGlzdCgoc3JjRGlmZlhlbmQ6ZGlmZllvcmlnaW4pIChkaWZmWGxvb3A6ZGlmZlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgaWYoKHNlY3Rpb24gPT0gKG0gLyAyKSkgdGhlbiAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBXZWxsSW1wbGFudCBsaXN0KGxpc3Qoc3JjRGlmZlhlbmQgKGRpZmZZb3JpZ2luIC0gdGFwV2VsbEltcEVuYykpIGxpc3QoKGRpZmZYbG9vcCArIHRhcFdlbGxJbXBFbmMpIChkaWZmWWVuZCArIHRhcFdlbGxJbXBFbmMpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcFdlbGxJbXBsYW50IGxpc3QobGlzdChzcmNEaWZmWGVuZCAoZGlmZllvcmlnaW4gLSB0YXBXZWxsSW1wRW5jKSkgbGlzdChkaWZmWGxvb3AgKGRpZmZZZW5kICsgdGFwV2VsbEltcEVuYykpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaWRMYXllciBsaXN0KChkaWZmWG9yaWdpbjpkaWZmWW9yaWdpbikgKGRpZmZYbG9vcDpkaWZmWWVuZCkpKSB3aGVuKGRpZmZDb3JlSW1wbGFudCAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QoKChkaWZmWG9yaWdpbiArIHRhcFdpZHRoICsgKC0gZGlmZkNvcmVJbXBFbmMpKTooZGlmZllvcmlnaW4gKyAoLSBkaWZmQ29yZUltcEVuYykpKSAoKGRpZmZYbG9vcCArICgtIHRhcFdpZHRoKSArIGRpZmZDb3JlSW1wRW5jKTooZGlmZlllbmQgKyBkaWZmQ29yZUltcEVuYykpKSkpIChkaWZmWGVuZCA9IGRpZmZYbG9vcCkgKGdhdGVYb2Zmc2V0ID0gMC4wKSBmb3IoZ2F0ZU51bSAxIG0gKGluc3QgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBmbGFyZWRHYXRlSWQgc3ByaW50ZihuaWwgImclZCIgZ2F0ZU51bSkgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoImdhdGVMYXllciIgImxpc3QiIG5pbCkgbGlzdCgiZ2F0ZVJlY29nbml0aW9uTGF5ZXIiICJsaXN0IiByZ2F0ZUxheWVyKSBsaXN0KCJ3IiAiZmxvYXQiIHcpIGxpc3QoImwiICJmbG9hdCIgbCkgbGlzdCgiZmxhcmVBbW91bnRfb3V0IiAiZmxvYXQiIGZsYXJlWWFtb3VudF9vdXQpIGxpc3QoImZsYXJlQW1vdW50X2luIiAiZmxvYXQiIGZsYXJlWWFtb3VudF9pbikgbGlzdCgiZmxhcmVFeHRlbnNpb24iICJmbG9hdCIgZmxhcmVZZXh0ZW5zaW9uKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGdhdGVYb2Zmc2V0KSBsaXN0KCJnYXRlVG9HYXRlU3BhY2UiICJmbG9hdCIgR2F0ZVRvR2F0ZVNwYWNlKSkpKSB1bmxlc3MoaW5zdCBlcnJvcigicEVzZFRyYW5JbXBDYXNjb2RlQ2xhc3M6ICBGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGZsYXJlZCBnYXRlICVzIiBmbGFyZWRHYXRlTmFtZSkpIChtYXN0ZXIgPSAoaW5zdH4+bWFzdGVyKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIChtYXN0ZXJ+Pm5vZmxhcmVQb2ludHMpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBnTmV0KSAobW9kZWxUZXh0WCA9IChnYXRlWG9mZnNldCArICgoY2FhZHIoKG1hc3Rlcn4+bm9mbGFyZVBvaW50cykpIC0gY2FhcigobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkpIC8gMikpKSAobW9kZWxUZXh0WSA9ICgoY2FkYXIoKG1hc3Rlcn4+bm9mbGFyZVBvaW50cykpIC0gY2FkYWRyKChtYXN0ZXJ+Pm5vZmxhcmVQb2ludHMpKSkgLyAyKSkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBtb2RlbFRleHRMYXllciBsaXN0KG1vZGVsVGV4dFggbW9kZWxUZXh0WSkgbW9kZWxUZXh0ICJjZW50ZXJDZW50ZXIiICJSMCIgInN0aWNrIiBtb2RlbFRleHRMYXllclNpemUpIChtb2RlbFRleHRYID0gKChHYXRlVG9HYXRlU3BhY2UgKyBsKSArIChnYXRlWG9mZnNldCArICgoY2FhZHIoKG1hc3Rlcn4+bm9mbGFyZVBvaW50cykpIC0gY2FhcigobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkpIC8gMikpKSkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBtb2RlbFRleHRMYXllciBsaXN0KG1vZGVsVGV4dFggbW9kZWxUZXh0WSkgbW9kZWxUZXh0ICJjZW50ZXJDZW50ZXIiICJSMCIgInN0aWNrIiBtb2RlbFRleHRMYXllclNpemUpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciAobWFzdGVyfj5ub2ZsYXJlUG9pbnRzMSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGdOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGdhdGVMYXllciAobWFzdGVyfj50b3BGbGFyZVBvaW50cykpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGdOZXQpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBnTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIikgYWNjZXNzRGlyKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBnYXRlTGF5ZXIgKG1hc3Rlcn4+dG9wRmxhcmVQb2ludHMxKSkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBnTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIikgYWNjZXNzRGlyKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBnYXRlTGF5ZXIgKG1hc3Rlcn4+Ym90dG9tRmxhcmVQb2ludHMpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBnTmV0KSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoImJvdHRvbSIpIGFjY2Vzc0RpcikgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIChtYXN0ZXJ+PmJvdHRvbUZsYXJlUG9pbnRzMSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoImJvdHRvbSIpIGFjY2Vzc0RpcikgY29uZCgoKG1vZChnYXRlTnVtIDIpID09IDEpIChnYXRlWG9mZnNldCA9IChnYXRlWG9mZnNldCArIGwgKyBsICsgR2F0ZVRvR2F0ZVNwYWNlICsgdG90YWxEcm5MZW5ndGgpKSkgKHQgKGdhdGVYb2Zmc2V0ID0gKGdhdGVYb2Zmc2V0ICsgbCArIGwgKyBHYXRlVG9HYXRlU3BhY2UgKyB0b3RhbFNyY0RpZmZMZW5ndGggKyB0YXBXaWR0aCkpKSkpIChkcm5fdmlhMVhvcmlnaW4gPSAwLjApIChkcm5fdmlhMVhlbmQgPSB2aWExV2lkdGgpIGNvbmQoKCgoZHJuX2xheWVyMkwgPSAobGF5ZXIyRW5jVmlhMSArIHZpYTFXaWR0aCArIGxheWVyMkVuY1ZpYTEpKSA+IChkcm5fbGF5ZXIyTGEgPSAobGF5ZXIyRW5jVmlhMiArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpKSkgKGRybl9sYXllcjJEZWx0YVZpYTEgPSBsYXllcjJFbmNWaWExKSkgKHQgKGRlbHRhID0gKChkcm5fbGF5ZXIyTGEgLSBkcm5fbGF5ZXIyTCkgLyAyLjApKSAoZHJuX2xheWVyMkRlbHRhVmlhMSA9IChsYXllcjJFbmNWaWExICsgKGZpeCgoMWUtMDYgKyAoZGVsdGEgLyBsYXllcjJncmlkKSkpICogbGF5ZXIyZ3JpZCkpKSAoZHJuX2xheWVyMkwgPSBkcm5fbGF5ZXIyTGEpKSkgKGxheWVyMlcgPSAoKDIuMCAqIGxheWVyMkVuY1ZpYTEpICsgKHJvd3NPZkNvbnRhY3RzICogdmlhMVBpdGNoKSArICgtIHZpYTFTcGFjZSkpKSAobGF5ZXIyV2EgPSAoKDIuMCAqIGxheWVyMkVuY1ZpYTIpIC0gdmlhMlNwYWNlKSkgKHJvd3NPZkNvbnRhY3RzMiA9IDApIHdoaWxlKCgobGF5ZXIyV2EgLSAxZS0wNSkgPCBsYXllcjJXKSAobGF5ZXIyV2EgPSAobGF5ZXIyV2EgKyB2aWEyUGl0Y2gpKSAocm93c09mQ29udGFjdHMyID0gKHJvd3NPZkNvbnRhY3RzMiArIDEpKSkgKGxheWVyMldhID0gKGxheWVyMldhIC0gdmlhMlBpdGNoKSkgKHJvd3NPZkNvbnRhY3RzMiA9IChyb3dzT2ZDb250YWN0czIgLSAxKSkgKGxheWVyMllEZWx0YVZpYTEgPSBsYXllcjJFbmNWaWExKSAoZXNfZHZpYTFYb3JpZ2luID0gc3JjVmlhVG9TcmNUYXBTcGFjZSkgKGVzX2R2aWExWGVuZCA9IChlc19kdmlhMVhvcmlnaW4gKyB2aWExV2lkdGgpKSAoZXNfdHZpYTFYb3JpZ2luID0gKGVzX2R2aWExWG9yaWdpbiAtIHZpYTFQaXRjaCkpIChlc190dmlhMVhlbmQgPSAoZXNfdHZpYTFYb3JpZ2luICsgdmlhMVdpZHRoKSkgY29uZCgoKChlc19sYXllcjJMID0gKCgyLjAgKiAobGF5ZXIyRW5jVmlhMSArIHZpYTFXaWR0aCkpICsgdmlhMVNwYWNlKSkgPiAoZXNfbGF5ZXIyTGEgPSAoKDIuMCAqIChsYXllcjJFbmNWaWEyICsgdmlhMldpZHRoKSkgKyB2aWEyU3BhY2UpKSkgKGVzX2xheWVyMkRlbHRhVmlhMSA9IGxheWVyMkVuY1ZpYTEpKSAodCAoZGVsdGEgPSAoKGVzX2xheWVyMkxhIC0gZXNfbGF5ZXIyTCkgLyAyLjApKSAoZXNfbGF5ZXIyRGVsdGFWaWExID0gKGxheWVyMkVuY1ZpYTEgKyAoZml4KCgxZS0wNiArIChkZWx0YSAvIGxheWVyMmdyaWQpKSkgKiBsYXllcjJncmlkKSkpIChlc19sYXllcjJMID0gZXNfbGF5ZXIyTGEpKSkgKGVzX3R2aWEyWG9yaWdpbiA9IChlc190dmlhMVhvcmlnaW4gLSBlc19sYXllcjJEZWx0YVZpYTEpKSAoZXNfdHZpYTJYZW5kID0gKGVzX3R2aWEyWG9yaWdpbiArIHZpYTJXaWR0aCkpIChlc19kdmlhMlhvcmlnaW4gPSAoZXNfdHZpYTJYZW5kICsgdmlhMlNwYWNlKSkgKGVzX2R2aWEyWGVuZCA9IChlc19kdmlhMlhvcmlnaW4gKyB2aWEyV2lkdGgpKSBjb25kKCgoKHNzX2xheWVyMkwgPSAoKDIuMCAqIChsYXllcjJFbmNWaWExICsgdmlhMVNwYWNlKSkgKyAoMy4wICogdmlhMVdpZHRoKSkpID4gKHNzX2xheWVyMkxhID0gKCgyLjAgKiAobGF5ZXIyRW5jVmlhMiArIHZpYTJTcGFjZSkpICsgKDMuMCAqIHZpYTJXaWR0aCkpKSkgKHNzX2xheWVyMkRlbHRhVmlhMSA9IGxheWVyMkVuY1ZpYTEpKSAodCAoZGVsdGEgPSAoKHNzX2xheWVyMkxhIC0gc3NfbGF5ZXIyTCkgLyAyLjApKSAoc3NfbGF5ZXIyRGVsdGFWaWExID0gKGxheWVyMkVuY1ZpYTEgKyAocm91bmQoKDFlLTA2ICsgKGRlbHRhIC8gbGF5ZXIyZ3JpZCkpKSAqIGxheWVyMmdyaWQpKSkgKHNzX2xheWVyMkwgPSBzc19sYXllcjJMYSkpKSAoY29udGFjdFhsb29wID0gKGRpZmZYb3JpZ2luICsgdGFwV2lkdGgpKSAodmlhMVlvcmlnaW4gPSB2aWFFeHREaWZmKSAobGF5ZXIyWW9yaWdpbiA9ICh2aWExWW9yaWdpbiAtIGxheWVyMllEZWx0YVZpYTEpKSAodmlhMllvcmlnaW4gPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIpKSAobGF5ZXIyWWVuZCA9IChsYXllcjJZb3JpZ2luICsgKHJvd3NPZkNvbnRhY3RzICogdmlhMVBpdGNoKSArICgtIHZpYTFTcGFjZSkgKyAoMi4wICogbGF5ZXIyRW5jVmlhMSkpKSBmb3IocmVnaW9uIDAgbSAodmlhMVlsb29wID0gdmlhMVlvcmlnaW4pIGNvbmQoKChyZWdpb24gPT0gMCkgKGR2eG8gPSAoY29udGFjdFhsb29wICsgc3JjVmlhVG9TcmNUYXBTcGFjZSkpIChkdnhlID0gKGR2eG8gKyB2aWExV2lkdGgpKSAodHZ4byA9IChkdnhvICsgKC0gdmlhMVBpdGNoKSkpICh0dnhlID0gKHR2eG8gKyB2aWExV2lkdGgpKSBmb3Iocm93IDEgcm93c09mQ29udGFjdHMgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKGR2eG86dmlhMVlsb29wKSAoZHZ4ZToodmlhMVlsb29wICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodHZ4bzp2aWExWWxvb3ApICh0dnhlOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpICh2aWExWWxvb3AgPSAodmlhMVlsb29wICsgdmlhMVBpdGNoKSkpIGlmKGVuZFRhcE1ldEluc2lkZU91dCB0aGVuIChlbmRUYXBMYXllcjJYT2Zmc2V0ID0gKC0gbWF4KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBsYXllcjJXaWR0aCkgMC4wKSkpIGVsc2UgKGVuZFRhcExheWVyMlhPZmZzZXQgPSAwLjApKSBpZigobGF5ZXIyV2lkdGggPiAwLjApIHRoZW4gaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGwyYnZsQ250cmwgPSAobGF5ZXIyV2lkdGggLyAzLjApKSAobDJidmxDbnRybCA9IChyb3VuZCgoKGwyYnZsQ250cmwgLyBsYXllcjJncmlkKSArIDAuMDAxKSkgKiBsYXllcjJncmlkKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgbDJidmxDbnRybCArIGVuZFRhcExheWVyMlhPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBlbmRUYXBMYXllcjJYT2Zmc2V0KSBsYXllcjJZb3JpZ2luKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBlbmRUYXBMYXllcjJYT2Zmc2V0KSBsYXllcjJZZW5kKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBsMmJ2bENudHJsICsgZW5kVGFwTGF5ZXIyWE9mZnNldCkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgodHZ4byArIGVuZFRhcExheWVyMlhPZmZzZXQgKyAoLSBsYXllcjJFbmNWaWExKSArIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExVmlhMlNwYWNlICsgdmlhMVNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyMkVuY1ZpYTIpKSArICgtIGwyYnZsQ250cmwpKSAobGF5ZXIyWWVuZCArIGwyYnZsQ250cmwpKSBsaXN0KCh0dnhvICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArICgtIGxheWVyMkVuY1ZpYTEpICsgbWF4KGxheWVyMldpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFWaWEyU3BhY2UgKyB2aWExU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIyRW5jVmlhMikpKSBsYXllcjJZZW5kKSBsaXN0KCh0dnhvICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArICgtIGxheWVyMkVuY1ZpYTEpICsgbWF4KGxheWVyMldpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFWaWEyU3BhY2UgKyB2aWExU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIyRW5jVmlhMikpKSBsYXllcjJZb3JpZ2luKSBsaXN0KCh0dnhvICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArICgtIGxheWVyMkVuY1ZpYTEpICsgbWF4KGxheWVyMldpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFWaWEyU3BhY2UgKyB2aWExU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIyRW5jVmlhMikpICsgKC0gbDJidmxDbnRybCkpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QoKHR2eG8gKyAoLSBsYXllcjJFbmNWaWExKSArIGVuZFRhcExheWVyMlhPZmZzZXQpIGxheWVyMllvcmlnaW4pIGxpc3QoKHR2eG8gKyBlbmRUYXBMYXllcjJYT2Zmc2V0ICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVZpYTJTcGFjZSArIHZpYTFTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjJFbmNWaWEyKSkpIGxheWVyMlllbmQpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KCgodHZ4byArICgtIGVzX2xheWVyMkRlbHRhVmlhMSkpOmxheWVyMllvcmlnaW4pICgodHZ4byArICgtIGVzX2xheWVyMkRlbHRhVmlhMSkgKyBlc19sYXllcjJMKTpsYXllcjJZZW5kKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSB1bmxlc3MoKHZpYTFWaWEyU3BhY2UgPiAwLjApICh0dnhvID0gKHR2eG8gKyAoLSBlc19sYXllcjJEZWx0YVZpYTEpICsgbGF5ZXIyRW5jVmlhMikpICh0dnhlID0gKHR2eG8gKyB2aWEyV2lkdGgpKSkgaWYoKHZpYTFWaWEyU3BhY2UgPiAwLjApIHRoZW4gKGR2eG8gPSAoZHZ4ZSArIHZpYTFWaWEyU3BhY2UpKSBlbHNlIChkdnhvID0gKHR2eGUgKyB2aWEyU3BhY2UpKSkgKGR2eGUgPSAoZHZ4byArIHZpYTJXaWR0aCkpICh2aWEyWWxvb3AgPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIpKSBmb3Iocm93IDEgcm93c09mQ29udGFjdHMyIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KChkdnhvOnZpYTJZbG9vcCkgKGR2eGU6KHZpYTJZbG9vcCArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgdW5sZXNzKCh2aWExVmlhMlNwYWNlID4gMC4wKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdCgodHZ4bzp2aWEyWWxvb3ApICh0dnhlOih2aWEyWWxvb3AgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpKSAodmlhMllsb29wID0gKHZpYTJZbG9vcCArIHZpYTJQaXRjaCkpKSBpZigobGF5ZXIzV2lkdGggPiAwLjApIHRoZW4gaWYoKGxheWVyM1dpZHRoX291dHNpZGUgPiAwLjApIHRoZW4gKHdpZHRoVG9iZURyYXduID0gbWF4KGxheWVyM1dpZHRoX291dHNpZGUgKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVNwYWNlICsgdmlhMVZpYTJTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjNFbmNWaWEyKSkpIGVsc2UgKHdpZHRoVG9iZURyYXduID0gbWF4KGxheWVyM1dpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFTcGFjZSArIHZpYTFWaWEyU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIzRW5jVmlhMikpKSkgaWYoZW5kVGFwTWV0SW5zaWRlT3V0IHRoZW4gKGVuZFRhcExheWVyM1hPZmZzZXQgPSAobGF5ZXIyV2lkdGggKyAoLSB3aWR0aFRvYmVEcmF3bikgKyBlbmRUYXBMYXllcjJYT2Zmc2V0KSkgZWxzZSAoZW5kVGFwTGF5ZXIzWE9mZnNldCA9IDAuMCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsM2J2bENudHJsID0gKHdpZHRoVG9iZURyYXduIC8gMy4wKSkgKGwzYnZsQ250cmwgPSAocm91bmQoKChsM2J2bENudHJsIC8gbGF5ZXIzZ3JpZCkgKyAwLjAwMSkpICogbGF5ZXIzZ3JpZCkpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKHR2eG8gKyAoLSBsYXllcjJFbmNWaWExKSArIGwzYnZsQ250cmwgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkgbGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBsM2J2bENudHJsICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyICsgbDNidmxDbnRybCkpIGxpc3QoKHR2eG8gKyAoLSBsYXllcjJFbmNWaWExKSArIHdpZHRoVG9iZURyYXduICsgKC0gbDNidmxDbnRybCkgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgd2lkdGhUb2JlRHJhd24gKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyB3aWR0aFRvYmVEcmF3biArIGVuZFRhcExheWVyM1hPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgd2lkdGhUb2JlRHJhd24gKyAoLSBsM2J2bENudHJsKSArIGVuZFRhcExheWVyM1hPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKHR2eG8gKyAoLSBsYXllcjJFbmNWaWExKSArIGVuZFRhcExheWVyM1hPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgd2lkdGhUb2JlRHJhd24gKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KCh0dnhvIC0gbGF5ZXIzRW5jVmlhMikgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KChkdnhlICsgbGF5ZXIzRW5jVmlhMikgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIHNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IikgYWNjZXNzRGlyKSkgKChyZWdpb24gPT0gbSkgKGNvbnRhY3RYbG9vcCA9IChjb250YWN0WGxvb3AgKyB2aWExV2lkdGggKyBkcm5WaWFHYXRlU3BhY2UgKyBleHRyYURyblNwYWNlICsgbCArIGwgKyBHYXRlVG9HYXRlU3BhY2UgKyBleHRyYVNyY1NwYWNlICsgc3JjVmlhR2F0ZVNwYWNlICsgdmlhMVdpZHRoICsgc3JjVmlhVG9TcmNUYXBTcGFjZSkpIChkdnhvID0gKGNvbnRhY3RYbG9vcCArICgtIHNyY1ZpYVRvU3JjVGFwU3BhY2UpICsgKC0gdmlhMVdpZHRoKSkpIChkdnhlID0gKGR2eG8gKyB2aWExV2lkdGgpKSAodHZ4byA9IChkdnhvICsgdmlhMVBpdGNoKSkgKHR2eGUgPSAodHZ4byArIHZpYTFXaWR0aCkpIGZvcihyb3cgMSByb3dzT2ZDb250YWN0cyAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgoZHZ4bzp2aWExWWxvb3ApIChkdnhlOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KCh0dnhvOnZpYTFZbG9vcCkgKHR2eGU6KHZpYTFZbG9vcCArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKHZpYTFZbG9vcCA9ICh2aWExWWxvb3AgKyB2aWExUGl0Y2gpKSkgaWYoZW5kVGFwTWV0SW5zaWRlT3V0IHRoZW4gKGVuZFRhcExheWVyMlhPZmZzZXQgPSBtYXgoKCgobSAqIGwpICsgKChtIC8gMikgKiB0b3RhbERybkxlbmd0aCkgKyAoKChtIC8gMikgLSAxKSAqICh0YXBXaWR0aCArIHRvdGFsU3JjRGlmZkxlbmd0aCkpKSAtICh0dnhlICsgbGF5ZXIyRW5jVmlhMSArICgtIGxheWVyMldpZHRoKSkpIDAuMCkpIGVsc2UgKGVuZFRhcExheWVyMlhPZmZzZXQgPSAwLjApKSBpZigobGF5ZXIyV2lkdGggPiAwLjApIHRoZW4gaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSBsMmJ2bENudHJsKSArIGVuZFRhcExheWVyMlhPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSBsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArIGVuZFRhcExheWVyMlhPZmZzZXQpIGxheWVyMllvcmlnaW4pIGxpc3QoKHR2eGUgKyBsYXllcjJFbmNWaWExICsgZW5kVGFwTGF5ZXIyWE9mZnNldCkgbGF5ZXIyWWVuZCkgbGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSBsMmJ2bENudHJsKSArIGVuZFRhcExheWVyMlhPZmZzZXQpIChsYXllcjJZZW5kICsgbDJidmxDbnRybCkpIGxpc3QoKHR2eGUgKyBlbmRUYXBMYXllcjJYT2Zmc2V0ICsgbGF5ZXIyRW5jVmlhMSArICgtIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExVmlhMlNwYWNlICsgdmlhMVNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyMkVuY1ZpYTIpKSkgKyBsMmJ2bENudHJsKSAobGF5ZXIyWWVuZCArIGwyYnZsQ250cmwpKSBsaXN0KCh0dnhlICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArIGxheWVyMkVuY1ZpYTEgKyAoLSBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVZpYTJTcGFjZSArIHZpYTFTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjJFbmNWaWEyKSkpKSBsYXllcjJZZW5kKSBsaXN0KCh0dnhlICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArIGxheWVyMkVuY1ZpYTEgKyAoLSBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVZpYTJTcGFjZSArIHZpYTFTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjJFbmNWaWEyKSkpKSBsYXllcjJZb3JpZ2luKSBsaXN0KCh0dnhlICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArIGxheWVyMkVuY1ZpYTEgKyAoLSBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVZpYTJTcGFjZSArIHZpYTFTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjJFbmNWaWEyKSkpICsgbDJidmxDbnRybCkgKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyBlbmRUYXBMYXllcjJYT2Zmc2V0KSBsYXllcjJZb3JpZ2luKSBsaXN0KCh0dnhlICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArIGxheWVyMkVuY1ZpYTEgKyAoLSBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVZpYTJTcGFjZSArIHZpYTFTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjJFbmNWaWEyKSkpKSBsYXllcjJZZW5kKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdCgoKGR2eG8gKyAoLSBlc19sYXllcjJEZWx0YVZpYTEpKTpsYXllcjJZb3JpZ2luKSAoKGR2eG8gKyAoLSBlc19sYXllcjJEZWx0YVZpYTEpICsgZXNfbGF5ZXIyTCk6bGF5ZXIyWWVuZCkpKSkpIGlmKCh2aWExVmlhMlNwYWNlID4gMC4wKSB0aGVuIChkdnhvID0gKGR2eG8gLSAodmlhMldpZHRoICsgdmlhMVZpYTJTcGFjZSkpKSBlbHNlIChkdnhvID0gKGR2eG8gKyAoLSBlc19sYXllcjJEZWx0YVZpYTEpICsgbGF5ZXIyRW5jVmlhMikpKSAoZHZ4ZSA9IChkdnhvICsgdmlhMldpZHRoKSkgdW5sZXNzKCh2aWExVmlhMlNwYWNlID4gMC4wKSAodHZ4byA9IChkdnhlICsgdmlhMlNwYWNlKSkgKHR2eGUgPSAodHZ4byArIHZpYTJXaWR0aCkpKSAodmlhMllsb29wID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyKSkgZm9yKHJvdyAxIHJvd3NPZkNvbnRhY3RzMiAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdCgoZHZ4bzp2aWEyWWxvb3ApIChkdnhlOih2aWEyWWxvb3AgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIHVubGVzcygodmlhMVZpYTJTcGFjZSA+IDAuMCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHR2eG86dmlhMllsb29wKSAodHZ4ZToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSkgKHZpYTJZbG9vcCA9ICh2aWEyWWxvb3AgKyB2aWEyUGl0Y2gpKSkgaWYoKGxheWVyM1dpZHRoID4gMC4wKSB0aGVuIGlmKChsYXllcjNXaWR0aF9vdXRzaWRlID4gMC4wKSB0aGVuICh3aWR0aFRvYmVEcmF3biA9IG1heChsYXllcjNXaWR0aF9vdXRzaWRlICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFTcGFjZSArIHZpYTFWaWEyU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIzRW5jVmlhMikpKSBlbHNlICh3aWR0aFRvYmVEcmF3biA9IG1heChsYXllcjNXaWR0aCAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExU3BhY2UgKyB2aWExVmlhMlNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyM0VuY1ZpYTIpKSkpIGlmKGVuZFRhcE1ldEluc2lkZU91dCB0aGVuIChlbmRUYXBMYXllcjNYT2Zmc2V0ID0gKCgtIGxheWVyMldpZHRoKSArIHdpZHRoVG9iZURyYXduICsgZW5kVGFwTGF5ZXIyWE9mZnNldCkpIGVsc2UgKGVuZFRhcExheWVyM1hPZmZzZXQgPSAwLjApKSBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAobDNidmxDbnRybCA9ICh3aWR0aFRvYmVEcmF3biAvIDMuMCkpIChsM2J2bENudHJsID0gKHJvdW5kKCgobDNidmxDbnRybCAvIGxheWVyM2dyaWQpICsgMC4wMDEpKSAqIGxheWVyM2dyaWQpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArICgtIHdpZHRoVG9iZURyYXduKSArIGwzYnZsQ250cmwgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkgbGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSB3aWR0aFRvYmVEcmF3bikgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKHR2eGUgKyBsYXllcjJFbmNWaWExICsgKC0gd2lkdGhUb2JlRHJhd24pICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSB3aWR0aFRvYmVEcmF3bikgKyBsM2J2bENudHJsICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyICsgbDNidmxDbnRybCkpIGxpc3QoKHR2eGUgKyBsYXllcjJFbmNWaWExICsgKC0gbDNidmxDbnRybCkgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSBsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArIGVuZFRhcExheWVyM1hPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSBsM2J2bENudHJsKSArIGVuZFRhcExheWVyM1hPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKHR2eGUgKyBsYXllcjJFbmNWaWExICsgKC0gd2lkdGhUb2JlRHJhd24pICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArIGVuZFRhcExheWVyM1hPZmZzZXQpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KCgoZHZ4byAtIGxheWVyM0VuY1ZpYTIpOihsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgKCh0dnhlICsgbGF5ZXIzRW5jVmlhMik6KHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIHNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJyaWdodCIpIGFjY2Vzc0RpcikpICgoMSA9PSBtb2QocmVnaW9uIDIpKSAoY29udGFjdFhsb29wID0gKGNvbnRhY3RYbG9vcCArIHNyY1ZpYVRvU3JjVGFwU3BhY2UgKyB2aWExV2lkdGggKyBzcmNWaWFHYXRlU3BhY2UgKyBleHRyYVNyY1NwYWNlICsgbCArIGwgKyBHYXRlVG9HYXRlU3BhY2UgKyBleHRyYURyblNwYWNlICsgZHJuVmlhR2F0ZVNwYWNlKSkgKGR2eG8gPSBjb250YWN0WGxvb3ApIChkdnhlID0gKGR2eG8gKyB2aWExV2lkdGgpKSBmb3Iocm93IDEgcm93c09mQ29udGFjdHMgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKGR2eG86dmlhMVlsb29wKSAoZHZ4ZToodmlhMVlsb29wICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBkTmV0KSAodmlhMVlsb29wID0gKHZpYTFZbG9vcCArIHZpYTFQaXRjaCkpKSBpZigobGF5ZXIyV2lkdGggPiAwLjApIHRoZW4gaWYoKGxheWVyMldpZHRoID4gKCgyLjAgKiB2aWExVmlhMlNwYWNlKSArICgyLjAgKiB2aWEyV2lkdGgpICsgdmlhMVdpZHRoICsgKDIuMCAqIGxheWVyMkVuY1ZpYTIpKSkgdGhlbiAobGF5ZXIyWG9yaWdpbl9kciA9IChkdnhvIC0gKChsYXllcjJXaWR0aCAtIHZpYTFXaWR0aCkgKiAwLjUpKSkgKGxheWVyMlhvcmlnaW5fZHIgPSAocm91bmQoKChsYXllcjJYb3JpZ2luX2RyIC8gbGF5ZXIyZ3JpZCkgKyAwLjAwMSkpICogbGF5ZXIyZ3JpZCkpIGlmKGxheWVyMkVkZ2VzQXQ0NSB0aGVuIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QoKGxheWVyMlhvcmlnaW5fZHIgKyBsMmJ2bENudHJsKSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmwpKSkgbGlzdChsYXllcjJYb3JpZ2luX2RyIGxheWVyMllvcmlnaW4pIGxpc3QobGF5ZXIyWG9yaWdpbl9kciBsYXllcjJZZW5kKSBsaXN0KChsYXllcjJYb3JpZ2luX2RyICsgbDJidmxDbnRybCkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgobGF5ZXIyWG9yaWdpbl9kciArIGxheWVyMldpZHRoICsgKC0gbDJidmxDbnRybCkpIChsYXllcjJZZW5kICsgbDJidmxDbnRybCkpIGxpc3QoKGxheWVyMlhvcmlnaW5fZHIgKyBsYXllcjJXaWR0aCkgbGF5ZXIyWWVuZCkgbGlzdCgobGF5ZXIyWG9yaWdpbl9kciArIGxheWVyMldpZHRoKSBsYXllcjJZb3JpZ2luKSBsaXN0KChsYXllcjJYb3JpZ2luX2RyICsgbGF5ZXIyV2lkdGggKyAoLSBsMmJ2bENudHJsKSkgKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYb3JpZ2luX2RyIGxheWVyMllvcmlnaW4pIGxpc3QoKGxheWVyMlhvcmlnaW5fZHIgKyBsYXllcjJXaWR0aCkgbGF5ZXIyWWVuZCkpKSkpIGVsc2UgaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdCgoKGR2eG8gLSAodmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpKSArIGwyYnZsQ250cmwpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSBsaXN0KChkdnhvIC0gKHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkgbGF5ZXIyWW9yaWdpbikgbGlzdCgoZHZ4byAtICh2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikpIGxheWVyMlllbmQpIGxpc3QoKChkdnhvIC0gKHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkgKyBsMmJ2bENudHJsKSAobGF5ZXIyWWVuZCArIGwyYnZsQ250cmwpKSBsaXN0KChkdnhlICsgdmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIgKyAoLSBsMmJ2bENudHJsKSkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgoZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSBsYXllcjJZZW5kKSBsaXN0KChkdnhlICsgdmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpIGxheWVyMllvcmlnaW4pIGxpc3QoKGR2eGUgKyB2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMiArICgtIGwyYnZsQ250cmwpKSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmwpKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KChkdnhvIC0gKHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkgbGF5ZXIyWW9yaWdpbikgbGlzdCgoZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSBsYXllcjJZZW5kKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QoKChkdnhvIC0gZHJuX2xheWVyMkRlbHRhVmlhMSk6bGF5ZXIyWW9yaWdpbikgKChkdnhlICsgZHJuX2xheWVyMkRlbHRhVmlhMSk6bGF5ZXIyWWVuZCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgaWYoKHZpYTFWaWEyU3BhY2UgPiAwLjApIHRoZW4gKGR2eG8gPSAoZHZ4byArICgtIHZpYTFWaWEyU3BhY2UpICsgKC0gdmlhMldpZHRoKSkpIGVsc2UgKGR2eG8gPSAoZHZ4byArICgtIGRybl9sYXllcjJEZWx0YVZpYTEpICsgbGF5ZXIyRW5jVmlhMikpKSAoZHZ4ZSA9IChkdnhvICsgdmlhMldpZHRoKSkgKHZpYTJZbG9vcCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMikpIGZvcihyb3cgMSByb3dzT2ZDb250YWN0czIgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKGR2eG86dmlhMllsb29wKSAoZHZ4ZToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBkTmV0KSB3aGVuKCh2aWExVmlhMlNwYWNlID4gMC4wKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdCgoKGR2eG8gKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyB2aWExV2lkdGggKyB2aWEyV2lkdGgpOnZpYTJZbG9vcCkgKChkdnhvICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgdmlhMVdpZHRoICsgKDIuMCAqIHZpYTJXaWR0aCkpOih2aWEyWWxvb3AgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGROZXQpKSAodmlhMllsb29wID0gKHZpYTJZbG9vcCArIHZpYTJQaXRjaCkpKSBpZigobGF5ZXIzV2lkdGggPiAwLjApIHRoZW4gKGwzYnZsQ250cmwgPSAobGF5ZXIzV2lkdGggLyAzLjApKSAobDNidmxDbnRybCA9IChyb3VuZCgoKGwzYnZsQ250cmwgLyBsYXllcjJncmlkKSArIDAuMDAxKSkgKiBsYXllcjJncmlkKSkgaWYoKGxheWVyM1dpZHRoID4gKCgyLjAgKiB2aWEyV2lkdGgpICsgdmlhMVdpZHRoICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgKDIuMCAqIGxheWVyM0VuY1ZpYTIpKSkgdGhlbiAobGF5ZXIzWG9yaWdpbl9kciA9IChjb250YWN0WGxvb3AgLSAoKGxheWVyM1dpZHRoIC0gdmlhMldpZHRoKSAqIDAuNSkpKSAobGF5ZXIzWG9yaWdpbl9kciA9IChyb3VuZCgoKGxheWVyM1hvcmlnaW5fZHIgLyBsYXllcjNncmlkKSArIDAuMDAxKSkgKiBsYXllcjNncmlkKSkgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdCgobGF5ZXIzWG9yaWdpbl9kciArIGwzYnZsQ250cmwpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSBsaXN0KGxheWVyM1hvcmlnaW5fZHIgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KGxheWVyM1hvcmlnaW5fZHIgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgobGF5ZXIzWG9yaWdpbl9kciArIGwzYnZsQ250cmwpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmwpKSBsaXN0KChsYXllcjNYb3JpZ2luX2RyICsgbGF5ZXIzV2lkdGggKyAoLSBsM2J2bENudHJsKSkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyICsgbDNidmxDbnRybCkpIGxpc3QoKGxheWVyM1hvcmlnaW5fZHIgKyBsYXllcjNXaWR0aCkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgobGF5ZXIzWG9yaWdpbl9kciArIGxheWVyM1dpZHRoKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKGxheWVyM1hvcmlnaW5fZHIgKyBsYXllcjNXaWR0aCArICgtIGwzYnZsQ250cmwpKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KGxheWVyM1hvcmlnaW5fZHIgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KChsYXllcjNYb3JpZ2luX2RyICsgbGF5ZXIzV2lkdGgpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpKSkpKSBlbHNlIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKGR2eG8gKyAoLSBsYXllcjNFbmNWaWEyKSArIGwzYnZsQ250cmwpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSBsaXN0KChkdnhvICsgKC0gbGF5ZXIzRW5jVmlhMikpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgoZHZ4byArICgtIGxheWVyM0VuY1ZpYTIpKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSBsaXN0KChkdnhvICsgKC0gbGF5ZXIzRW5jVmlhMikgKyBsM2J2bENudHJsKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgoZHZ4byArICgyLjAgKiB2aWEyV2lkdGgpICsgdmlhMVdpZHRoICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArICgtIGwzYnZsQ250cmwpKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgoZHZ4byArICgyLjAgKiB2aWEyV2lkdGgpICsgdmlhMVdpZHRoICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgoZHZ4byArICgyLjAgKiB2aWEyV2lkdGgpICsgdmlhMVdpZHRoICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KChkdnhvICsgKDIuMCAqIHZpYTJXaWR0aCkgKyB2aWExV2lkdGggKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyICsgKC0gbDNidmxDbnRybCkpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKGR2eG8gKyAoLSBsYXllcjNFbmNWaWEyKSkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KChkdnhvICsgKDIuMCAqIHZpYTJXaWR0aCkgKyB2aWExV2lkdGggKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QoKChkdnhvIC0gbGF5ZXIzRW5jVmlhMik6KGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSAoKGR2eGUgKyBsYXllcjNFbmNWaWEyKToodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBkTmV0KSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZE5ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIpIGFjY2Vzc0RpcikpICh0IChjb250YWN0WGxvb3AgPSAoY29udGFjdFhsb29wICsgdmlhMVdpZHRoICsgZHJuVmlhR2F0ZVNwYWNlICsgZXh0cmFEcm5TcGFjZSArIGwgKyBsICsgR2F0ZVRvR2F0ZVNwYWNlICsgZXh0cmFTcmNTcGFjZSArIHNyY1ZpYUdhdGVTcGFjZSArIHZpYTFXaWR0aCArIHNyY1ZpYVRvU3JjVGFwU3BhY2UgKyB0YXBXaWR0aCkpIChyZHZ4byA9IChjb250YWN0WGxvb3AgKyBzcmNWaWFUb1NyY1RhcFNwYWNlKSkgKHJkdnhlID0gKHJkdnhvICsgdmlhMVdpZHRoKSkgaWYoKHRhcFdpZHRoID4gKHZpYTFXaWR0aCArICgyLjAgKiB0YXBFbmNWaWExKSkpIHRoZW4gKHR2eG8gPSAoKChyZHZ4byAtICgwLjUgKiAodGFwV2lkdGggLSB2aWExV2lkdGgpKSkgLSB2aWExV2lkdGgpIC0gc3JjVmlhVGFwU3BhY2UpKSAodHZ4byA9IChyb3VuZCgoKHR2eG8gLyB2aWExZ3JpZCkgKyAwLjAwMSkpICogdmlhMWdyaWQpKSBlbHNlICh0dnhvID0gKHJkdnhvICsgKC0gdmlhMVBpdGNoKSkpKSAodHZ4ZSA9ICh0dnhvICsgdmlhMVdpZHRoKSkgKGxkdnhvID0gbWluKCh0dnhvICsgKC0gdmlhMVBpdGNoKSkgKGNvbnRhY3RYbG9vcCArICgtIHRhcFdpZHRoKSArICgtIHZpYTFXaWR0aCkgKyAoLSBzcmNWaWFUYXBTcGFjZSkpKSkgKGxkdnhlID0gKGxkdnhvICsgdmlhMVdpZHRoKSkgZm9yKHJvdyAxIHJvd3NPZkNvbnRhY3RzIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KChyZHZ4bzp2aWExWWxvb3ApIChyZHZ4ZToodmlhMVlsb29wICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodHZ4bzp2aWExWWxvb3ApICh0dnhlOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KChsZHZ4bzp2aWExWWxvb3ApIChsZHZ4ZToodmlhMVlsb29wICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAodmlhMVlsb29wID0gKHZpYTFZbG9vcCArIHZpYTFQaXRjaCkpKSBpZigobGF5ZXIyV2lkdGggPiAwLjApIHRoZW4gaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdCgoKGxkdnhvIC0gKHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkgKyBsMmJ2bENudHJsKSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmwpKSkgbGlzdCgobGR2eG8gLSAodmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpKSBsYXllcjJZb3JpZ2luKSBsaXN0KChsZHZ4byAtICh2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikpIGxheWVyMlllbmQpIGxpc3QoKChsZHZ4byAtICh2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikpICsgbDJidmxDbnRybCkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgocmR2eGUgKyB2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMiArICgtIGwyYnZsQ250cmwpKSAobGF5ZXIyWWVuZCArIGwyYnZsQ250cmwpKSBsaXN0KChyZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSBsYXllcjJZZW5kKSBsaXN0KChyZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSBsYXllcjJZb3JpZ2luKSBsaXN0KChyZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyICsgKC0gbDJidmxDbnRybCkpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QoKGxkdnhvIC0gKHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkgbGF5ZXIyWW9yaWdpbikgbGlzdCgocmR2eGUgKyB2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikgbGF5ZXIyWWVuZCkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QoKChsZHZ4byAtIHNzX2xheWVyMkRlbHRhVmlhMSk6bGF5ZXIyWW9yaWdpbikgKChsZHZ4byArICgtIHNzX2xheWVyMkRlbHRhVmlhMSkgKyBzc19sYXllcjJMKTpsYXllcjJZZW5kKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSBpZigodmlhMVZpYTJTcGFjZSA+IDAuMCkgdGhlbiAobGR2eG8gPSAobGR2eG8gKyAoLSB2aWExVmlhMlNwYWNlKSArICgtIHZpYTJXaWR0aCkpKSBlbHNlIChsZHZ4byA9IChsZHZ4byArICgtIHNzX2xheWVyMkRlbHRhVmlhMSkgKyBsYXllcjJFbmNWaWEyKSkpIChsZHZ4ZSA9IChsZHZ4byArIHZpYTJXaWR0aCkpICh0dnhvID0gKGxkdnhlICsgdmlhMlNwYWNlKSkgKHR2eGUgPSAodHZ4byArIHZpYTJXaWR0aCkpIGlmKCh2aWExVmlhMlNwYWNlID4gMC4wKSB0aGVuIChyZHZ4byA9IChyZHZ4ZSArIHZpYTFWaWEyU3BhY2UpKSBlbHNlIChyZHZ4byA9ICh0dnhlICsgdmlhMlNwYWNlKSkpIChyZHZ4ZSA9IChyZHZ4byArIHZpYTJXaWR0aCkpICh2aWEyWWxvb3AgPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIpKSBmb3Iocm93IDEgcm93c09mQ29udGFjdHMyIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KChsZHZ4bzp2aWEyWWxvb3ApIChsZHZ4ZToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSB1bmxlc3MoKHZpYTFWaWEyU3BhY2UgPiAwLjApIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KCh0dnhvOnZpYTJZbG9vcCkgKHR2eGU6KHZpYTJZbG9vcCArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KChyZHZ4bzp2aWEyWWxvb3ApIChyZHZ4ZToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAodmlhMllsb29wID0gKHZpYTJZbG9vcCArIHZpYTJQaXRjaCkpKSBpZigobGF5ZXIzV2lkdGggPiAwLjApIHRoZW4gaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdCgoKGxkdnhvIC0gbGF5ZXIzRW5jVmlhMikgKyBsM2J2bENudHJsKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkgbGlzdCgobGR2eG8gLSBsYXllcjNFbmNWaWEyKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKGxkdnhvIC0gbGF5ZXIzRW5jVmlhMikgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgoKGxkdnhvIC0gbGF5ZXIzRW5jVmlhMikgKyBsM2J2bENudHJsKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgocmR2eGUgKyBsYXllcjNFbmNWaWEyICsgKC0gbDNidmxDbnRybCkpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmwpKSBsaXN0KChyZHZ4ZSArIGxheWVyM0VuY1ZpYTIpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKHJkdnhlICsgbGF5ZXIzRW5jVmlhMikgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KChyZHZ4ZSArIGxheWVyM0VuY1ZpYTIgKyAoLSBsM2J2bENudHJsKSkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikgKyAoLSBsM2J2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdCgobGR2eG8gLSBsYXllcjNFbmNWaWEyKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKHJkdnhlICsgbGF5ZXIzRW5jVmlhMikgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QoKChsZHZ4byAtIGxheWVyM0VuY1ZpYTIpOihsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgKChyZHZ4ZSArIGxheWVyM0VuY1ZpYTIpOih2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBzTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIikgYWNjZXNzRGlyKSkpKSAodGFwV2lkdGhJbklSID0gbWF4KGlubmVyUmluZ1RhcFdpZHRoICh2aWExV2lkdGggKyAoMi4wICogdGFwRW5jVmlhMSkpKSkgKGlyVGFwWG9yaWdpbiA9IChkaWZmWG9yaWdpbiAtIG1pbkRpZmZUYXBSaW5nU3BhY2UgLSBleHRyYUxlZnRTcGFjZSAtIHRhcFdpZHRoSW5JUikpIGlmKChpbm5lclJpbmdNZXRhbFdpZHRoID4gMC4wKSB0aGVuIChpclZpYU9mZnNldCA9IChmaXgoKCgoKGlubmVyUmluZ01ldGFsV2lkdGggLyAyLjApIC0gKHZpYTFXaWR0aCAvIDIuMCkpIC8gdmlhMWdyaWQpICsgMC45OTkpKSAqIHZpYTFncmlkKSkgKGlyVGFwWW9yaWdpbiA9ICh2aWExWW9yaWdpbiAtIGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgLSB2aWExV2lkdGggLSBpclZpYU9mZnNldCkpIGVsc2UgKGlyVGFwWW9yaWdpbiA9ICh2aWExWW9yaWdpbiAtIGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgLSB2aWExV2lkdGggLSB0YXBFbmNWaWExKSkpIChpclRhcEwgPSAoKGRpZmZYZW5kICsgbWluRGlmZlRhcFJpbmdTcGFjZSArIGV4dHJhUmlnaHRTcGFjZSArIHRhcFdpZHRoSW5JUikgLSBpclRhcFhvcmlnaW4pKSBpZigoaW5uZXJSaW5nTWV0YWxXaWR0aCA+IDAuMCkgdGhlbiAoaXJUYXBXID0gKCh2aWExWWxvb3AgKyAoLSB2aWExU3BhY2UpICsgZHJuVmlhWXNwYWNlUmluZ1ZpYVRvcCArIHZpYTFXaWR0aCArIGlyVmlhT2Zmc2V0KSAtIGlyVGFwWW9yaWdpbikpIGVsc2UgKGlyVGFwVyA9ICgodmlhMVlsb29wICsgKC0gdmlhMVNwYWNlKSArIGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgKyB2aWExV2lkdGggKyB0YXBFbmNWaWExKSAtIGlyVGFwWW9yaWdpbikpKSBpZih0YXBFZGdlc0F0NDUgdGhlbiAoYmV2ZWxMZW5ndGggPSAoMC42ICogdGFwV2lkdGhJbklSKSkgKGJldmVsTGVuZ3RoID0gKHJvdW5kKCgoYmV2ZWxMZW5ndGggLyB0YXBHcmlkKSArIDAuMDAxKSkgKiB0YXBHcmlkKSkgKGxvd2VyTGVmdEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlckxlZnRCTCA9IGJldmVsTGVuZ3RoKSAobG93ZXJSaWdodEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlclJpZ2h0QkwgPSBiZXZlbExlbmd0aCkgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJpdHIiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlyVGFwVykgbGlzdCgibCIgImZsb2F0IiBpclRhcEwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaXJUYXBYb3JpZ2luKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIGlyVGFwWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdGFwV2lkdGhJbklSKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIHRhcEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSB3aGVuKHRhcFdlbGxJbXBsYW50IChpdHJpWG9yaWdpbiA9IChpclRhcFhvcmlnaW4gLSB0YXBXZWxsSW1wRW5jKSkgKGl0cmlZb3JpZ2luID0gKGlyVGFwWW9yaWdpbiAtIHRhcFdlbGxJbXBFbmMpKSAoaXRyaVJpbmdXaWR0aCA9ICh0YXBXaWR0aEluSVIgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChpdHJpVyA9IChpclRhcFcgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChpdHJpTCA9IChpclRhcEwgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJpdHJpIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBpdHJpVykgbGlzdCgibCIgImZsb2F0IiBpdHJpTCkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpdHJpWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpdHJpWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgdGFwV2VsbEltcGxhbnQpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpdHJpUmluZ1dpZHRoKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIG5pbCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB0YXBHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpKSAod2VsbFhvcmlnaW4gPSAoaXJUYXBYb3JpZ2luIC0gd2VsbEVuY1RhcCkpICh3ZWxsWW9yaWdpbiA9IChpclRhcFlvcmlnaW4gLSB3ZWxsRW5jVGFwKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KCh3ZWxsWG9yaWdpbjp3ZWxsWW9yaWdpbikgKCh3ZWxsWG9yaWdpbiArIGlyVGFwTCArICgyLjAgKiB3ZWxsRW5jVGFwKSk6KHdlbGxZb3JpZ2luICsgaXJUYXBXICsgKDIuMCAqIHdlbGxFbmNUYXApKSkpKSBpZigoaW5uZXJSaW5nTWV0YWxXaWR0aCA+IDAuMCkgdGhlbiAoeENvb3JkID0gKGlyVGFwWG9yaWdpbiArIG1heChpclZpYU9mZnNldCB0YXBFbmNWaWExKSkpICh5Q29vcmQgPSAoaXJUYXBZb3JpZ2luICsgbWF4KGlyVmlhT2Zmc2V0IHRhcEVuY1ZpYTEpKSkgKG1vZFcgPSAoaXJUYXBXIC0gKDIuMCAqIG1heChpclZpYU9mZnNldCB0YXBFbmNWaWExKSkpKSAobW9kTCA9IChpclRhcEwgLSAoMi4wICogbWF4KGlyVmlhT2Zmc2V0IHRhcEVuY1ZpYTEpKSkpIGVsc2UgKHhDb29yZCA9IChpclRhcFhvcmlnaW4gKyB0YXBFbmNWaWExKSkgKHlDb29yZCA9IChpclRhcFlvcmlnaW4gKyB0YXBFbmNWaWExKSkgKG1vZFcgPSAoaXJUYXBXIC0gKDIuMCAqIHRhcEVuY1ZpYTEpKSkgKG1vZEwgPSAoaXJUYXBMIC0gKDIuMCAqIHRhcEVuY1ZpYTEpKSkpIGlmKGxheWVyMkVkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9ICgyLjAgKiB2aWExU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMi4wICogdmlhMVNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgyLjAgKiB2aWExU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDIuMCAqIHZpYTFTcGFjZSkpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSB3aGVuKGZpbGxlZFJpbmdzICh2aWExRW5jID0gbWF4KGxheWVyMkVuY1ZpYTEgdGFwRW5jVmlhMSkpICh2aWExV2lkdGhJbklSID0gKHRhcFdpZHRoSW5JUiAtICgyLjAgKiB2aWExRW5jKSkpICh2aWExWG9yaWdpbiA9IChpclRhcFhvcmlnaW4gKyB2aWExRW5jKSkgKHZpYTFZb3JpZ2luID0gKGlyVGFwWW9yaWdpbiArIHZpYTFFbmMpKSkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcml2ZXRlZFJpbmdJZCAiaXYxciIgaWYoZmlsbGVkUmluZ3MgKDA6MCkgKHhDb29yZDp5Q29vcmQpKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChpclRhcFcgLSAoMi4wICogdmlhMUVuYykpIG1vZFcpKSBsaXN0KCJsIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChpclRhcEwgLSAoMi4wICogdmlhMUVuYykpIG1vZEwpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTFYb3JpZ2luIDAuMCkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMVlvcmlnaW4gMC4wKSkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTFMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTFXaWR0aEluSVIgdmlhMVdpZHRoKSkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWExV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMVNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTFncmlkKSkpIChpckwydyA9IChpclRhcFcgKyAoLTIuMCAqIHRhcEVuY1ZpYTEpICsgKDIuMCAqIGxheWVyMkVuY1ZpYTEpKSkgKGlyTDJsID0gKGlyVGFwTCArICgtMi4wICogdGFwRW5jVmlhMSkgKyAoMi4wICogbGF5ZXIyRW5jVmlhMSkpKSAoaXJMMnhEZWx0YSA9IChpclRhcFhvcmlnaW4gKyB0YXBFbmNWaWExICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSAoaXJMMnlEZWx0YSA9IChpclRhcFlvcmlnaW4gKyB0YXBFbmNWaWExICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSBpZigoaW5uZXJSaW5nTWV0YWxXaWR0aCA+IDAuMCkgdGhlbiAoaXJMMnJpbmdXID0gbWF4KCgoMi4wICogbGF5ZXIyRW5jVmlhMSkgKyB2aWExV2lkdGgpICgoMi4wICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyV2lkdGgpIGlubmVyUmluZ01ldGFsV2lkdGgpKSBlbHNlIChpckwycmluZ1cgPSBtYXgoKCgyLjAgKiBsYXllcjJFbmNWaWExKSArIHZpYTFXaWR0aCkgKCgyLjAgKiBsYXllcjJFbmNWaWEyKSArIHZpYTJXaWR0aCkpKSkgaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gaXJMMnJpbmdXKSAodXBwZXJMZWZ0QkwgPSBpckwycmluZ1cpIChsb3dlclJpZ2h0QkwgPSBpckwycmluZ1cpICh1cHBlclJpZ2h0QkwgPSBpckwycmluZ1cpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAiaWwyciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgaXJUYXBXIGlyTDJ3KSkgbGlzdCgibCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcEwgaXJMMmwpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIGlyVGFwWG9yaWdpbiBpckwyeERlbHRhKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcFlvcmlnaW4gaXJMMnlEZWx0YSkpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHRhcFdpZHRoSW5JUiBpckwycmluZ1cpKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheWVyMmdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQxIGlyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBpck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDMgaXJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQ0IGlyTmV0KSB3aGVuKChsYXllcjMgJiYgZnVsbHlTdHJhcCAmJiAoZnVsbHlTdHJhcCAhPSAiRkFMU0UiKSkgKGl2MnJFbmMgPSAoKGlyTDJyaW5nVyAtIHZpYTJXaWR0aCkgLyAyLjApKSAodGVtcFNpemUgPSAoaXYyckVuYyAvIHZpYTJncmlkKSkgKGl2MnJFbmMgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiB2aWEyZ3JpZCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSB1bmxlc3MoZmlsbGVkUmluZ3MgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcml2ZXRlZFJpbmdJZCAiaXYyciIgKChpckwyeERlbHRhICsgaXYyckVuYyk6KGlyTDJ5RGVsdGEgKyBpdjJyRW5jKSkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAoaXJMMncgLSAoMi4wICogaXYyckVuYykpKSBsaXN0KCJsIiAiZmxvYXQiIChpckwybCAtICgyLjAgKiBpdjJyRW5jKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTJMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHZpYTJXaWR0aCkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMlNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTJncmlkKSkpKSB3aGVuKGZpbGxlZFJpbmdzICh2aWEyRW5jID0gbWF4KGxheWVyMkVuY1ZpYTIgbGF5ZXIzRW5jVmlhMikpICh2aWEyV2lkdGhJbklSID0gKHRhcFdpZHRoSW5JUiAtICgyLjAgKiB2aWEyRW5jKSkpICh2aWEyWG9yaWdpbiA9IChpclRhcFhvcmlnaW4gKyB2aWEyRW5jKSkgKHZpYTJZb3JpZ2luID0gKGlyVGFwWW9yaWdpbiArIHZpYTJFbmMpKSAodmlhMkJldmVsID0gKHZpYTJXaWR0aEluSVIgKyAoMi4wICogdmlhMkVuYykpKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJpdjJyIiAoMDowKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIChpclRhcFcgLSAoMi4wICogdmlhMkVuYykpKSBsaXN0KCJsIiAiZmxvYXQiIChpclRhcEwgLSAoMi4wICogdmlhMkVuYykpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIHZpYTJYb3JpZ2luKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIHZpYTJZb3JpZ2luKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMkxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdmlhMldpZHRoSW5JUikgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMlNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIHZpYTJCZXZlbCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB2aWEyQmV2ZWwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdmlhMkJldmVsKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHZpYTJCZXZlbCkgbGlzdCgiYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCIgImJvb2xlYW4iICJGQUxTRSIpIGxpc3QoImdyaWQiICJmbG9hdCIgdmlhMmdyaWQpKSkpIGlmKChpbm5lclJpbmdNZXRhbFdpZHRoID4gMC4wKSB0aGVuIChpckwzdyA9IGlyTDJ3KSAoaXJMM2wgPSBpckwybCkgKGlyTDN4RGVsdGEgPSBpckwyeERlbHRhKSAoaXJMM3lEZWx0YSA9IGlyTDJ5RGVsdGEpIChpckwzcmluZ1cgPSBtYXgoKCgyLjAgKiBpckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSBpbm5lclJpbmdNZXRhbFdpZHRoKSkgZWxzZSAoaXJMM3cgPSAoaXJMMncgKyAoLTIuMCAqIGl2MnJFbmMpICsgKDIuMCAqIGlyTGF5ZXIzRW5jVmlhMikpKSAoaXJMM2wgPSAoaXJMMmwgKyAoLTIuMCAqIGl2MnJFbmMpICsgKDIuMCAqIGlyTGF5ZXIzRW5jVmlhMikpKSAoaXJMM3hEZWx0YSA9IChpckwyeERlbHRhICsgaXYyckVuYyArICgtIGlyTGF5ZXIzRW5jVmlhMikpKSAoaXJMM3lEZWx0YSA9IChpckwyeURlbHRhICsgaXYyckVuYyArICgtIGlyTGF5ZXIzRW5jVmlhMikpKSAoaXJMM3JpbmdXID0gKCgyLjAgKiBpckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSkpICh0b3BMYXllciA9IGxheWVyMykgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gaXJMM3JpbmdXKSAodXBwZXJMZWZ0QkwgPSBpckwzcmluZ1cpIChsb3dlclJpZ2h0QkwgPSBpckwzcmluZ1cpICh1cHBlclJpZ2h0QkwgPSBpckwzcmluZ1cpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAiaWwzciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgaXJUYXBXIGlyTDN3KSkgbGlzdCgibCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcEwgaXJMM2wpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIGlyVGFwWG9yaWdpbiBpckwzeERlbHRhKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcFlvcmlnaW4gaXJMM3lEZWx0YSkpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHRhcFdpZHRoSW5JUiBpckwzcmluZ1cpKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB0YXBXaWR0aEluSVIgbG93ZXJMZWZ0QkwpKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHRhcFdpZHRoSW5JUiB1cHBlckxlZnRCTCkpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdGFwV2lkdGhJbklSIGxvd2VyUmlnaHRCTCkpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdGFwV2lkdGhJbklSIHVwcGVyUmlnaHRCTCkpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgbGF5ZXIzZ3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgdCkpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQxIGlyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBpck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDMgaXJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQ0IGlyTmV0KSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGlyTmV0IGRiaWQxKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGlyTmV0IGRiaWQyKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGlyTmV0IGRiaWQzKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGlyTmV0IGRiaWQ0KSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHRhcFdpZHRoSW5PUiA9IG1heChvdXRlclJpbmdUYXBXaWR0aCAoKDIuMCAqIHRhcEVuY1ZpYTEpICsgdmlhMVdpZHRoKSkpIChvdXRlclRhcERlbHRhID0gKHdlbGxUYXBTcGFjZSArIHRhcFdpZHRoSW5PUikpIChvclRhcFhvcmlnaW4gPSAod2VsbFhvcmlnaW4gLSBvdXRlclRhcERlbHRhKSkgKG9yVGFwWW9yaWdpbiA9ICh3ZWxsWW9yaWdpbiAtIG91dGVyVGFwRGVsdGEpKSAob3JUYXBXID0gKGlyVGFwVyArICgyLjAgKiAob3V0ZXJUYXBEZWx0YSArIHdlbGxFbmNUYXApKSkpIChvclRhcEwgPSAoaXJUYXBMICsgKDIuMCAqIChvdXRlclRhcERlbHRhICsgd2VsbEVuY1RhcCkpKSkgd2hlbigobGF5ZXIzICYmIGZ1bGx5U3RyYXAgJiYgKGZ1bGx5U3RyYXAgIT0gIkZBTFNFIikpIChvckxheWVyM1hvcmlnaW5BID0gKGlyTDN4RGVsdGEgLSBvcmlyTGF5ZXIzU3BhY2UgLSBvckxheWVyM1dpZHRoKSkgKG9yTGF5ZXIzWG9yaWdpbkIgPSAob3JUYXBYb3JpZ2luICsgKHRhcFdpZHRoSW5PUiAvIDIuMCkgKyAob3JMYXllcjNXaWR0aCAvIC0yLjApKSkgd2hlbigob3JMYXllcjNYb3JpZ2luQSA8IG9yTGF5ZXIzWG9yaWdpbkIpIChleHRyYVNwYWNlID0gKG9yTGF5ZXIzWG9yaWdpbkIgLSBvckxheWVyM1hvcmlnaW5BKSkgKHRlbXBTaXplID0gKGV4dHJhU3BhY2UgLyB0YXBHcmlkKSkgKGV4dHJhU3BhY2UgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiB0YXBHcmlkKSkgKG9yVGFwWG9yaWdpbiA9IChvclRhcFhvcmlnaW4gLSBleHRyYVNwYWNlKSkgKG9yVGFwWW9yaWdpbiA9IChvclRhcFlvcmlnaW4gLSBleHRyYVNwYWNlKSkgKG9yVGFwVyA9IChvclRhcFcgKyAoMi4wICogZXh0cmFTcGFjZSkpKSAob3JUYXBMID0gKG9yVGFwTCArICgyLjAgKiBleHRyYVNwYWNlKSkpKSkgaWYodGFwRWRnZXNBdDQ1IHRoZW4gKGJldmVsTGVuZ3RoID0gKDAuNiAqIHRhcFdpZHRoSW5PUikpIChiZXZlbExlbmd0aCA9IChyb3VuZCgoKGJldmVsTGVuZ3RoIC8gdGFwR3JpZCkgKyAwLjAwMSkpICogdGFwR3JpZCkpIChsb3dlckxlZnRCTCA9IGJldmVsTGVuZ3RoKSAodXBwZXJMZWZ0QkwgPSBiZXZlbExlbmd0aCkgKGxvd2VyUmlnaHRCTCA9IGJldmVsTGVuZ3RoKSAodXBwZXJSaWdodEJMID0gYmV2ZWxMZW5ndGgpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib3RyIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBvclRhcFcpIGxpc3QoImwiICJmbG9hdCIgb3JUYXBMKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIG9yVGFwWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiBvclRhcFlvcmlnaW4pIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHRhcFdpZHRoSW5PUikgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB0YXBHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdGFwTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBvck5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdGFwTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBvck5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdGFwTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBvck5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdGFwTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBvck5ldCkgd2hlbih0YXBTdWJJbXBsYW50IChvdHJpWG9yaWdpbiA9IChvclRhcFhvcmlnaW4gLSB0YXBTdWJJbXBFbmMpKSAob3RyaVlvcmlnaW4gPSAob3JUYXBZb3JpZ2luIC0gdGFwU3ViSW1wRW5jKSkgKG90cmlSaW5nV2lkdGggPSAodGFwV2lkdGhJbk9SICsgdGFwU3ViSW1wRW5jICsgdGFwU3ViSW1wRW5jKSkgKG90cmlXID0gKG9yVGFwVyArIHRhcFN1YkltcEVuYyArIHRhcFN1YkltcEVuYykpIChvdHJpTCA9IChvclRhcEwgKyB0YXBTdWJJbXBFbmMgKyB0YXBTdWJJbXBFbmMpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib3RyaSIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgb3RyaVcpIGxpc3QoImwiICJmbG9hdCIgb3RyaUwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgb3RyaVhvcmlnaW4pIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgb3RyaVlvcmlnaW4pIGxpc3QoInJpbmdMYXllciIgImxpc3QiIHRhcFN1YkltcGxhbnQpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBvdHJpUmluZ1dpZHRoKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIG5pbCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB0YXBHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpKSAob3JWaWFPZmZzZXQgPSAoZml4KCgoKCh0YXBXaWR0aEluT1IgLyAyLjApIC0gKHZpYTFXaWR0aCAvIDIuMCkpIC8gdmlhMWdyaWQpICsgMC45OTkpKSAqIHZpYTFncmlkKSkgKHhDb29yZCA9IChvclRhcFhvcmlnaW4gKyBtYXgob3JWaWFPZmZzZXQgdGFwRW5jVmlhMSkpKSAoeUNvb3JkID0gKG9yVGFwWW9yaWdpbiArIG1heChvclZpYU9mZnNldCB0YXBFbmNWaWExKSkpIChsb3dlckxlZnRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpIHdoZW4oZmlsbGVkUmluZ3MgKG9yVGFwRW5jVmlhMSA9ICh0YXBXaWR0aEluT1IgLSBvckxheWVyM1dpZHRoKSkgKHZpYTFXaWR0aEluT1IgPSAob3JMYXllcjNXaWR0aCAtICgyLjAgKiB2aWExRW5jKSkpKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJvdjFyIiBpZihmaWxsZWRSaW5ncyAob3JUYXBYb3JpZ2luOm9yVGFwWW9yaWdpbikgKHhDb29yZDp5Q29vcmQpKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcFcgLSAoMi4wICogKG9yVGFwRW5jVmlhMSArIHZpYTFFbmMpKSkgKG9yVGFwVyAtICgyLjAgKiBtYXgob3JWaWFPZmZzZXQgdGFwRW5jVmlhMSkpKSkpIGxpc3QoImwiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwTCAtICgyLjAgKiAob3JUYXBFbmNWaWExICsgdmlhMUVuYykpKSAob3JUYXBMIC0gKDIuMCAqIG1heChvclZpYU9mZnNldCB0YXBFbmNWaWExKSkpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBFbmNWaWExICsgdmlhMUVuYykgMC4wKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBFbmNWaWExICsgdmlhMUVuYykgMC4wKSkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTFMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTFXaWR0aEluT1IgdmlhMVdpZHRoKSkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWExV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMVNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIDAuMCBsb3dlckxlZnRCTCkpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgMC4wIHVwcGVyTGVmdEJMKSkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAwLjAgbG93ZXJSaWdodEJMKSkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAwLjAgdXBwZXJSaWdodEJMKSkgbGlzdCgiYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCIgImJvb2xlYW4iICJGQUxTRSIpIGxpc3QoImdyaWQiICJmbG9hdCIgdmlhMWdyaWQpKSkgdW5sZXNzKChmaWxsZWRSaW5ncyB8fCBsYXllcjJFZGdlc0F0NDUgfHwgdGFwRWRnZXNBdDQ1KSAoZXh0cmFWaWExUmlnaHRPcmlnaW4gPSAoeENvb3JkICsgKG9yVGFwTCAtICgyLjAgKiBtYXgob3JWaWFPZmZzZXQgdGFwRW5jVmlhMSkpKSArICgtIHZpYTFXaWR0aCkpKSAoZXh0cmFWaWExVG9wT3JpZ2luID0gKHlDb29yZCArIChvclRhcFcgLSAoMi4wICogbWF4KG9yVmlhT2Zmc2V0IHRhcEVuY1ZpYTEpKSkgKyAoLSB2aWExV2lkdGgpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QoeENvb3JkIHlDb29yZCkgbGlzdCgoeENvb3JkICsgdmlhMVdpZHRoKSAoeUNvb3JkICsgdmlhMVdpZHRoKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdChleHRyYVZpYTFSaWdodE9yaWdpbiB5Q29vcmQpIGxpc3QoKGV4dHJhVmlhMVJpZ2h0T3JpZ2luICsgdmlhMVdpZHRoKSAoeUNvb3JkICsgdmlhMVdpZHRoKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdCh4Q29vcmQgZXh0cmFWaWExVG9wT3JpZ2luKSBsaXN0KCh4Q29vcmQgKyB2aWExV2lkdGgpIChleHRyYVZpYTFUb3BPcmlnaW4gKyB2aWExV2lkdGgpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdChsaXN0KGV4dHJhVmlhMVJpZ2h0T3JpZ2luIGV4dHJhVmlhMVRvcE9yaWdpbikgbGlzdCgoZXh0cmFWaWExUmlnaHRPcmlnaW4gKyB2aWExV2lkdGgpIChleHRyYVZpYTFUb3BPcmlnaW4gKyB2aWExV2lkdGgpKSkpKSBpZihsYXllcjMgdGhlbiAob3JMYXllcjNFbmNWaWEyID0gKChvckxheWVyM1dpZHRoIC0gdmlhMldpZHRoKSAvIDIuMCkpICh0ZW1wU2l6ZSA9IChvckxheWVyM0VuY1ZpYTIgLyBsYXllcjNncmlkKSkgKG9yTGF5ZXIzRW5jVmlhMiA9IChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIGxheWVyM2dyaWQpKSAob3V0ZXJSaW5nTWV0YWxXaWR0aCA9ICgoMi4wICogb3JMYXllcjNFbmNWaWEyKSArIHZpYTJXaWR0aCkpIChvckwydyA9IChvclRhcFcgKyAoLSB0YXBXaWR0aEluT1IpICsgb3V0ZXJSaW5nTWV0YWxXaWR0aCkpIChvckwybCA9IChvclRhcEwgKyAoLSB0YXBXaWR0aEluT1IpICsgb3V0ZXJSaW5nTWV0YWxXaWR0aCkpIChvckwyeERlbHRhID0gKG9yVGFwWG9yaWdpbiArICgodGFwV2lkdGhJbk9SICsgKC0gb3V0ZXJSaW5nTWV0YWxXaWR0aCkpIC8gMi4wKSkpIChvckwyeERlbHRhID0gKGZpeCgoKG9yTDJ4RGVsdGEgLyBsYXllcjJncmlkKSArIDAuOTk5KSkgKiBsYXllcjJncmlkKSkgKG9yTDJ5RGVsdGEgPSAob3JUYXBZb3JpZ2luICsgKCh0YXBXaWR0aEluT1IgKyAoLSBvdXRlclJpbmdNZXRhbFdpZHRoKSkgLyAyLjApKSkgKG9yTDJ5RGVsdGEgPSAoZml4KCgob3JMMnlEZWx0YSAvIGxheWVyMmdyaWQpICsgMC45OTkpKSAqIGxheWVyMmdyaWQpKSAob3JMMnJpbmdXID0gbWF4KCgoMi4wICogbGF5ZXIyRW5jVmlhMSkgKyB2aWExV2lkdGgpICgoMi4wICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyV2lkdGgpIG91dGVyUmluZ01ldGFsV2lkdGgpKSBlbHNlIChvckwydyA9IChvclRhcFcgKyAoLTIuMCAqIG1heChvclZpYU9mZnNldCB0YXBFbmNWaWExKSkgKyAoMi4wICogbGF5ZXIyRW5jVmlhMSkpKSAob3JMMmwgPSAob3JUYXBMICsgKC0yLjAgKiBtYXgob3JWaWFPZmZzZXQgdGFwRW5jVmlhMSkpICsgKDIuMCAqIGxheWVyMkVuY1ZpYTEpKSkgKG9yTDJ4RGVsdGEgPSAoeENvb3JkICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSAob3JMMnlEZWx0YSA9ICh5Q29vcmQgKyAoLSBsYXllcjJFbmNWaWExKSkpIChvckwycmluZ1cgPSBtYXgoKCgyLjAgKiBsYXllcjJFbmNWaWExKSArIHZpYTFXaWR0aCkgKCgyLjAgKiBsYXllcjJFbmNWaWEyKSArIHZpYTJXaWR0aCkpKSkgaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gb3JMMnJpbmdXKSAodXBwZXJMZWZ0QkwgPSBvckwycmluZ1cpIChsb3dlclJpZ2h0QkwgPSBvckwycmluZ1cpICh1cHBlclJpZ2h0QkwgPSBvckwycmluZ1cpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib2wyciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwVyAtICgyLjAgKiBvclRhcEVuY1ZpYTEpKSBvckwydykpIGxpc3QoImwiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwTCAtICgyLjAgKiBvclRhcEVuY1ZpYTEpKSBvckwybCkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwWG9yaWdpbiArIG9yVGFwRW5jVmlhMSkgb3JMMnhEZWx0YSkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwWW9yaWdpbiArIG9yVGFwRW5jVmlhMSkgb3JMMnlEZWx0YSkpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIG9yTGF5ZXIzV2lkdGggb3JMMnJpbmdXKSkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgMC4wIGxvd2VyTGVmdEJMKSkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAwLjAgdXBwZXJMZWZ0QkwpKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIDAuMCBsb3dlclJpZ2h0QkwpKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIDAuMCB1cHBlclJpZ2h0QkwpKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheWVyMmdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQxIG9yTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBvck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDMgb3JOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQ0IG9yTmV0KSB3aGVuKChsYXllcjMgJiYgZnVsbHlTdHJhcCAmJiAoZnVsbHlTdHJhcCAhPSAiRkFMU0UiKSkgKG92MnJFbmMgPSAoKG9yTDJyaW5nVyAtIHZpYTJXaWR0aCkgLyAyLjApKSAodGVtcFNpemUgPSAob3YyckVuYyAvIHZpYTJncmlkKSkgKG92MnJFbmMgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiB2aWEyZ3JpZCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpIGVsc2UgKGxvd2VyTGVmdEJMID0gdmlhMlNwYWNlKSAodXBwZXJMZWZ0QkwgPSB2aWEyU3BhY2UpIChsb3dlclJpZ2h0QkwgPSB2aWEyU3BhY2UpICh1cHBlclJpZ2h0QkwgPSB2aWEyU3BhY2UpKSB3aGVuKGZpbGxlZFJpbmdzICh2aWEyV2lkdGhJbk9SID0gKG9yTGF5ZXIzV2lkdGggLSAoMi4wICogdmlhMkVuYykpKSkgd2hlbihmaWxsZWRSaW5ncyAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJvdjJyIiAob3JUYXBYb3JpZ2luOm9yVGFwWW9yaWdpbikgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAob3JUYXBXIC0gKDIuMCAqICh2aWEyRW5jICsgb3JUYXBFbmNWaWExKSkpKSBsaXN0KCJsIiAiZmxvYXQiIChvclRhcEwgLSAoMi4wICogKHZpYTJFbmMgKyBvclRhcEVuY1ZpYTEpKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgKG9yVGFwRW5jVmlhMSArIHZpYTJFbmMpKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIChvclRhcEVuY1ZpYTEgKyB2aWEyRW5jKSkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTJMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHZpYTJXaWR0aEluT1IpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMldpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTJTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiAodmlhMkVuYyArICgtMC41ICsgb3JMYXllcjNXaWR0aCkpKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiICh2aWEyRW5jICsgKC0wLjUgKyBvckxheWVyM1dpZHRoKSkpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgKHZpYTJFbmMgKyAoLTAuNSArIG9yTGF5ZXIzV2lkdGgpKSkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiAodmlhMkVuYyArICgtMC41ICsgb3JMYXllcjNXaWR0aCkpKSBsaXN0KCJhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB2aWEyZ3JpZCkpKSkgdW5sZXNzKGZpbGxlZFJpbmdzIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIm92MnIiICgob3JMMnhEZWx0YSArIG92MnJFbmMpOihvckwyeURlbHRhICsgb3YyckVuYykpICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgKG9yTDJ3IC0gKDIuMCAqIG92MnJFbmMpKSkgbGlzdCgibCIgImZsb2F0IiAob3JMMmwgLSAoMi4wICogb3YyckVuYykpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgieU9mZnNldCIgImZsb2F0IiAwLjApIGxpc3QoInJpdmV0TGF5ZXIiICJsaXN0IiB2aWEyTGF5ZXIpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMldpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTJTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB2aWEyZ3JpZCkpKSkgKG9yTDN3ID0gKG9yTDJ3ICsgKC0yLjAgKiBvdjJyRW5jKSArICgyLjAgKiBvckxheWVyM0VuY1ZpYTIpKSkgKG9yTDNsID0gKG9yTDJsICsgKC0yLjAgKiBvdjJyRW5jKSArICgyLjAgKiBvckxheWVyM0VuY1ZpYTIpKSkgKG9yTDN4RGVsdGEgPSAob3JMMnhEZWx0YSArIG92MnJFbmMgKyAoLSBvckxheWVyM0VuY1ZpYTIpKSkgKG9yTDN5RGVsdGEgPSAob3JMMnlEZWx0YSArIG92MnJFbmMgKyAoLSBvckxheWVyM0VuY1ZpYTIpKSkgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gKCgyLjAgKiBvckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSkgKHVwcGVyTGVmdEJMID0gKCgyLjAgKiBvckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSkgKGxvd2VyUmlnaHRCTCA9ICgoMi4wICogb3JMYXllcjNFbmNWaWEyKSArIHZpYTJXaWR0aCkpICh1cHBlclJpZ2h0QkwgPSAoKDIuMCAqIG9yTGF5ZXIzRW5jVmlhMikgKyB2aWEyV2lkdGgpKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgIm9sM3IiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcFcgLSAoMi4wICogb3JUYXBFbmNWaWExKSkgb3JMM3cpKSBsaXN0KCJsIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcEwgLSAoMi4wICogb3JUYXBFbmNWaWExKSkgb3JMM2wpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcFhvcmlnaW4gKyBvclRhcEVuY1ZpYTEpIG9yTDN4RGVsdGEpKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcFlvcmlnaW4gKyBvclRhcEVuY1ZpYTEpIG9yTDN5RGVsdGEpKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBvckxheWVyM1dpZHRoICgoMi4wICogb3JMYXllcjNFbmNWaWEyKSArIHZpYTJXaWR0aCkpKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAoLTAuNSArIG9yTGF5ZXIzV2lkdGgpIGxvd2VyTGVmdEJMKSkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAoLTAuNSArIG9yTGF5ZXIzV2lkdGgpIHVwcGVyTGVmdEJMKSkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAoLTAuNSArIG9yTGF5ZXIzV2lkdGgpIGxvd2VyUmlnaHRCTCkpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKC0wLjUgKyBvckxheWVyM1dpZHRoKSB1cHBlclJpZ2h0QkwpKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheWVyM2dyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iIHQpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQxID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJpZDIgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYmlkMyA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiaWQ0ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkMSBvck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDIgb3JOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQzIG9yTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkNCBvck5ldCkpIChwaW4gPSAoZGJDcmVhdGVQaW4gb3JOZXQgZGJpZDEpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluID0gKGRiQ3JlYXRlUGluIG9yTmV0IGRiaWQyKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbiA9IChkYkNyZWF0ZVBpbiBvck5ldCBkYmlkMykpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW4gPSAoZGJDcmVhdGVQaW4gb3JOZXQgZGJpZDQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSkAKGRpZmZMYXllciBnYXRlTGF5ZXIgcmdhdGVMYXllciB3ZWxsTGF5ZXIgdGFwTGF5ZXIgdmlhMUxheWVyIGxheWVyMiB2aWEyTGF5ZXIgbGF5ZXIzIGlkTGF5ZXIgZGlmZkltcGxhbnQgZGlmZkltcEVuYyBkaWZmQ29yZUltcGxhbnQgZGlmZkNvcmVJbXBFbmMgdGFwV2VsbEltcGxhbnQgdGFwV2VsbEltcEVuYyB0YXBTdWJJbXBsYW50IHRhcFN1YkltcEVuYyB0YXBXaWR0aCBzcmNWaWFHYXRlU3BhY2Ugc3JjVmlhVGFwU3BhY2UgZHJuVmlhR2F0ZVNwYWNlIHZpYUV4dERpZmYgbWluRGlmZlRhcFJpbmdTcGFjZSBHYXRlVG9HYXRlU3BhY2UgZmxhcmVZYW1vdW50X291dCBmbGFyZVlhbW91bnRfaW4gZmxhcmVZZXh0ZW5zaW9uIHZpYTFXaWR0aCB2aWExU3BhY2UgdGFwRW5jVmlhMSB3ZWxsRW5jVGFwIGlubmVyUmluZ1RhcFdpZHRoIG91dGVyUmluZ1RhcFdpZHRoIHdlbGxUYXBTcGFjZSBsYXllcjJFbmNWaWExIHZpYTJXaWR0aCB2aWEyU3BhY2UgdmlhMVZpYTJTcGFjZSBsYXllcjJFbmNWaWEyIGxheWVyMldpZHRoIGxheWVyM0VuY1ZpYTIgbGF5ZXIzV2lkdGggbGF5ZXIzV2lkdGhfb3V0c2lkZSBpbm5lclJpbmdNZXRhbFdpZHRoIGlyTGF5ZXIzRW5jVmlhMiBvckxheWVyM1dpZHRoIG1pblcgbWF4VyBtaW5Ub3RhbFcgZ2VuZXJpY1JpbmdOYW1lIHJpdmV0ZWRSaW5nTmFtZSBmbGFyZWRHYXRlTmFtZSBkaWZmR3JpZCB0YXBHcmlkIHdlbGxHcmlkIHBvbHlHcmlkIHZpYTFncmlkIGxheWVyMmdyaWQgdmlhMmdyaWQgbGF5ZXIzZ3JpZCB0YXBFZGdlc0F0NDUgbGF5ZXIyRWRnZXNBdDQ1IGxheWVyM0VkZ2VzQXQ0NSBlbmRUYXBNZXRJbnNpZGVPdXQgbW9kZWxUZXh0TGF5ZXIgbW9kZWxUZXh0TGF5ZXJTaXplIG1vZGVsVGV4dCBtb2RlbFdtYXggbW9kZWxXbWluIG1vZGVsTG1heCBtb2RlbExtaW4gZmlsbGVkUmluZ3MgdyBsIG0gZXh0cmFMZWZ0U3BhY2UgZXh0cmFSaWdodFNwYWNlIHNocmlua1BlcmNlbnQgZXh0cmFTcmNTcGFjZSBleHRyYURyblNwYWNlIGZ1bGx5U3RyYXAgZHJuVmlhWXNwYWNlUmluZ1ZpYVRvcCBkcm5WaWFZc3BhY2VSaW5nVmlhQm90IG9yaXJMYXllcjNTcGFjZSBnTmV0IHNOZXQgZE5ldCBpck5ldCBvck5ldCBzY2FsZU11bHQgdmlhMVBvbHlHcmlkIHNpemVBbmRHcmlkIHRoZVNpemUgdGhlR3JpZCB0ZW1wU2l6ZSBrbHVkZ2UgdG1wT3JMYXllcldpZHRoIHRtcE9yTGF5ZXJHcmlkIHRtcFZpYVdpZHRoIHRtcFZpYUdyaWQgdmlhMVBpdGNoIHZpYTJQaXRjaCB0YXJnZXRSb3dzIHJvd3NPZkNvbnRhY3RzIGZsYXJlZEdhdGVJZCByaW5nSWQgcml2ZXRlZFJpbmdJZCBzcmNWaWFUb1NyY1RhcFNwYWNlIGRpZmZYb3JpZ2luIGRpZmZZb3JpZ2luIHRvdGFsRHJuTGVuZ3RoIGhhbGZTcmNEaWZmTGVuZ3RoIHRvdGFsU3JjRGlmZkxlbmd0aCBoYWxmTCBkaWZmWWVuZCBkaWZmSW1wWWVuZCBkaWZmSW1wWW9yaWdpbiBkYmlkIGRpZmZYbG9vcCBzZWN0aW9uIHNyY0RpZmZYZW5kIGRybkRpZmZYZW5kIGRpZmZYZW5kIGdhdGVYb2Zmc2V0IGdhdGVOdW0gaW5zdCBtYXN0ZXIgbW9kZWxUZXh0WCBtb2RlbFRleHRZIHBpbmlkIGRybl92aWExWG9yaWdpbiBkcm5fdmlhMVhlbmQgZHJuX2xheWVyMkwgZHJuX2xheWVyMkxhIGRybl9sYXllcjJEZWx0YVZpYTEgZGVsdGEgbGF5ZXIyVyBsYXllcjJXYSByb3dzT2ZDb250YWN0czIgbGF5ZXIyWURlbHRhVmlhMSBlc19kdmlhMVhvcmlnaW4gZXNfZHZpYTFYZW5kIGVzX3R2aWExWG9yaWdpbiBlc190dmlhMVhlbmQgZXNfbGF5ZXIyTCBlc19sYXllcjJMYSBlc19sYXllcjJEZWx0YVZpYTEgZXNfdHZpYTJYb3JpZ2luIGVzX3R2aWEyWGVuZCBlc19kdmlhMlhvcmlnaW4gZXNfZHZpYTJYZW5kIHNzX2xheWVyMkwgc3NfbGF5ZXIyTGEgc3NfbGF5ZXIyRGVsdGFWaWExIGNvbnRhY3RYbG9vcCB2aWExWW9yaWdpbiBsYXllcjJZb3JpZ2luIHZpYTJZb3JpZ2luIGxheWVyMlllbmQgcmVnaW9uIHZpYTFZbG9vcCBkdnhvIGR2eGUgdHZ4byB0dnhlIHJvdyBlbmRUYXBMYXllcjJYT2Zmc2V0IGwyYnZsQ250cmwgdmlhMllsb29wIHdpZHRoVG9iZURyYXduIGVuZFRhcExheWVyM1hPZmZzZXQgbDNidmxDbnRybCBsYXllcjJYb3JpZ2luX2RyIGxheWVyM1hvcmlnaW5fZHIgcmR2eG8gcmR2eGUgbGR2eG8gbGR2eGUgdGFwV2lkdGhJbklSIGlyVGFwWG9yaWdpbiBpclZpYU9mZnNldCBpclRhcFlvcmlnaW4gaXJUYXBMIGlyVGFwVyBiZXZlbExlbmd0aCBsb3dlckxlZnRCTCB1cHBlckxlZnRCTCBsb3dlclJpZ2h0QkwgdXBwZXJSaWdodEJMIHRoZU1hc3RlciBpdHJpWG9yaWdpbiBpdHJpWW9yaWdpbiBpdHJpUmluZ1dpZHRoIGl0cmlXIGl0cmlMIHdlbGxYb3JpZ2luIHdlbGxZb3JpZ2luIHhDb29yZCB5Q29vcmQgbW9kVyBtb2RMIHZpYTFFbmMgdmlhMVdpZHRoSW5JUiB2aWExWG9yaWdpbiBpckwydyBpckwybCBpckwyeERlbHRhIGlyTDJ5RGVsdGEgaXJMMnJpbmdXIGRiaWQxIGRiaWQyIGRiaWQzIGRiaWQ0IGl2MnJFbmMgdmlhMkVuYyB2aWEyV2lkdGhJbklSIHZpYTJYb3JpZ2luIHZpYTJCZXZlbCBpckwzdyBpckwzbCBpckwzeERlbHRhIGlyTDN5RGVsdGEgaXJMM3JpbmdXIHRvcExheWVyIHRhcFdpZHRoSW5PUiBvdXRlclRhcERlbHRhIG9yVGFwWG9yaWdpbiBvclRhcFlvcmlnaW4gb3JUYXBXIG9yVGFwTCBvckxheWVyM1hvcmlnaW5BIG9yTGF5ZXIzWG9yaWdpbkIgZXh0cmFTcGFjZSBvdHJpWG9yaWdpbiBvdHJpWW9yaWdpbiBvdHJpUmluZ1dpZHRoIG90cmlXIG90cmlMIG9yVmlhT2Zmc2V0IG9yVGFwRW5jVmlhMSB2aWExV2lkdGhJbk9SIGV4dHJhVmlhMVJpZ2h0T3JpZ2luIGV4dHJhVmlhMVRvcE9yaWdpbiBvckxheWVyM0VuY1ZpYTIgb3V0ZXJSaW5nTWV0YWxXaWR0aCBvckwydyBvckwybCBvckwyeERlbHRhIG9yTDJ5RGVsdGEgb3JMMnJpbmdXIG92MnJFbmMgdmlhMldpZHRoSW5PUiBvckwzdyBvckwzbCBvckwzeERlbHRhIG9yTDN5RGVsdGEgcGluKQAoKHcgMC4wKSAobCAwLjApIChtIDApIChleHRyYUxlZnRTcGFjZSAwLjApIChleHRyYVJpZ2h0U3BhY2UgMC4wKSAoc2hyaW5rUGVyY2VudCAwLjApIChleHRyYVNyY1NwYWNlIDAuMCkgKGV4dHJhRHJuU3BhY2UgMC4wKSAoZnVsbHlTdHJhcCAiRkFMU0UiKSAoZHJuVmlhWXNwYWNlUmluZ1ZpYVRvcCAwLjApIChkcm5WaWFZc3BhY2VSaW5nVmlhQm90IDAuMCkgKG9yaXJMYXllcjNTcGFjZSAwLjApKQAoKGRpZmZMYXllciAieTAiKSAoZ2F0ZUxheWVyICJ5MSIpIChyZ2F0ZUxheWVyICJ5MiIpICh3ZWxsTGF5ZXIgInkzIikgKHRhcExheWVyICJ5NCIpICh2aWExTGF5ZXIgInk1IikgKGxheWVyMiAieTYiKSAodmlhMkxheWVyICJ5NyIpIChsYXllcjMgInk4IikgKGlkTGF5ZXIgInk5IikgKGRpZmZJbXBsYW50IG5pbCkgKGRpZmZJbXBFbmMgMC4wKSAoZGlmZkNvcmVJbXBsYW50IG5pbCkgKGRpZmZDb3JlSW1wRW5jIDAuMCkgKHRhcFdlbGxJbXBsYW50IG5pbCkgKHRhcFdlbGxJbXBFbmMgMC4wKSAodGFwU3ViSW1wbGFudCBuaWwpICh0YXBTdWJJbXBFbmMgMC4wKSAodGFwV2lkdGggMC4wKSAoc3JjVmlhR2F0ZVNwYWNlIDAuMCkgKHNyY1ZpYVRhcFNwYWNlIDAuMCkgKGRyblZpYUdhdGVTcGFjZSAwLjApICh2aWFFeHREaWZmIDAuMCkgKG1pbkRpZmZUYXBSaW5nU3BhY2UgMC4wKSAoR2F0ZVRvR2F0ZVNwYWNlIDAuMCkgKGZsYXJlWWFtb3VudF9vdXQgMC4wKSAoZmxhcmVZYW1vdW50X2luIDAuMCkgKGZsYXJlWWV4dGVuc2lvbiAwLjApICh2aWExV2lkdGggMC4wKSAodmlhMVNwYWNlIDAuMCkgKHRhcEVuY1ZpYTEgMC4wKSAod2VsbEVuY1RhcCAwLjApIChpbm5lclJpbmdUYXBXaWR0aCAwLjApIChvdXRlclJpbmdUYXBXaWR0aCAwLjApICh3ZWxsVGFwU3BhY2UgMC4wKSAobGF5ZXIyRW5jVmlhMSAwLjApICh2aWEyV2lkdGggMC4wKSAodmlhMlNwYWNlIDAuMCkgKHZpYTFWaWEyU3BhY2UgMC4wKSAobGF5ZXIyRW5jVmlhMiAwLjApIChsYXllcjJXaWR0aCAwLjApIChsYXllcjNFbmNWaWEyIDAuMCkgKGxheWVyM1dpZHRoIDAuMCkgKGxheWVyM1dpZHRoX291dHNpZGUgMC4wKSAoaW5uZXJSaW5nTWV0YWxXaWR0aCAwLjApIChpckxheWVyM0VuY1ZpYTIgMC4wKSAob3JMYXllcjNXaWR0aCAwLjApIChtaW5XIDAuMCkgKG1heFcgMC4wKSAobWluVG90YWxXIDAuMCkgKGdlbmVyaWNSaW5nTmFtZSAicmluZyIpIChyaXZldGVkUmluZ05hbWUgInJpdmV0UmluZyIpIChmbGFyZWRHYXRlTmFtZSAiZmxhcmVkR2F0ZSIpIChkaWZmR3JpZCAwLjApICh0YXBHcmlkIDAuMCkgKHdlbGxHcmlkIDAuMCkgKHBvbHlHcmlkIDAuMCkgKHZpYTFncmlkIDAuMCkgKGxheWVyMmdyaWQgMC4wKSAodmlhMmdyaWQgMC4wKSAobGF5ZXIzZ3JpZCAwLjApICh0YXBFZGdlc0F0NDUgbmlsKSAobGF5ZXIyRWRnZXNBdDQ1IG5pbCkgKGxheWVyM0VkZ2VzQXQ0NSBuaWwpIChlbmRUYXBNZXRJbnNpZGVPdXQgbmlsKSAobW9kZWxUZXh0TGF5ZXIgbGlzdCgiaGlsaXRlIiAiZHJhd2luZyIpKSAobW9kZWxUZXh0TGF5ZXJTaXplIDAuMikgKG1vZGVsVGV4dCAiIikgKG1vZGVsV21heCAwLjApIChtb2RlbFdtaW4gMC4wKSAobW9kZWxMbWF4IDAuMCkgKG1vZGVsTG1pbiAwLjApIChmaWxsZWRSaW5ncyB0KSkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACh3aGVuKCh3ID4gbW9kZWxXbWF4KSBlcnJvcigiJWYgaXMgZ3JlYXRlciB0aGFuIGFsbG93YWJsZSBtYXhpbXVtIHdpZHRoICVmIGZvciBtb2RlbCAlTCIgdyBtb2RlbFdtYXggbW9kZWxUZXh0KSkgd2hlbigodyA8IG1vZGVsV21pbikgZXJyb3IoIiVmIGlzIGxlc3MgdGhhbiBhbGxvd2FibGUgbWluaW11bSB3aWR0aCAlZiBmb3IgbW9kZWwgJUwiIHcgbW9kZWxXbWluIG1vZGVsVGV4dCkpIHdoZW4oKGwgPiBtb2RlbExtYXgpIGVycm9yKCIlZiBpcyBncmVhdGVyIHRoYW4gYWxsb3dhYmxlIGxlbmd0aCAlZiBmb3IgbW9kZWwgJUwiIGwgbW9kZWxMbWF4IG1vZGVsVGV4dCkpIHdoZW4oKGwgPCBtb2RlbExtaW4pIGVycm9yKCIlZiBpcyBsZXNzIHRoYW4gYWxsb3dhYmxlIG1pbmltdW0gbGVuZ3RoICVmIGZvciBtb2RlbCAlTCIgbCBtb2RlbExtaW4gbW9kZWxUZXh0KSkgKGdOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiZyIpKSAoZGJDcmVhdGVUZXJtIGdOZXQgImciICJpbnB1dCIpIChzTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgInMiKSkgKGRiQ3JlYXRlVGVybSBzTmV0ICJzIiAiaW5wdXRPdXRwdXQiKSAoZE5ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJkIikpIChkYkNyZWF0ZVRlcm0gZE5ldCAiZCIgImlucHV0T3V0cHV0IikgKGlyTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImlyIikpIChkYkNyZWF0ZVRlcm0gaXJOZXQgImlyIiAiaW5wdXRPdXRwdXQiKSAob3JOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAib3IiKSkgKGRiQ3JlYXRlVGVybSBvck5ldCAib3IiICJpbnB1dE91dHB1dCIpIGNvbmQoKChzaHJpbmtQZXJjZW50ID09IDAuMCkgKHNjYWxlTXVsdCA9IDEuMCkpICh0IChzY2FsZU11bHQgPSAoMTAwLjAgLyAoMTAwLjAgLSBzaHJpbmtQZXJjZW50KSkpICh2aWExUG9seUdyaWQgPSBtYXgodmlhMWdyaWQgcG9seUdyaWQpKSBmb3JlYWNoKHNpemVBbmRHcmlkIGxpc3QobGlzdCgnc3JjVmlhR2F0ZVNwYWNlIHZpYTFQb2x5R3JpZCkgbGlzdCgnZHJuVmlhR2F0ZVNwYWNlIHZpYTFQb2x5R3JpZCkgbGlzdCgnZHJuVmlhWXNwYWNlUmluZ1ZpYVRvcCB2aWExZ3JpZCkgbGlzdCgnZHJuVmlhWXNwYWNlUmluZ1ZpYUJvdCB2aWExZ3JpZCkgbGlzdCgnRVNEbndFbmNWaWExIHRhcEdyaWQpIGxpc3QoJ0VTRG53R2F0ZVNwIHRhcEdyaWQpIGxpc3QoJ2lubmVyUmluZ1RhcFdpZHRoIHRhcEdyaWQpIGxpc3QoJ291dGVyUmluZ1RhcFdpZHRoIHRhcEdyaWQpIGxpc3QoJ2lubmVyUmluZ01ldGFsV2lkdGggbGF5ZXIyZ3JpZCkgbGlzdCgndmlhMVZpYTJTcGFjZSB2aWExZ3JpZCkgbGlzdCgnbGF5ZXIyV2lkdGggbGF5ZXIyZ3JpZCkgbGlzdCgnbGF5ZXIzV2lkdGggbGF5ZXIzZ3JpZCkgbGlzdCgnb3JMYXllcjNXaWR0aCBsYXllcjNncmlkKSBsaXN0KCdtaW5XIGRpZmZHcmlkKSBsaXN0KCdtYXhXIGRpZmZHcmlkKSBsaXN0KCdtaW5Ub3RhbFcgZGlmZkdyaWQpIGxpc3QoJ3ZpYUV4dERpZmZZIGRpZmZHcmlkKSkgKHRoZVNpemUgPSBjYXIoc2l6ZUFuZEdyaWQpKSAodGhlR3JpZCA9IGNhZHIoc2l6ZUFuZEdyaWQpKSAodGVtcFNpemUgPSAoKGV2YWwodGhlU2l6ZSkgKiBzY2FsZU11bHQpIC8gdGhlR3JpZCkpIHNldCh0aGVTaXplIChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIHRoZUdyaWQpKSkpKSBmb3JlYWNoKGtsdWRnZSBsaXN0KGxpc3QoJ29yTGF5ZXIzV2lkdGggbGF5ZXIzZ3JpZCB2aWEyV2lkdGggdmlhMmdyaWQpIGxpc3QoJ291dGVyUmluZ1RhcFdpZHRoIHRhcEdyaWQgdmlhMVdpZHRoIHZpYTFncmlkKSkgKHRtcE9yTGF5ZXJXaWR0aCA9IG50aCgwIGtsdWRnZSkpICh0bXBPckxheWVyR3JpZCA9IG50aCgxIGtsdWRnZSkpICh0bXBWaWFXaWR0aCA9IG50aCgyIGtsdWRnZSkpICh0bXBWaWFHcmlkID0gbnRoKDMga2x1ZGdlKSkgKHRlbXBTaXplID0gKHRtcFZpYVdpZHRoIC8gdG1wVmlhR3JpZCkpIGNvbmQoKG9kZHAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkpICh0ZW1wU2l6ZSA9IChldmFsKHRtcE9yTGF5ZXJXaWR0aCkgLyB0bXBPckxheWVyR3JpZCkpIHdoZW4oZXZlbnAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkpIHNldCh0bXBPckxheWVyV2lkdGggKGV2YWwodG1wT3JMYXllcldpZHRoKSArIGxheWVyM2dyaWQpKSkpICh0ICh0ZW1wU2l6ZSA9IChldmFsKHRtcE9yTGF5ZXJXaWR0aCkgLyB0bXBPckxheWVyR3JpZCkpIHdoZW4ob2RkcChmaXgoKHRlbXBTaXplICsgMC45OTkpKSkgc2V0KHRtcE9yTGF5ZXJXaWR0aCAoZXZhbCh0bXBPckxheWVyV2lkdGgpICsgbGF5ZXIzZ3JpZCkpKSkpKSAodmlhMVBpdGNoID0gKHZpYTFXaWR0aCArIHZpYTFTcGFjZSkpICh0YXJnZXRSb3dzID0gKCh3ICsgKC0yLjAgKiB2aWFFeHREaWZmWSkgKyB2aWExU3BhY2UpIC8gdmlhMVBpdGNoKSkgKHJvd3NPZkNvbnRhY3RzID0gZml4KCgwLjk5OSArIHRhcmdldFJvd3MpKSkgd2hlbigoYWJzKChyb3dzT2ZDb250YWN0cyAtIHRhcmdldFJvd3MpKSA+IDAuMDAwMSkgZXJyb3IoIm5Fc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiB3ICglZikgZG9lcyBub3Qgc2F0aXNmeSB2aWEgcGl0Y2ggcmVxdWlyZW1lbnRzLiAgVHJ5IGVpdGhlciAlZiBvciAlZlxuIiB3ICgocm93c09mQ29udGFjdHMgKiB2aWExUGl0Y2gpICsgKC0gdmlhMVNwYWNlKSArICgyLjAgKiB2aWFFeHREaWZmWSkpICgoKHJvd3NPZkNvbnRhY3RzIC0gMSkgKiB2aWExUGl0Y2gpICsgKC0gdmlhMVNwYWNlKSArICgyLjAgKiB2aWFFeHREaWZmWSkpKSkgd2hlbigoKHcgLSAxZS0wNikgPCBtaW5XKSBlcnJvcigibkVzZFRyYW5JbXBDYXNjb2RlQ2xhc3M6ICB3ICglZikgaXMgbGVzcyB0aGFuIG1pbmltdW0gYWxsb3dhYmxlIHdpZHRoIHBlciBsZWcgKCVmKVxuIiB3IG1pblcpKSB3aGVuKCgodyAtIDFlLTA2KSA+IG1heFcpIGVycm9yKCJuRXNkVHJhbkltcENhc2NvZGVDbGFzczogIHcgKCVmKSBpcyBncmVhdGVyIHRoYW4gbWF4aW11bSBhbGxvd2FibGUgd2lkdGggcGVyIGxlZyAoJWYpXG4iIHcgbWF4VykpIHdoZW4oKCh3ICogbSkgPCBtaW5Ub3RhbFcpIGVycm9yKCJuRXNkVHJhbkltcENhc2NvZGVDbGFzczogIHRvdGFsIHcgKCVmKSBpcyBsZXNzIHRoYW4gdGhlIG1pbmltdW0gdG90YWwgd2lkdGggKCVmKVxuIiAodyAqIG0pIG1pblRvdGFsVykpIHdoZW4oKGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgPCAoc3JjVmlhR2F0ZVNwYWNlICsgZHJuVmlhR2F0ZVNwYWNlICsgbCArIGV4dHJhRHJuU3BhY2UgKyBleHRyYVNyY1NwYWNlKSkgZXJyb3IoIm5Fc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgZHJuVmlhWXNwYWNlUmluZ1ZpYVRvcCAoJWYpIGlzIGxlc3MgdGhhbiBtaW5pbXVtIGFsbG93YWJsZSAoJWYpXG4iIGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgKHNyY1ZpYUdhdGVTcGFjZSArIGRyblZpYUdhdGVTcGFjZSArIGwgKyBleHRyYURyblNwYWNlICsgZXh0cmFTcmNTcGFjZSkpKSB3aGVuKChkcm5WaWFZc3BhY2VSaW5nVmlhQm90IDwgKHNyY1ZpYUdhdGVTcGFjZSArIGRyblZpYUdhdGVTcGFjZSArIGwgKyBleHRyYURyblNwYWNlICsgZXh0cmFTcmNTcGFjZSkpIGVycm9yKCJuRXNkVHJhbkltcENhc2NvZGVDbGFzczogIGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgKCVmKSBpcyBsZXNzIHRoYW4gbWluaW11bSBhbGxvd2FibGUgKCVmKVxuIiBkcm5WaWFZc3BhY2VSaW5nVmlhQm90IChzcmNWaWFHYXRlU3BhY2UgKyBkcm5WaWFHYXRlU3BhY2UgKyBsICsgZXh0cmFEcm5TcGFjZSArIGV4dHJhU3JjU3BhY2UpKSkgdW5sZXNzKCghZmxvYXRwKG0pICYmIG51bWJlcnAobSkpIGVycm9yKCJuRXNkVHJhbkltcENhc2NvZGVDbGFzczogIG0gbXVzdCBiZSBhbiBldmVuIGludGVnZXIsIG5vdCBhIGZsb2F0XG4iKSkgd2hlbihvZGRwKG0pIGVycm9yKCJuRXNkVHJhbkltcENhc2NvZGVDbGFzczogIG0gKG51bWJlciBvZiBsZWdzKSBtdXN0IGJlIGFuIGV2ZW4gaW50ZWdlclxuIikpIChmbGFyZWRHYXRlSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZmxhcmVkR2F0ZU5hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhmbGFyZWRHYXRlSWQgZXJyb3IoIm5Fc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgQ2Fubm90IGZpbmQvb3BlbiBmbGFyZWQgZ2F0ZSAlc1xuIiBmbGFyZWRHYXRlTmFtZSkpIHVubGVzcygoZmxhcmVkR2F0ZUlkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoIm5Fc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgRmxhcmVkIGdhdGUgJXMgaXMgbm90IGEgcGNlbGxcbiIgZmxhcmVkR2F0ZU5hbWUpKSAocmluZ0lkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGdlbmVyaWNSaW5nTmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHJpbmdJZCBlcnJvcigibkVzZFRyYW5JbXBDYXNjb2RlQ2xhc3M6ICBDYW5ub3QgZmluZC9vcGVuIHJpbmcgJXNcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgdW5sZXNzKChyaW5nSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigibkVzZFRyYW5JbXBDYXNjb2RlQ2xhc3M6ICBSaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIGdlbmVyaWNSaW5nTmFtZSkpIChyaXZldGVkUmluZ0lkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIHJpdmV0ZWRSaW5nTmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHJpdmV0ZWRSaW5nSWQgZXJyb3IoIm5Fc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgQ2Fubm90IGZpbmQvb3BlbiByaXZldGVkIHJpbmcgJXNcbiIgcml2ZXRlZFJpbmdOYW1lKSkgdW5sZXNzKChyaXZldGVkUmluZ0lkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoIm5Fc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgUml2ZXRlZCByaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIHJpdmV0ZWRSaW5nTmFtZSkpIGlmKG5vVGFwTndlbGwgKGRpZmZYb3JpZ2luID0gKCgtIHZpYUV4dERpZmZYKSArICgtIHZpYTFXaWR0aCkgKyAoLSB2aWExV2lkdGgpICsgKC0gdmlhMVNwYWNlKSArICgtIHNyY1ZpYUdhdGVTcGFjZSkgKyAoLSBleHRyYVNyY1NwYWNlKSkpIChkaWZmWG9yaWdpbiA9ICgoLSB2aWFFeHREaWZmWCkgKyAoLSB2aWExV2lkdGgpICsgKC0gc3JjVmlhR2F0ZVNwYWNlKSArICgtIGV4dHJhU3JjU3BhY2UpKSkpIChkaWZmWW9yaWdpbiA9IDAuMCkgaWYobm9UYXBOd2VsbCB0aGVuICh0b3RhbERybkxlbmd0aCA9ICgoMi4wICogKGRyblZpYUdhdGVTcGFjZSArIGV4dHJhRHJuU3BhY2UpKSArICgyLjAgKiB2aWExV2lkdGgpICsgdmlhMVNwYWNlKSkgKHRvdGFsU3JjTGVuZ3RoID0gKCgyLjAgKiAoc3JjVmlhR2F0ZVNwYWNlICsgZXh0cmFTcmNTcGFjZSkpICsgKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWExU3BhY2UpKSBlbHNlICh0b3RhbERybkxlbmd0aCA9ICgoMi4wICogKGRyblZpYUdhdGVTcGFjZSArIGV4dHJhRHJuU3BhY2UpKSArIHZpYTFXaWR0aCkpICh0b3RhbFNyY0xlbmd0aCA9ICgoMi4wICogKHNyY1ZpYUdhdGVTcGFjZSArIGV4dHJhU3JjU3BhY2UpKSArIHZpYTFXaWR0aCkpKSAoZGlmZlhlbmQgPSAoZGlmZlhvcmlnaW4gKyAoLTIuMCAqIGRpZmZYb3JpZ2luKSArIChsICogbSkgKyAoKEdhdGVUb0dhdGVTcGFjZSArIGwpICogbSkgKyAoKG0gLyAyKSAqIHRvdGFsRHJuTGVuZ3RoKSArICgoKG0gLyAyKSAtIDEpICogdG90YWxTcmNMZW5ndGgpKSkgKGRpZmZZZW5kID0gdykgd2hlbigoKEVTRG53RW5jVmlhMSA+IDAuMCkgJiYgKEVTRG53R2F0ZVNwID4gMC4wKSkgaWYobm9UYXBOd2VsbCB0aGVuIChFU0Rud1RXaWR0aERybiA9ICgoKDIuMCAqIGRyblZpYUdhdGVTcGFjZSkgKyAoMi4wICogdmlhMVdpZHRoKSArIHZpYTFTcGFjZSkgLSAoMi4wICogRVNEbndHYXRlU3ApKSkgKEVTRG53VFdpZHRoU3JjID0gKCgoMi4wICogc3JjVmlhR2F0ZVNwYWNlKSArICgyLjAgKiB2aWExV2lkdGgpICsgdmlhMVNwYWNlKSAtICgyLjAgKiBFU0Rud0dhdGVTcCkpKSBlbHNlIChFU0Rud1RXaWR0aERybiA9ICgoKDIuMCAqIGRyblZpYUdhdGVTcGFjZSkgKyB2aWExV2lkdGgpIC0gKDIuMCAqIEVTRG53R2F0ZVNwKSkpIChFU0Rud1RXaWR0aFNyYyA9ICgoKDIuMCAqIHNyY1ZpYUdhdGVTcGFjZSkgKyB2aWExV2lkdGgpIC0gKDIuMCAqIEVTRG53R2F0ZVNwKSkpKSAoRVNEbndUWG9yaWdpbiA9ICgoLSBFU0Rud0dhdGVTcCkgKyAoLSBFU0Rud1RXaWR0aFNyYykpKSAoRVNEbndUWW9yaWdpbiA9ICh2aWFFeHREaWZmWSAtIEVTRG53RW5jVmlhMSkpIChFU0Rud1RZZW5kID0gKHZpYUV4dERpZmZZICsgKHJvd3NPZkNvbnRhY3RzICogdmlhMVdpZHRoKSArICgocm93c09mQ29udGFjdHMgLSAxKSAqIHZpYTFTcGFjZSkgKyBFU0Rud0VuY1ZpYTEpKSkgaWYoKChFU0Rud0VuY1ZpYTEgPiAwLjApICYmIChFU0Rud0dhdGVTcCA+IDAuMCkpIHRoZW4gKGRpZmZYbG9vcCA9IChsICsgKEdhdGVUb0dhdGVTcGFjZSAvIDIuMCkpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhvcmlnaW46ZGlmZllvcmlnaW4pIChkaWZmWG9yaWdpbjpkaWZmWWVuZCkgKGRpZmZYbG9vcDpkaWZmWWVuZCkgKGRpZmZYbG9vcDpFU0Rud1RZZW5kKSAoKEVTRG53VFhvcmlnaW4gKyAoLSBleHRyYVNyY1NwYWNlKSk6RVNEbndUWWVuZCkgKChFU0Rud1RYb3JpZ2luICsgKC0gZXh0cmFTcmNTcGFjZSkpOmRpZmZZb3JpZ2luKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpKTpkaWZmWW9yaWdpbikgKGRpZmZYbG9vcDpkaWZmWW9yaWdpbikgKGRpZmZYbG9vcDpFU0Rud1RZZW5kKSAoKEVTRG53VFhvcmlnaW4gKyAoLSBleHRyYVNyY1NwYWNlKSArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZZW5kKSAoKEVTRG53VFhvcmlnaW4gKyAoLSBleHRyYVNyY1NwYWNlKSArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZb3JpZ2luKSAoKEVTRG53VFhvcmlnaW4gKyAoLSBleHRyYVNyY1NwYWNlKSk6RVNEbndUWW9yaWdpbikpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSBpZihub1RhcE53ZWxsIHRoZW4gKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKChFU0Rud1RYb3JpZ2luICsgKC0gZXh0cmFTcmNTcGFjZSkpOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKChFU0Rud1RYb3JpZ2luICsgKC0gZXh0cmFTcmNTcGFjZSkpOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwTGF5ZXIgbGlzdCgoKEVTRG53VFhvcmlnaW4gKyAoLSBleHRyYVNyY1NwYWNlKSk6RVNEbndUWW9yaWdpbikgKChFU0Rud1RYb3JpZ2luICsgKC0gZXh0cmFTcmNTcGFjZSkgKyBFU0Rud1RXaWR0aFNyYyk6RVNEbndUWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgbGlzdCgoKEVTRG53VFhvcmlnaW4gKyAoLSBleHRyYVNyY1NwYWNlKSk6RVNEbndUWW9yaWdpbikgKChFU0Rud1RYb3JpZ2luICsgKC0gZXh0cmFTcmNTcGFjZSkgKyBFU0Rud1RXaWR0aFNyYyk6RVNEbndUWWVuZCkpKSkpIChFU0Rud1RYb3JpZ2luID0gKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyArICgyLjAgKiBFU0Rud0dhdGVTcCkgKyBsICsgbCArIEdhdGVUb0dhdGVTcGFjZSArIGV4dHJhRHJuU3BhY2UpKSBmb3Ioc2VjdGlvbiAxIChtIC8gMikgKGRybkRpZmZYZW5kID0gKGRpZmZYbG9vcCArIHRvdGFsRHJuTGVuZ3RoICsgbCArIGwgKyBHYXRlVG9HYXRlU3BhY2UpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhsb29wOmRpZmZZb3JpZ2luKSAoZGlmZlhsb29wOmRpZmZZZW5kKSAoZHJuRGlmZlhlbmQ6ZGlmZlllbmQpIChkcm5EaWZmWGVuZDpFU0Rud1RZZW5kKSAoRVNEbndUWG9yaWdpbjpFU0Rud1RZZW5kKSAoRVNEbndUWG9yaWdpbjpkaWZmWW9yaWdpbikpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBkTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoRVNEbndUWG9yaWdpbjpkaWZmWW9yaWdpbikgKGRybkRpZmZYZW5kOmRpZmZZb3JpZ2luKSAoZHJuRGlmZlhlbmQ6RVNEbndUWWVuZCkgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhEcm4pOkVTRG53VFllbmQpICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoRHJuKTpFU0Rud1RZb3JpZ2luKSAoRVNEbndUWG9yaWdpbjpFU0Rud1RZb3JpZ2luKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGROZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGxpc3QoKEVTRG53VFhvcmlnaW46RVNEbndUWW9yaWdpbikgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhEcm4pOkVTRG53VFllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgd2VsbExheWVyIGxpc3QoKEVTRG53VFhvcmlnaW46RVNEbndUWW9yaWdpbikgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhEcm4pOkVTRG53VFllbmQpKSkpIChFU0Rud1RYb3JpZ2luID0gKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aERybiArICgyLjAgKiBFU0Rud0dhdGVTcCkgKyBsICsgbCArIEdhdGVUb0dhdGVTcGFjZSArIGV4dHJhU3JjU3BhY2UgKyBleHRyYURyblNwYWNlKSkgKGRpZmZYbG9vcCA9IGRybkRpZmZYZW5kKSB1bmxlc3MoKHNlY3Rpb24gPT0gKG0gLyAyKSkgKHNyY0RpZmZYZW5kID0gKGRpZmZYbG9vcCArIHRvdGFsU3JjTGVuZ3RoICsgbCArIGwgKyBHYXRlVG9HYXRlU3BhY2UpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhsb29wOmRpZmZZb3JpZ2luKSAoZGlmZlhsb29wOmRpZmZZZW5kKSAoc3JjRGlmZlhlbmQ6ZGlmZlllbmQpIChzcmNEaWZmWGVuZDpFU0Rud1RZZW5kKSAoRVNEbndUWG9yaWdpbjpFU0Rud1RZZW5kKSAoRVNEbndUWG9yaWdpbjpkaWZmWW9yaWdpbikpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoRVNEbndUWG9yaWdpbjpkaWZmWW9yaWdpbikgKHNyY0RpZmZYZW5kOmRpZmZZb3JpZ2luKSAoc3JjRGlmZlhlbmQ6RVNEbndUWWVuZCkgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZb3JpZ2luKSAoRVNEbndUWG9yaWdpbjpFU0Rud1RZb3JpZ2luKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIGlmKG5vVGFwTndlbGwgdGhlbiAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoRVNEbndUWG9yaWdpbjpFU0Rud1RZb3JpZ2luKSAoKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyk6RVNEbndUWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoRVNEbndUWG9yaWdpbjpFU0Rud1RZb3JpZ2luKSAoKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyk6RVNEbndUWWVuZCkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBMYXllciBsaXN0KChFU0Rud1RYb3JpZ2luOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KChFU0Rud1RYb3JpZ2luOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZZW5kKSkpKSkgKEVTRG53VFhvcmlnaW4gPSAoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjICsgZXh0cmFTcmNTcGFjZSArICgyLjAgKiBFU0Rud0dhdGVTcCkgKyBsICsgbCArIEdhdGVUb0dhdGVTcGFjZSArIGV4dHJhRHJuU3BhY2UpKSAoZGlmZlhsb29wID0gc3JjRGlmZlhlbmQpKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKGRpZmZYbG9vcDpkaWZmWW9yaWdpbikgKGRpZmZYbG9vcDpkaWZmWWVuZCkgKGRpZmZYZW5kOmRpZmZZZW5kKSAoZGlmZlhlbmQ6RVNEbndUWWVuZCkgKEVTRG53VFhvcmlnaW46RVNEbndUWWVuZCkgKEVTRG53VFhvcmlnaW46ZGlmZllvcmlnaW4pKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKEVTRG53VFhvcmlnaW46ZGlmZllvcmlnaW4pIChkaWZmWGVuZDpkaWZmWW9yaWdpbikgKGRpZmZYZW5kOkVTRG53VFllbmQpICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZZW5kKSAoKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyk6RVNEbndUWW9yaWdpbikgKEVTRG53VFhvcmlnaW46RVNEbndUWW9yaWdpbikpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSBpZihub1RhcE53ZWxsIHRoZW4gKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKEVTRG53VFhvcmlnaW46RVNEbndUWW9yaWdpbikgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKEVTRG53VFhvcmlnaW46RVNEbndUWW9yaWdpbikgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpKSkpIChFU0Rud1RYb3JpZ2luID0gKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyArICgyLjAgKiBFU0Rud0dhdGVTcCkgKyBsKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBMYXllciBsaXN0KChFU0Rud1RYb3JpZ2luOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KChFU0Rud1RYb3JpZ2luOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZZW5kKSkpKSAoRVNEbndUWG9yaWdpbiA9IChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhTcmMgKyAoMi4wICogRVNEbndHYXRlU3ApICsgbCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGlkTGF5ZXIgbGlzdCgoZGlmZlhvcmlnaW46ZGlmZllvcmlnaW4pIChkaWZmWGVuZDpkaWZmWWVuZCkpKSB3aGVuKGRpZmZJbXBsYW50IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKGRpZmZYb3JpZ2luIC0gZGlmZkltcEVuYykgKGRpZmZZb3JpZ2luIC0gZGlmZkltcEVuYykpIGxpc3QoKGRpZmZYZW5kICsgZGlmZkltcEVuYykgKGRpZmZZZW5kICsgZGlmZkltcEVuYykpKSkpIHdoZW4oZGlmZkNvcmVJbXBsYW50IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KChkaWZmWG9yaWdpbiAtIGRpZmZDb3JlSW1wRW5jKSAoZGlmZllvcmlnaW4gLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKGRpZmZYZW5kICsgZGlmZkNvcmVJbXBFbmMpIChkaWZmWWVuZCArIGRpZmZDb3JlSW1wRW5jKSkpKSkgd2hlbihodkxheWVyIChodmxseCA9IChkaWZmWG9yaWdpbiAtIGh2RGlmZkVuY2xvc3VyZSkpIChodmxseSA9IChkaWZmWW9yaWdpbiAtIGh2RGlmZkVuY2xvc3VyZSkpIChodnVyeCA9IChkaWZmWGVuZCArIGh2RGlmZkVuY2xvc3VyZSkpIChodnVyeSA9IChkaWZmWWVuZCArIGh2RGlmZkVuY2xvc3VyZSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBodkxheWVyIGxpc3QoKGh2bGx4Omh2bGx5KSAoaHZ1cng6aHZ1cnkpKSkpIChnYXRlWG9mZnNldCA9IDAuMCkgZm9yKGdhdGVOdW0gMSBtIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgZmxhcmVkR2F0ZUlkIHNwcmludGYobmlsICJnJWQiIGdhdGVOdW0pICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJnYXRlTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoImdhdGVSZWNvZ25pdGlvbkxheWVyIiAibGlzdCIgcmdhdGVMYXllcikgbGlzdCgidyIgImZsb2F0IiB3KSBsaXN0KCJsIiAiZmxvYXQiIGwpIGxpc3QoImZsYXJlQW1vdW50X291dCIgImZsb2F0IiBmbGFyZVlhbW91bnRfb3V0KSBsaXN0KCJmbGFyZUFtb3VudF9pbiIgImZsb2F0IiBmbGFyZVlhbW91bnRfaW4pIGxpc3QoImZsYXJlRXh0ZW5zaW9uIiAiZmxvYXQiIGZsYXJlWWV4dGVuc2lvbikgbGlzdCgieE9mZnNldCIgImZsb2F0IiBnYXRlWG9mZnNldCkgbGlzdCgiZ2F0ZVRvR2F0ZVNwYWNlIiAiZmxvYXQiIEdhdGVUb0dhdGVTcGFjZSkpKSkgdW5sZXNzKGluc3QgZXJyb3IoIm5Fc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBmbGFyZWQgZ2F0ZSAlcyIgZmxhcmVkR2F0ZU5hbWUpKSAobWFzdGVyID0gKGluc3R+Pm1hc3RlcikpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciAobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZ05ldCkgKG1vZGVsVGV4dFggPSAoZ2F0ZVhvZmZzZXQgKyAoKGNhYWRyKChtYXN0ZXJ+Pm5vZmxhcmVQb2ludHMpKSAtIGNhYXIoKG1hc3Rlcn4+bm9mbGFyZVBvaW50cykpKSAvIDIpKSkgKG1vZGVsVGV4dFkgPSAoKGNhZGFyKChtYXN0ZXJ+Pm5vZmxhcmVQb2ludHMpKSAtIGNhZGFkcigobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkpIC8gMikpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbW9kZWxUZXh0TGF5ZXIgbGlzdChtb2RlbFRleHRYIG1vZGVsVGV4dFkpIG1vZGVsVGV4dCAiY2VudGVyQ2VudGVyIiAiUjAiICJzdGljayIgbW9kZWxUZXh0TGF5ZXJTaXplKSAobW9kZWxUZXh0WCA9ICgoR2F0ZVRvR2F0ZVNwYWNlICsgbCkgKyAoZ2F0ZVhvZmZzZXQgKyAoKGNhYWRyKChtYXN0ZXJ+Pm5vZmxhcmVQb2ludHMpKSAtIGNhYXIoKG1hc3Rlcn4+bm9mbGFyZVBvaW50cykpKSAvIDIpKSkpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbW9kZWxUZXh0TGF5ZXIgbGlzdChtb2RlbFRleHRYIG1vZGVsVGV4dFkpIG1vZGVsVGV4dCAiY2VudGVyQ2VudGVyIiAiUjAiICJzdGljayIgbW9kZWxUZXh0TGF5ZXJTaXplKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBnYXRlTGF5ZXIgKG1hc3Rlcn4+bm9mbGFyZVBvaW50czEpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBnTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBnYXRlTGF5ZXIgKG1hc3Rlcn4+dG9wRmxhcmVQb2ludHMpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGdOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiKSBhY2Nlc3NEaXIpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGdhdGVMYXllciAobWFzdGVyfj50b3BGbGFyZVBvaW50czEpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGdOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiKSBhY2Nlc3NEaXIpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGdhdGVMYXllciAobWFzdGVyfj5ib3R0b21GbGFyZVBvaW50cykpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoImJvdHRvbSIpIGFjY2Vzc0RpcikgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIChtYXN0ZXJ+PmJvdHRvbUZsYXJlUG9pbnRzMSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoImJvdHRvbSIpIGFjY2Vzc0RpcikgY29uZCgob2RkcChnYXRlTnVtKSAoZ2F0ZVhvZmZzZXQgPSAoZ2F0ZVhvZmZzZXQgKyBsICsgbCArIEdhdGVUb0dhdGVTcGFjZSArIHRvdGFsRHJuTGVuZ3RoKSkpICh0IChnYXRlWG9mZnNldCA9IChnYXRlWG9mZnNldCArIGwgKyBsICsgR2F0ZVRvR2F0ZVNwYWNlICsgdG90YWxTcmNMZW5ndGgpKSkpKSBpZihub1RhcE53ZWxsICh2aWExWG9yaWdpbiA9ICgoLSBzcmNWaWFHYXRlU3BhY2UpICsgKC0gZXh0cmFTcmNTcGFjZSkgKyAoLSB2aWExV2lkdGgpICsgKC0gdmlhMVdpZHRoKSArICgtIHZpYTFTcGFjZSkpKSAodmlhMVhvcmlnaW4gPSAoKC0gc3JjVmlhR2F0ZVNwYWNlKSArICgtIGV4dHJhU3JjU3BhY2UpICsgKC0gdmlhMVdpZHRoKSkpKSAodmlhMVlvcmlnaW4gPSB2aWFFeHREaWZmWSkgaWYobm9UYXBOd2VsbCAodmlhMVhkZWx0YSA9ICh2aWExV2lkdGggKyB2aWExV2lkdGggKyB2aWExU3BhY2UgKyBleHRyYVNyY1NwYWNlICsgc3JjVmlhR2F0ZVNwYWNlICsgbCArIEdhdGVUb0dhdGVTcGFjZSArIGwgKyBkcm5WaWFHYXRlU3BhY2UgKyBleHRyYURyblNwYWNlKSkgKHZpYTFYZGVsdGEgPSAodmlhMVdpZHRoICsgZXh0cmFTcmNTcGFjZSArIHNyY1ZpYUdhdGVTcGFjZSArIGwgKyBHYXRlVG9HYXRlU3BhY2UgKyBsICsgZHJuVmlhR2F0ZVNwYWNlICsgZXh0cmFEcm5TcGFjZSkpKSAodGhlTmV0ID0gc05ldCkgY29uZCgoKChsYXllcjJMID0gKGxheWVyMkVuY1ZpYTEgKyB2aWExV2lkdGggKyBsYXllcjJFbmNWaWExKSkgPiAobGF5ZXIyTGEgPSAobGF5ZXIyRW5jVmlhMiArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpKSkgKGxheWVyMkRlbHRhVmlhMSA9IGxheWVyMkVuY1ZpYTEpKSAodCAoZGVsdGEgPSAoKGxheWVyMkxhIC0gbGF5ZXIyTCkgLyAyLjApKSAobGF5ZXIyRGVsdGFWaWExID0gKGxheWVyMkVuY1ZpYTEgKyAoZml4KCgwLjk5OSArIChkZWx0YSAvIGxheWVyMmdyaWQpKSkgKiBsYXllcjJncmlkKSkpIChsYXllcjJMID0gbGF5ZXIyTGEpKSkgKHZpYTJQaXRjaCA9ICh2aWEyV2lkdGggKyB2aWEyU3BhY2UpKSAobGF5ZXIyVyA9ICgoMi4wICogbGF5ZXIyRW5jVmlhMSkgKyAocm93c09mQ29udGFjdHMgKiB2aWExUGl0Y2gpICsgKC0gdmlhMVNwYWNlKSkpIChsYXllcjJXYSA9ICgoMi4wICogbGF5ZXIyRW5jVmlhMikgLSB2aWEyU3BhY2UpKSAocm93c09mQ29udGFjdHMyID0gMCkgd2hpbGUoKChsYXllcjJXYSAtIDFlLTA1KSA8IGxheWVyMlcpIChsYXllcjJXYSA9IChsYXllcjJXYSArIHZpYTJQaXRjaCkpIChyb3dzT2ZDb250YWN0czIgPSAocm93c09mQ29udGFjdHMyICsgMSkpKSAobGF5ZXIyV2EgPSAobGF5ZXIyV2EgLSB2aWEyUGl0Y2gpKSAocm93c09mQ29udGFjdHMyID0gKHJvd3NPZkNvbnRhY3RzMiAtIDEpKSAobGF5ZXIyWURlbHRhVmlhMSA9IGxheWVyMkVuY1ZpYTEpIGZvcihjb2x1bW4gMCBtIGNvbmQoKGV2ZW5wKGNvbHVtbikgKHRoZU5ldCA9IHNOZXQpKSAodCAodGhlTmV0ID0gZE5ldCkpKSAodmlhMVhlbmQgPSAodmlhMVhvcmlnaW4gKyB2aWExV2lkdGgpKSAodmlhMVlsb29wID0gdmlhMVlvcmlnaW4pIGZvcihyb3cgMSByb3dzT2ZDb250YWN0cyBpZihub1RhcE53ZWxsIHRoZW4gKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHZpYTFYb3JpZ2luOnZpYTFZbG9vcCkgKHZpYTFYZW5kOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgoKHZpYTFYZW5kICsgdmlhMVNwYWNlKTp2aWExWWxvb3ApICgodmlhMVhlbmQgKyB2aWExU3BhY2UgKyB2aWExV2lkdGgpOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkgKHZpYTFZbG9vcCA9ICh2aWExWWxvb3AgKyB2aWExUGl0Y2gpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KCh2aWExWG9yaWdpbjp2aWExWWxvb3ApICh2aWExWGVuZDoodmlhMVlsb29wICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0aGVOZXQpICh2aWExWWxvb3AgPSAodmlhMVlsb29wICsgdmlhMVBpdGNoKSkpKSBpZigobGF5ZXIyV2lkdGggPiAwLjApIHRoZW4gaWYobm9UYXBOd2VsbCAobGF5ZXIyWG9yaWdpbiA9IG1pbigoKHZpYTFYb3JpZ2luICsgKDAuNSAqIHZpYTFTcGFjZSkgKyB2aWExV2lkdGgpIC0gKDAuNSAqIGxheWVyMldpZHRoKSkgKHZpYTFYb3JpZ2luICsgKC0gbGF5ZXIyRW5jVmlhMikpKSkgKGxheWVyMlhvcmlnaW4gPSBtaW4oKCh2aWExWG9yaWdpbiAtICgwLjUgKiBsYXllcjJXaWR0aCkpICsgKDAuNSAqIHZpYTFXaWR0aCkpICh2aWExWG9yaWdpbiArICgtIHZpYTFWaWEyU3BhY2UpICsgKC0gdmlhMldpZHRoKSArICgtIGxheWVyMkVuY1ZpYTIpKSkpKSAobGF5ZXIyWG9yaWdpbiA9IChyb3VuZCgoKGxheWVyMlhvcmlnaW4gLyBsYXllcjJncmlkKSArIDAuMDAxKSkgKiBsYXllcjJncmlkKSkgZWxzZSAobGF5ZXIyWG9yaWdpbiA9ICh2aWExWG9yaWdpbiAtIGxheWVyMkRlbHRhVmlhMSkpKSAobGF5ZXIyWW9yaWdpbiA9ICh2aWExWW9yaWdpbiAtIGxheWVyMllEZWx0YVZpYTEpKSAobGF5ZXIyWWVuZCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyVykpIGlmKChsYXllcjJXaWR0aCA+IDAuMCkgdGhlbiBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAobDJidmxDbnRybCA9IChsYXllcjJXaWR0aCAvIDMuMCkpIChsMmJ2bENudHJsID0gKHJvdW5kKCgobDJidmxDbnRybCAvIGxheWVyMmdyaWQpICsgMC4wMDEpKSAqIGxheWVyMmdyaWQpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KChsYXllcjJYb3JpZ2luICsgbDJidmxDbnRybCkgKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsKSkpIGxpc3QobGF5ZXIyWG9yaWdpbiBsYXllcjJZb3JpZ2luKSBsaXN0KGxheWVyMlhvcmlnaW4gbGF5ZXIyWWVuZCkgbGlzdCgobGF5ZXIyWG9yaWdpbiArIGwyYnZsQ250cmwpIChsYXllcjJZZW5kICsgbDJidmxDbnRybCkpIGxpc3QoKGxheWVyMlhvcmlnaW4gKyBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWEyV2lkdGgpICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgdmlhMVdpZHRoICsgKDIuMCAqIGxheWVyMkVuY1ZpYTIpKSkgKyAoLSBsMmJ2bENudHJsKSkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgobGF5ZXIyWG9yaWdpbiArIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTJXaWR0aCkgKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyB2aWExV2lkdGggKyAoMi4wICogbGF5ZXIyRW5jVmlhMikpKSkgbGF5ZXIyWWVuZCkgbGlzdCgobGF5ZXIyWG9yaWdpbiArIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTJXaWR0aCkgKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyB2aWExV2lkdGggKyAoMi4wICogbGF5ZXIyRW5jVmlhMikpKSkgbGF5ZXIyWW9yaWdpbikgbGlzdCgobGF5ZXIyWG9yaWdpbiArIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTJXaWR0aCkgKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyB2aWExV2lkdGggKyAoMi4wICogbGF5ZXIyRW5jVmlhMikpKSArICgtIGwyYnZsQ250cmwpKSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmwpKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0aGVOZXQpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYb3JpZ2luIGxheWVyMllvcmlnaW4pIGxpc3QoKGxheWVyMlhvcmlnaW4gKyBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWEyV2lkdGgpICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgdmlhMVdpZHRoICsgKDIuMCAqIGxheWVyMkVuY1ZpYTIpKSkpIGxheWVyMlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgdGhlTmV0KSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdCgobGF5ZXIyWG9yaWdpbjpsYXllcjJZb3JpZ2luKSAoKGxheWVyMlhvcmlnaW4gKyBsYXllcjJMKTpsYXllcjJZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkpIGlmKG5vVGFwTndlbGwgdGhlbiAodmlhMlhvcmlnaW4gPSAoKHZpYTFYb3JpZ2luICsgKDAuNSAqIHZpYTFTcGFjZSkgKyB2aWExV2lkdGgpIC0gKCgwLjUgKiB2aWEyU3BhY2UpICsgdmlhMldpZHRoKSkpIGVsc2UgaWYoKHZpYTFWaWEyU3BhY2UgPiAwLjApIHRoZW4gKHZpYTJYb3JpZ2luID0gKHZpYTFYb3JpZ2luICsgdmlhMVdpZHRoICsgdmlhMVZpYTJTcGFjZSkpIGVsc2UgKHZpYTJYb3JpZ2luID0gKGxheWVyMlhvcmlnaW4gKyBsYXllcjJFbmNWaWEyKSkpKSAodmlhMlhlbmQgPSAodmlhMlhvcmlnaW4gKyB2aWEyV2lkdGgpKSAodmlhMllvcmlnaW4gPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIpKSAodmlhMllsb29wID0gdmlhMllvcmlnaW4pIGZvcihyb3cgMSByb3dzT2ZDb250YWN0czIgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHZpYTJYb3JpZ2luOnZpYTJZbG9vcCkgKHZpYTJYZW5kOih2aWEyWWxvb3AgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkgaWYobm9UYXBOd2VsbCB0aGVuIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KCgodmlhMlhvcmlnaW4gKyB2aWEyU3BhY2UgKyB2aWEyV2lkdGgpOnZpYTJZbG9vcCkgKCh2aWEyWG9yaWdpbiArIHZpYTJTcGFjZSArIHZpYTJXaWR0aCArIHZpYTJXaWR0aCk6KHZpYTJZbG9vcCArIHZpYTJXaWR0aCkpKSkpIGVsc2Ugd2hlbigodmlhMVZpYTJTcGFjZSA+IDAuMCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKCh2aWExWG9yaWdpbiArICgtIHZpYTFWaWEyU3BhY2UpICsgKC0gdmlhMldpZHRoKSk6dmlhMllsb29wKSAoKHZpYTFYb3JpZ2luICsgKC0gdmlhMVZpYTJTcGFjZSkpOih2aWEyWWxvb3AgKyB2aWEyV2lkdGgpKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgdGhlTmV0KSAodmlhMllsb29wID0gKHZpYTJZbG9vcCArIHZpYTJQaXRjaCkpKSBpZigobGF5ZXIzV2lkdGggPiAwLjApIHRoZW4gaWYobm9UYXBOd2VsbCAobGF5ZXIzWG9yaWdpbiA9ICgodmlhMVhvcmlnaW4gLSAoMC41ICogbGF5ZXIzV2lkdGgpKSArICgwLjUgKiB2aWExU3BhY2UpICsgdmlhMVdpZHRoKSkgKGxheWVyM1hvcmlnaW4gPSAoKHZpYTFYb3JpZ2luIC0gKDAuNSAqIGxheWVyM1dpZHRoKSkgKyAoMC41ICogdmlhMVdpZHRoKSkpKSAobGF5ZXIzWG9yaWdpbiA9IChyb3VuZCgoKGxheWVyM1hvcmlnaW4gLyBsYXllcjNncmlkKSArIDAuMDAxKSkgKiBsYXllcjNncmlkKSkgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGwzYnZsQ250cmwgPSAobGF5ZXIzV2lkdGggLyAzLjApKSAobDNidmxDbnRybCA9IChyb3VuZCgoKGwzYnZsQ250cmwgLyBsYXllcjJncmlkKSArIDAuMDAxKSkgKiBsYXllcjJncmlkKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdCgobGF5ZXIzWG9yaWdpbiArIGwzYnZsQ250cmwpICh2aWEyWW9yaWdpbiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSBsaXN0KGxheWVyM1hvcmlnaW4gKHZpYTJZb3JpZ2luICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KGxheWVyM1hvcmlnaW4gKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgobGF5ZXIzWG9yaWdpbiArIGwzYnZsQ250cmwpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmwpKSBsaXN0KChsYXllcjNYb3JpZ2luICsgbGF5ZXIzV2lkdGggKyAoLSBsM2J2bENudHJsKSkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyICsgbDNidmxDbnRybCkpIGxpc3QoKGxheWVyM1hvcmlnaW4gKyBsYXllcjNXaWR0aCkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgobGF5ZXIzWG9yaWdpbiArIGxheWVyM1dpZHRoKSAodmlhMllvcmlnaW4gKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKGxheWVyM1hvcmlnaW4gKyBsYXllcjNXaWR0aCArICgtIGwzYnZsQ250cmwpKSAodmlhMllvcmlnaW4gKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KGxheWVyM1hvcmlnaW4gKHZpYTJZb3JpZ2luICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KChsYXllcjNYb3JpZ2luICsgbGF5ZXIzV2lkdGgpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgdGhlTmV0KSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdCgoKHZpYTJYb3JpZ2luIC0gbGF5ZXIzRW5jVmlhMik6KHZpYTJZb3JpZ2luIC0gbGF5ZXIzRW5jVmlhMikpICgodmlhMlhlbmQgKyBsYXllcjNFbmNWaWEyKToodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIHRoZU5ldCBkYmlkKSkgY29uZCgoKGNvbHVtbiA9PSAwKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIpIGFjY2Vzc0RpcikpICgoY29sdW1uID09IG0pIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJyaWdodCIpIGFjY2Vzc0RpcikpICh0IHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iKSBhY2Nlc3NEaXIpKSkgKHZpYTFYb3JpZ2luID0gKHZpYTFYb3JpZ2luICsgdmlhMVhkZWx0YSkpKSAodGFwV2lkdGhJbklSID0gbWF4KGlubmVyUmluZ1RhcFdpZHRoICh2aWExV2lkdGggKyAoMi4wICogaW5uZXJSaW5nVGFwRW5jVmlhMSkpKSkgKGlyVmlhT2Zmc2V0ID0gKGZpeCgoKCgodGFwV2lkdGhJbklSIC8gMi4wKSAtICh2aWExV2lkdGggLyAyLjApKSAvIHZpYTFncmlkKSArIDAuOTk5KSkgKiB2aWExZ3JpZCkpIChpclRhcFhvcmlnaW4gPSAoZGlmZlhvcmlnaW4gLSBtaW5EaWZmVGFwUmluZ1NwYWNlIC0gZXh0cmFMZWZ0U3BhY2UgLSB0YXBXaWR0aEluSVIpKSAoaXJUYXBZb3JpZ2luID0gKHZpYTFZb3JpZ2luIC0gZHJuVmlhWXNwYWNlUmluZ1ZpYUJvdCAtIHZpYTFXaWR0aCAtIG1heChpclZpYU9mZnNldCBpbm5lclJpbmdUYXBFbmNWaWExKSkpIChpclRhcEwgPSAoKGRpZmZYZW5kICsgbWluRGlmZlRhcFJpbmdTcGFjZSArIGV4dHJhUmlnaHRTcGFjZSArIHRhcFdpZHRoSW5JUikgLSBpclRhcFhvcmlnaW4pKSAoaXJUYXBXID0gKCh2aWExWWxvb3AgKyAoLSB2aWExU3BhY2UpICsgZHJuVmlhWXNwYWNlUmluZ1ZpYVRvcCArIHZpYTFXaWR0aCArIG1heChpclZpYU9mZnNldCBpbm5lclJpbmdUYXBFbmNWaWExKSkgLSBpclRhcFlvcmlnaW4pKSBpZih0YXBFZGdlc0F0NDUgdGhlbiAoYmV2ZWxMZW5ndGggPSAoMC42ICogdGFwV2lkdGhJbklSKSkgKGJldmVsTGVuZ3RoID0gKHJvdW5kKCgoYmV2ZWxMZW5ndGggLyB0YXBHcmlkKSArIDAuMDAxKSkgKiB0YXBHcmlkKSkgKGxvd2VyTGVmdEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlckxlZnRCTCA9IGJldmVsTGVuZ3RoKSAobG93ZXJSaWdodEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlclJpZ2h0QkwgPSBiZXZlbExlbmd0aCkgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJpdHIiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlyVGFwVykgbGlzdCgibCIgImZsb2F0IiBpclRhcEwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaXJUYXBYb3JpZ2luKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIGlyVGFwWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgdGFwTGF5ZXIpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiB0YXBXaWR0aEluSVIpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgdGFwR3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgIlRSVUUiKSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRhcExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgaXJOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRhcExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgaXJOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRhcExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgaXJOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRhcExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgaXJOZXQpIHdoZW4odGFwU3ViSW1wbGFudCAoaXRyaVhvcmlnaW4gPSAoaXJUYXBYb3JpZ2luIC0gdGFwU3ViSW1wRW5jKSkgKGl0cmlZb3JpZ2luID0gKGlyVGFwWW9yaWdpbiAtIHRhcFN1YkltcEVuYykpIChpdHJpUmluZ1dpZHRoID0gKHRhcFdpZHRoSW5JUiArIHRhcFN1YkltcEVuYyArIHRhcFN1YkltcEVuYykpIChpdHJpVyA9IChpclRhcFcgKyB0YXBTdWJJbXBFbmMgKyB0YXBTdWJJbXBFbmMpKSAoaXRyaUwgPSAoaXJUYXBMICsgdGFwU3ViSW1wRW5jICsgdGFwU3ViSW1wRW5jKSkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJpdHJpIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBpdHJpVykgbGlzdCgibCIgImZsb2F0IiBpdHJpTCkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpdHJpWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpdHJpWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgdGFwU3ViSW1wbGFudCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGl0cmlSaW5nV2lkdGgpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgbmlsKSBsaXN0KCJncmlkIiAiZmxvYXQiIHRhcEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHhDb29yZCA9IChpclRhcFhvcmlnaW4gKyBtYXgoaXJWaWFPZmZzZXQgaW5uZXJSaW5nVGFwRW5jVmlhMSkpKSAoeUNvb3JkID0gKGlyVGFwWW9yaWdpbiArIG1heChpclZpYU9mZnNldCBpbm5lclJpbmdUYXBFbmNWaWExKSkpIGlmKGxheWVyMkVkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSB3aGVuKGZpbGxlZFJpbmdzICh2aWExV2lkdGhJbklSID0gKHRhcFdpZHRoSW5JUiAtIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSAodmlhMVhvcmlnaW4gPSAoaXJUYXBYb3JpZ2luICsgaW5uZXJSaW5nVGFwRW5jVmlhMSkpICh2aWExWW9yaWdpbiA9IChpclRhcFlvcmlnaW4gKyBpbm5lclJpbmdUYXBFbmNWaWExKSkpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIml2MXIiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChpclRhcFcgLSAoMi4wICogaW5uZXJSaW5nVGFwRW5jVmlhMSkpIChpclRhcFcgLSAoMi4wICogbWF4KGlyVmlhT2Zmc2V0IGlubmVyUmluZ1RhcEVuY1ZpYTEpKSkpKSBsaXN0KCJsIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChpclRhcEwgLSAoMi4wICogaW5uZXJSaW5nVGFwRW5jVmlhMSkpIChpclRhcEwgLSAoMi4wICogbWF4KGlyVmlhT2Zmc2V0IGlubmVyUmluZ1RhcEVuY1ZpYTEpKSkpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTFYb3JpZ2luIHhDb29yZCkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMVlvcmlnaW4geUNvb3JkKSkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTFMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTFXaWR0aEluSVIgdmlhMVdpZHRoKSkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWExV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMVNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTFncmlkKSkpIGlmKChpbm5lclJpbmdNZXRhbFdpZHRoID4gMC4wKSB0aGVuIChpckwydyA9IGlyVGFwVykgKGlyTDJsID0gaXJUYXBMKSAoaXJMMnhEZWx0YSA9IGlyVGFwWG9yaWdpbikgKGlyTDJ5RGVsdGEgPSBpclRhcFlvcmlnaW4pIChpckwycmluZ1cgPSBtYXgoKCgyLjAgKiBsYXllcjJFbmNWaWExKSArIHZpYTFXaWR0aCkgKCgyLjAgKiBsYXllcjJFbmNWaWEyKSArIHZpYTJXaWR0aCkgaW5uZXJSaW5nTWV0YWxXaWR0aCkpIGVsc2UgKGlyTDJ3ID0gKGlyVGFwVyArICgtMi4wICogbWF4KGlyVmlhT2Zmc2V0IGlubmVyUmluZ1RhcEVuY1ZpYTEpKSArICgyLjAgKiBsYXllcjJFbmNWaWExKSkpIChpckwybCA9IChpclRhcEwgKyAoLTIuMCAqIG1heChpclZpYU9mZnNldCBpbm5lclJpbmdUYXBFbmNWaWExKSkgKyAoMi4wICogbGF5ZXIyRW5jVmlhMSkpKSAoaXJMMnhEZWx0YSA9ICh4Q29vcmQgKyAoLSBsYXllcjJFbmNWaWExKSkpIChpckwyeURlbHRhID0gKHlDb29yZCArICgtIGxheWVyMkVuY1ZpYTEpKSkgKGlyTDJyaW5nVyA9IG1heCgoKDIuMCAqIGxheWVyMkVuY1ZpYTEpICsgdmlhMVdpZHRoKSAoKDIuMCAqIGxheWVyMkVuY1ZpYTIpICsgdmlhMldpZHRoKSkpKSBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSBpckwycmluZ1cpICh1cHBlckxlZnRCTCA9IGlyTDJyaW5nVykgKGxvd2VyUmlnaHRCTCA9IGlyTDJyaW5nVykgKHVwcGVyUmlnaHRCTCA9IGlyTDJyaW5nVykgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJpbDJyIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcFcgaXJMMncpKSBsaXN0KCJsIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIGlyVGFwTCBpckwybCkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgaXJUYXBYb3JpZ2luIGlyTDJ4RGVsdGEpKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIGlyVGFwWW9yaWdpbiBpckwyeURlbHRhKSkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdGFwV2lkdGhJbklSIGlyTDJyaW5nVykpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgbGF5ZXIyZ3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgIlRSVUUiKSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChkYmlkMSA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiaWQyID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJpZDMgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYmlkNCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZDEgaXJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQyIGlyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMyBpck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDQgaXJOZXQpIHdoZW4oKGxheWVyMyAmJiBmdWxseVN0cmFwICYmIChmdWxseVN0cmFwICE9ICJGQUxTRSIpKSB3aGVuKGZpbGxlZFJpbmdzICh2aWEyRW5jID0gbWF4KGxheWVyMkVuY1ZpYTIgbGF5ZXIzRW5jVmlhMikpICh2aWEyV2lkdGhJUiA9IChpbm5lclJpbmdNZXRhbFdpZHRoIC0gKDIuMCAqIHZpYTJFbmMpKSkgKHZpYTJCTCA9ICh2aWEyV2lkdGhJUiArIHZpYTJTcGFjZSkpKSAoaXYyckVuYyA9ICgoaXJMMnJpbmdXIC0gaWYoZmlsbGVkUmluZ3MgdmlhMldpZHRoSVIgdmlhMldpZHRoKSkgLyAyLjApKSAodGVtcFNpemUgPSAoaXYyckVuYyAvIHZpYTJncmlkKSkgKGl2MnJFbmMgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiB2aWEyZ3JpZCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJpdjJyIiAoKGlyTDJ4RGVsdGEgKyBpdjJyRW5jKTooaXJMMnlEZWx0YSArIGl2MnJFbmMpKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIChpckwydyAtICgyLjAgKiBpdjJyRW5jKSkpIGxpc3QoImwiICJmbG9hdCIgKGlyTDJsIC0gKDIuMCAqIGl2MnJFbmMpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiAwLjApIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMkxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMldpZHRoSVIgdmlhMldpZHRoKSkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMlNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTJCTCBsb3dlckxlZnRCTCkpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMkJMIHVwcGVyTGVmdEJMKSkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB2aWEyQkwgbG93ZXJSaWdodEJMKSkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB2aWEyQkwgdXBwZXJSaWdodEJMKSkgbGlzdCgiYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCIgImJvb2xlYW4iICJGQUxTRSIpIGxpc3QoImdyaWQiICJmbG9hdCIgdmlhMmdyaWQpKSkgaWYoKGlubmVyUmluZ01ldGFsV2lkdGggPiAwLjApIHRoZW4gKGlyTDN3ID0gaXJMMncpIChpckwzbCA9IGlyTDJsKSAoaXJMM3hEZWx0YSA9IGlyTDJ4RGVsdGEpIChpckwzeURlbHRhID0gaXJMMnlEZWx0YSkgKGlyTDNyaW5nVyA9IG1heCgoKDIuMCAqIGlyTGF5ZXIzRW5jVmlhMikgKyB2aWEyV2lkdGgpIGlubmVyUmluZ01ldGFsV2lkdGgpKSBlbHNlIChpckwzdyA9IChpckwydyArICgtMi4wICogaXYyckVuYykgKyAoMi4wICogaXJMYXllcjNFbmNWaWEyKSkpIChpckwzbCA9IChpckwybCArICgtMi4wICogaXYyckVuYykgKyAoMi4wICogaXJMYXllcjNFbmNWaWEyKSkpIChpckwzeERlbHRhID0gKGlyTDJ4RGVsdGEgKyBpdjJyRW5jICsgKC0gaXJMYXllcjNFbmNWaWEyKSkpIChpckwzeURlbHRhID0gKGlyTDJ5RGVsdGEgKyBpdjJyRW5jICsgKC0gaXJMYXllcjNFbmNWaWEyKSkpIChpckwzcmluZ1cgPSAoKDIuMCAqIGlyTGF5ZXIzRW5jVmlhMikgKyB2aWEyV2lkdGgpKSkgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gaXJMM3JpbmdXKSAodXBwZXJMZWZ0QkwgPSBpckwzcmluZ1cpIChsb3dlclJpZ2h0QkwgPSBpckwzcmluZ1cpICh1cHBlclJpZ2h0QkwgPSBpckwzcmluZ1cpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAiaWwzciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaXJMM3cpIGxpc3QoImwiICJmbG9hdCIgaXJMM2wpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaXJMM3hEZWx0YSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpckwzeURlbHRhKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpckwzcmluZ1cpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgbGF5ZXIzZ3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgdCkpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQxIGlyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBpck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDMgaXJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQ0IGlyTmV0KSkgKHBpbiA9IChkYkNyZWF0ZVBpbiBpck5ldCBkYmlkMSkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW4gPSAoZGJDcmVhdGVQaW4gaXJOZXQgZGJpZDIpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluID0gKGRiQ3JlYXRlUGluIGlyTmV0IGRiaWQzKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbiA9IChkYkNyZWF0ZVBpbiBpck5ldCBkYmlkNCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpICh0YXBXaWR0aEluT1IgPSBtYXgob3V0ZXJSaW5nVGFwV2lkdGggKCgyLjAgKiBvdXRlclJpbmdUYXBFbmNWaWExKSArIHZpYTFXaWR0aCkpKSAob3V0ZXJUYXBEZWx0YSA9ICh3ZWxsVGFwU3BhY2UgKyB3ZWxsRW5jVGFwICsgdGFwV2lkdGhJbk9SKSkgKG9yVGFwWG9yaWdpbiA9IChpclRhcFhvcmlnaW4gLSBvdXRlclRhcERlbHRhKSkgKG9yVGFwWW9yaWdpbiA9IChpclRhcFlvcmlnaW4gLSBvdXRlclRhcERlbHRhKSkgKG9yVGFwVyA9IChpclRhcFcgKyAoMi4wICogb3V0ZXJUYXBEZWx0YSkpKSAob3JUYXBMID0gKGlyVGFwTCArICgyLjAgKiBvdXRlclRhcERlbHRhKSkpIHdoZW4oKGxheWVyMyAmJiBmdWxseVN0cmFwICYmIChmdWxseVN0cmFwICE9ICJGQUxTRSIpKSAob3JMYXllcjNYb3JpZ2luQSA9IChpckwzeERlbHRhIC0gb3JpckxheWVyM1NwYWNlIC0gb3JMYXllcjNXaWR0aCkpIChvckxheWVyM1hvcmlnaW5CID0gKG9yVGFwWG9yaWdpbiArICh0YXBXaWR0aEluT1IgLyAyLjApICsgKG9yTGF5ZXIzV2lkdGggLyAtMi4wKSkpIHdoZW4oKG9yTGF5ZXIzWG9yaWdpbkEgPCBvckxheWVyM1hvcmlnaW5CKSAoZXh0cmFTcGFjZSA9IChvckxheWVyM1hvcmlnaW5CIC0gb3JMYXllcjNYb3JpZ2luQSkpICh0ZW1wU2l6ZSA9IChleHRyYVNwYWNlIC8gdGFwR3JpZCkpIChleHRyYVNwYWNlID0gKGZpeCgodGVtcFNpemUgKyAwLjk5OSkpICogdGFwR3JpZCkpIChvclRhcFhvcmlnaW4gPSAob3JUYXBYb3JpZ2luIC0gZXh0cmFTcGFjZSkpIChvclRhcFlvcmlnaW4gPSAob3JUYXBZb3JpZ2luIC0gZXh0cmFTcGFjZSkpIChvclRhcFcgPSAob3JUYXBXICsgKDIuMCAqIGV4dHJhU3BhY2UpKSkgKG9yVGFwTCA9IChvclRhcEwgKyAoMi4wICogZXh0cmFTcGFjZSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJvd3IiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIChvclRhcFcgKyAoMi4wICogd2VsbEVuY1RhcCkpKSBsaXN0KCJsIiAiZmxvYXQiIChvclRhcEwgKyAoMi4wICogd2VsbEVuY1RhcCkpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIChvclRhcFhvcmlnaW4gLSB3ZWxsRW5jVGFwKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiAob3JUYXBZb3JpZ2luIC0gd2VsbEVuY1RhcCkpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiICh0YXBXaWR0aEluT1IgKyAoMi4wICogd2VsbEVuY1RhcCkpKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgd2VsbEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgd2VsbExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB3ZWxsTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHdlbGxMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgd2VsbExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIGlmKHRhcEVkZ2VzQXQ0NSB0aGVuIChiZXZlbExlbmd0aCA9ICgwLjYgKiB0YXBXaWR0aEluT1IpKSAoYmV2ZWxMZW5ndGggPSAocm91bmQoKChiZXZlbExlbmd0aCAvIHRhcEdyaWQpICsgMC4wMDEpKSAqIHRhcEdyaWQpKSAobG93ZXJMZWZ0QkwgPSBiZXZlbExlbmd0aCkgKHVwcGVyTGVmdEJMID0gYmV2ZWxMZW5ndGgpIChsb3dlclJpZ2h0QkwgPSBiZXZlbExlbmd0aCkgKHVwcGVyUmlnaHRCTCA9IGJldmVsTGVuZ3RoKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgIm90ciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgb3JUYXBXKSBsaXN0KCJsIiAiZmxvYXQiIG9yVGFwTCkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBvclRhcFhvcmlnaW4pIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgb3JUYXBZb3JpZ2luKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiB0YXBXaWR0aEluT1IpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgdGFwR3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgIlRSVUUiKSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRhcExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgb3JOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRhcExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgb3JOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRhcExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgb3JOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRhcExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgb3JOZXQpIHdoZW4odGFwV2VsbEltcGxhbnQgKG90cmlYb3JpZ2luID0gKG9yVGFwWG9yaWdpbiAtIHRhcFdlbGxJbXBFbmMpKSAob3RyaVlvcmlnaW4gPSAob3JUYXBZb3JpZ2luIC0gdGFwV2VsbEltcEVuYykpIChvdHJpUmluZ1dpZHRoID0gKHRhcFdpZHRoSW5PUiArIHRhcFdlbGxJbXBFbmMgKyB0YXBXZWxsSW1wRW5jKSkgKG90cmlXID0gKG9yVGFwVyArIHRhcFdlbGxJbXBFbmMgKyB0YXBXZWxsSW1wRW5jKSkgKG90cmlMID0gKG9yVGFwTCArIHRhcFdlbGxJbXBFbmMgKyB0YXBXZWxsSW1wRW5jKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgIm90cmkiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIG90cmlXKSBsaXN0KCJsIiAiZmxvYXQiIG90cmlMKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIG90cmlYb3JpZ2luKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIG90cmlZb3JpZ2luKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiB0YXBXZWxsSW1wbGFudCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIG90cmlSaW5nV2lkdGgpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgbmlsKSBsaXN0KCJncmlkIiAiZmxvYXQiIHRhcEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkpIChvclZpYU9mZnNldCA9IChmaXgoKCgoKHRhcFdpZHRoSW5PUiAvIDIuMCkgLSAodmlhMVdpZHRoIC8gMi4wKSkgLyB2aWExZ3JpZCkgKyAwLjk5OSkpICogdmlhMWdyaWQpKSAoeENvb3JkID0gKG9yVGFwWG9yaWdpbiArIG1heChvclZpYU9mZnNldCBvdXRlclJpbmdUYXBFbmNWaWExKSkpICh5Q29vcmQgPSAob3JUYXBZb3JpZ2luICsgbWF4KG9yVmlhT2Zmc2V0IG91dGVyUmluZ1RhcEVuY1ZpYTEpKSkgKGxvd2VyTGVmdEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpICh1cHBlckxlZnRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAobG93ZXJSaWdodEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpICh1cHBlclJpZ2h0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgdW5sZXNzKChmaWxsZWRSaW5ncyB8fCBsYXllcjJFZGdlc0F0NDUgfHwgdGFwRWRnZXNBdDQ1KSAoZXh0cmFWaWExUmlnaHRPcmlnaW4gPSAoeENvb3JkICsgKG9yVGFwTCAtICgyLjAgKiBtYXgob3JWaWFPZmZzZXQgb3V0ZXJSaW5nVGFwRW5jVmlhMSkpKSArICgtIHZpYTFXaWR0aCkpKSAoZXh0cmFWaWExVG9wT3JpZ2luID0gKHlDb29yZCArIChvclRhcFcgLSAoMi4wICogbWF4KG9yVmlhT2Zmc2V0IG91dGVyUmluZ1RhcEVuY1ZpYTEpKSkgKyAoLSB2aWExV2lkdGgpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QoeENvb3JkIHlDb29yZCkgbGlzdCgoeENvb3JkICsgdmlhMVdpZHRoKSAoeUNvb3JkICsgdmlhMVdpZHRoKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdChleHRyYVZpYTFSaWdodE9yaWdpbiB5Q29vcmQpIGxpc3QoKGV4dHJhVmlhMVJpZ2h0T3JpZ2luICsgdmlhMVdpZHRoKSAoeUNvb3JkICsgdmlhMVdpZHRoKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdCh4Q29vcmQgZXh0cmFWaWExVG9wT3JpZ2luKSBsaXN0KCh4Q29vcmQgKyB2aWExV2lkdGgpIChleHRyYVZpYTFUb3BPcmlnaW4gKyB2aWExV2lkdGgpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdChsaXN0KGV4dHJhVmlhMVJpZ2h0T3JpZ2luIGV4dHJhVmlhMVRvcE9yaWdpbikgbGlzdCgoZXh0cmFWaWExUmlnaHRPcmlnaW4gKyB2aWExV2lkdGgpIChleHRyYVZpYTFUb3BPcmlnaW4gKyB2aWExV2lkdGgpKSkpKSBpZihsYXllcjMgdGhlbiAob3JMYXllcjNFbmNWaWEyID0gKChvckxheWVyM1dpZHRoIC0gdmlhMldpZHRoKSAvIDIuMCkpICh0ZW1wU2l6ZSA9IChvckxheWVyM0VuY1ZpYTIgLyBsYXllcjNncmlkKSkgKG9yTGF5ZXIzRW5jVmlhMiA9IChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIGxheWVyM2dyaWQpKSAob3V0ZXJSaW5nTWV0YWxXaWR0aCA9ICgoMi4wICogb3JMYXllcjNFbmNWaWEyKSArIHZpYTJXaWR0aCkpIChvckwydyA9IChvclRhcFcgKyAoLSB0YXBXaWR0aEluT1IpICsgb3V0ZXJSaW5nTWV0YWxXaWR0aCkpIChvckwybCA9IChvclRhcEwgKyAoLSB0YXBXaWR0aEluT1IpICsgb3V0ZXJSaW5nTWV0YWxXaWR0aCkpIChvckwyeERlbHRhID0gKG9yVGFwWG9yaWdpbiArICgodGFwV2lkdGhJbk9SICsgKC0gb3V0ZXJSaW5nTWV0YWxXaWR0aCkpIC8gMi4wKSkpIChvckwyeERlbHRhID0gKGZpeCgoKG9yTDJ4RGVsdGEgLyBsYXllcjJncmlkKSArIDAuOTk5KSkgKiBsYXllcjJncmlkKSkgKG9yTDJ5RGVsdGEgPSAob3JUYXBZb3JpZ2luICsgKCh0YXBXaWR0aEluT1IgKyAoLSBvdXRlclJpbmdNZXRhbFdpZHRoKSkgLyAyLjApKSkgKG9yTDJ5RGVsdGEgPSAoZml4KCgob3JMMnlEZWx0YSAvIGxheWVyMmdyaWQpICsgMC45OTkpKSAqIGxheWVyMmdyaWQpKSAob3JMMnJpbmdXID0gbWF4KCgoMi4wICogbGF5ZXIyRW5jVmlhMSkgKyB2aWExV2lkdGgpICgoMi4wICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyV2lkdGgpIG9yTGF5ZXIzV2lkdGgpKSBlbHNlIChvckwydyA9IChvclRhcFcgKyAoLTIuMCAqIG1heChvclZpYU9mZnNldCBvdXRlclJpbmdUYXBFbmNWaWExKSkgKyAoMi4wICogbGF5ZXIyRW5jVmlhMSkpKSAob3JMMmwgPSAob3JUYXBMICsgKC0yLjAgKiBtYXgob3JWaWFPZmZzZXQgb3V0ZXJSaW5nVGFwRW5jVmlhMSkpICsgKDIuMCAqIGxheWVyMkVuY1ZpYTEpKSkgKG9yTDJ4RGVsdGEgPSAoeENvb3JkICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSAob3JMMnlEZWx0YSA9ICh5Q29vcmQgKyAoLSBsYXllcjJFbmNWaWExKSkpIChvckwycmluZ1cgPSBtYXgoKCgyLjAgKiBsYXllcjJFbmNWaWExKSArIHZpYTFXaWR0aCkgKCgyLjAgKiBsYXllcjJFbmNWaWEyKSArIHZpYTJXaWR0aCkpKSkgdW5sZXNzKGZpbGxlZFJpbmdzIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIm92MXIiICh4Q29vcmQ6eUNvb3JkKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIChvclRhcFcgLSAoMi4wICogbWF4KG9yVmlhT2Zmc2V0IG91dGVyUmluZ1RhcEVuY1ZpYTEpKSkpIGxpc3QoImwiICJmbG9hdCIgKG9yVGFwTCAtICgyLjAgKiBtYXgob3JWaWFPZmZzZXQgb3V0ZXJSaW5nVGFwRW5jVmlhMSkpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiAwLjApIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMUxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdmlhMVdpZHRoKSBsaXN0KCJyaXZldFdpZHRoIiAiZmxvYXQiIHZpYTFXaWR0aCkgbGlzdCgicml2ZXRTcGFjZSIgImZsb2F0IiB2aWExU3BhY2UpIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCIgImJvb2xlYW4iICJGQUxTRSIpIGxpc3QoImdyaWQiICJmbG9hdCIgdmlhMWdyaWQpKSkpIHdoZW4oZmlsbGVkUmluZ3MgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcml2ZXRlZFJpbmdJZCAib3YxciIgKDA6MCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAob3JUYXBXIC0gKDIuMCAqIG91dGVyUmluZ1RhcEVuY1ZpYTEpIC0gKDIuMCAqIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSkgbGlzdCgibCIgImZsb2F0IiAob3JUYXBMIC0gKDIuMCAqIG91dGVyUmluZ1RhcEVuY1ZpYTEpIC0gKDIuMCAqIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiAob3JUYXBYb3JpZ2luICsgb3V0ZXJSaW5nVGFwRW5jVmlhMSArIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIChvclRhcFlvcmlnaW4gKyBvdXRlclJpbmdUYXBFbmNWaWExICsgaW5uZXJSaW5nVGFwRW5jVmlhMSkpIGxpc3QoInJpdmV0TGF5ZXIiICJsaXN0IiB2aWExTGF5ZXIpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiAodGFwV2lkdGhJbk9SIC0gb3V0ZXJSaW5nVGFwRW5jVmlhMSAtICgyLjAgKiBpbm5lclJpbmdUYXBFbmNWaWExKSkpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMVdpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTFTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTFncmlkKSkpKSBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSBvckwycmluZ1cpICh1cHBlckxlZnRCTCA9IG9yTDJyaW5nVykgKGxvd2VyUmlnaHRCTCA9IG9yTDJyaW5nVykgKHVwcGVyUmlnaHRCTCA9IG9yTDJyaW5nVykgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJvbDJyIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBXIC0gKDIuMCAqIG91dGVyUmluZ1RhcEVuY1ZpYTEpKSBvckwydykpIGxpc3QoImwiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwTCAtICgyLjAgKiBvdXRlclJpbmdUYXBFbmNWaWExKSkgb3JMMmwpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcFhvcmlnaW4gKyBvdXRlclJpbmdUYXBFbmNWaWExKSBvckwyeERlbHRhKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBZb3JpZ2luICsgb3V0ZXJSaW5nVGFwRW5jVmlhMSkgb3JMMnlEZWx0YSkpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIGxheWVyMikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzICh0YXBXaWR0aEluT1IgLSBvdXRlclJpbmdUYXBFbmNWaWExKSBvckwycmluZ1cpKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheWVyMmdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQxIG9yTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBvck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDMgb3JOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQ0IG9yTmV0KSB3aGVuKChsYXllcjMgJiYgZnVsbHlTdHJhcCAmJiAoZnVsbHlTdHJhcCAhPSAiRkFMU0UiKSkgKG92MnJFbmMgPSAoKG9yTDJyaW5nVyAtIHZpYTJXaWR0aCkgLyAyLjApKSAodGVtcFNpemUgPSAob3YyckVuYyAvIHZpYTJncmlkKSkgKG92MnJFbmMgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiB2aWEyZ3JpZCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpIGVsc2UgKGxvd2VyTGVmdEJMID0gdmlhMlNwYWNlKSAodXBwZXJMZWZ0QkwgPSB2aWEyU3BhY2UpIChsb3dlclJpZ2h0QkwgPSB2aWEyU3BhY2UpICh1cHBlclJpZ2h0QkwgPSB2aWEyU3BhY2UpKSB3aGVuKGZpbGxlZFJpbmdzICh2aWEyV2lkdGhPUiA9IChvckxheWVyM1dpZHRoIC0gKDIuMCAqIHZpYTJFbmMpKSkgKHZpYTJCTCA9ICh2aWEyV2lkdGhPUiArIHZpYTJTcGFjZSkpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIm92MnIiICgwOjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgKG9yVGFwVyAtICgyLjAgKiAodmlhMkVuYyArIG91dGVyUmluZ1RhcEVuY1ZpYTEpKSkpIGxpc3QoImwiICJmbG9hdCIgKG9yVGFwTCAtICgyLjAgKiAodmlhMkVuYyArIG91dGVyUmluZ1RhcEVuY1ZpYTEpKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgKG9yVGFwWG9yaWdpbiArIG91dGVyUmluZ1RhcEVuY1ZpYTEgKyB2aWEyRW5jKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiAob3JUYXBZb3JpZ2luICsgb3V0ZXJSaW5nVGFwRW5jVmlhMSArIHZpYTJFbmMpKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMkxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdmlhMldpZHRoT1IpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMldpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTJTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiB2aWEyQkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdmlhMkJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIHZpYTJCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB2aWEyQkwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTJncmlkKSkpKSB1bmxlc3MoZmlsbGVkUmluZ3MgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcml2ZXRlZFJpbmdJZCAib3YyciIgKChvckwyeERlbHRhICsgb3YyckVuYyk6KG9yTDJ5RGVsdGEgKyBvdjJyRW5jKSkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAob3JMMncgLSAoMi4wICogb3YyckVuYykpKSBsaXN0KCJsIiAiZmxvYXQiIChvckwybCAtICgyLjAgKiBvdjJyRW5jKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTJMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHZpYTJXaWR0aCkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMlNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTJncmlkKSkpKSAob3JMM3cgPSAob3JMMncgKyAoLTIuMCAqIG92MnJFbmMpICsgKDIuMCAqIG9yTGF5ZXIzRW5jVmlhMikpKSAob3JMM2wgPSAob3JMMmwgKyAoLTIuMCAqIG92MnJFbmMpICsgKDIuMCAqIG9yTGF5ZXIzRW5jVmlhMikpKSAob3JMM3hEZWx0YSA9IChvckwyeERlbHRhICsgb3YyckVuYyArICgtIG9yTGF5ZXIzRW5jVmlhMikpKSAob3JMM3lEZWx0YSA9IChvckwyeURlbHRhICsgb3YyckVuYyArICgtIG9yTGF5ZXIzRW5jVmlhMikpKSBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSBvckxheWVyM1dpZHRoKSAodXBwZXJMZWZ0QkwgPSBvckxheWVyM1dpZHRoKSAobG93ZXJSaWdodEJMID0gb3JMYXllcjNXaWR0aCkgKHVwcGVyUmlnaHRCTCA9IG9yTGF5ZXIzV2lkdGgpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib2wzciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwVyAtICgyLjAgKiBvdXRlclJpbmdUYXBFbmNWaWExKSkgb3JMM3cpKSBsaXN0KCJsIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcEwgLSAoMi4wICogb3V0ZXJSaW5nVGFwRW5jVmlhMSkpIG9yTDNsKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBYb3JpZ2luICsgb3V0ZXJSaW5nVGFwRW5jVmlhMSkgb3JMM3hEZWx0YSkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwWW9yaWdpbiArIG91dGVyUmluZ1RhcEVuY1ZpYTEpIG9yTDN5RGVsdGEpKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBvckxheWVyM1dpZHRoKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheWVyM2dyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iIHQpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQxID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJpZDIgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYmlkMyA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiaWQ0ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkMSBvck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDIgb3JOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQzIG9yTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkNCBvck5ldCkpIChwaW4gPSAoZGJDcmVhdGVQaW4gb3JOZXQgZGJpZDEpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluID0gKGRiQ3JlYXRlUGluIG9yTmV0IGRiaWQyKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbiA9IChkYkNyZWF0ZVBpbiBvck5ldCBkYmlkMykpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW4gPSAoZGJDcmVhdGVQaW4gb3JOZXQgZGJpZDQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSkAKGRpZmZMYXllciBnYXRlTGF5ZXIgcmdhdGVMYXllciB3ZWxsTGF5ZXIgdGFwTGF5ZXIgdmlhMUxheWVyIGxheWVyMiB2aWEyTGF5ZXIgbGF5ZXIzIGlkTGF5ZXIgZGlmZkltcGxhbnQgZGlmZkltcEVuYyBkaWZmQ29yZUltcGxhbnQgZGlmZkNvcmVJbXBFbmMgdGFwV2VsbEltcGxhbnQgdGFwV2VsbEltcEVuYyB0YXBTdWJJbXBsYW50IHRhcFN1YkltcEVuYyBzcmNWaWFHYXRlU3BhY2UgZHJuVmlhR2F0ZVNwYWNlIHZpYUV4dERpZmZZIG1pbkRpZmZUYXBSaW5nU3BhY2UgR2F0ZVRvR2F0ZVNwYWNlIGZsYXJlWWFtb3VudF9vdXQgZmxhcmVZYW1vdW50X2luIGZsYXJlWWV4dGVuc2lvbiB2aWExV2lkdGggdmlhMVNwYWNlIHRhcEVuY1ZpYTEgaW5uZXJSaW5nVGFwRW5jVmlhMSBvdXRlclJpbmdUYXBFbmNWaWExIHdlbGxFbmNUYXAgRVNEbndFbmNWaWExIEVTRG53R2F0ZVNwIGlubmVyUmluZ1RhcFdpZHRoIG91dGVyUmluZ1RhcFdpZHRoIHdlbGxUYXBTcGFjZSBsYXllcjJFbmNWaWExIHZpYTJXaWR0aCB2aWEyU3BhY2UgdmlhMVZpYTJTcGFjZSBsYXllcjJFbmNWaWEyIGxheWVyMldpZHRoIGxheWVyM0VuY1ZpYTIgbGF5ZXIzV2lkdGggaW5uZXJSaW5nTWV0YWxXaWR0aCBpckxheWVyM0VuY1ZpYTIgb3JMYXllcjNXaWR0aCBtaW5XIG1heFcgbWluVG90YWxXIGdlbmVyaWNSaW5nTmFtZSByaXZldGVkUmluZ05hbWUgZmxhcmVkR2F0ZU5hbWUgZGlmZkdyaWQgdGFwR3JpZCB3ZWxsR3JpZCBwb2x5R3JpZCB2aWExZ3JpZCBsYXllcjJncmlkIHZpYTJncmlkIGxheWVyM2dyaWQgdGFwRWRnZXNBdDQ1IGxheWVyMkVkZ2VzQXQ0NSBsYXllcjNFZGdlc0F0NDUgbm9UYXBOd2VsbCBodkxheWVyIGh2RGlmZkVuY2xvc3VyZSBtb2RlbFRleHRMYXllciBtb2RlbFRleHRMYXllclNpemUgbW9kZWxUZXh0IG1vZGVsV21heCBtb2RlbFdtaW4gbW9kZWxMbWF4IG1vZGVsTG1pbiBmaWxsZWRSaW5ncyB3IGwgbSBleHRyYUxlZnRTcGFjZSBleHRyYVJpZ2h0U3BhY2Ugc2hyaW5rUGVyY2VudCBleHRyYVNyY1NwYWNlIGV4dHJhRHJuU3BhY2UgZnVsbHlTdHJhcCBkcm5WaWFZc3BhY2VSaW5nVmlhVG9wIGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgdmlhRXh0RGlmZlggb3JpckxheWVyM1NwYWNlIGdOZXQgc05ldCBkTmV0IGlyTmV0IG9yTmV0IHNjYWxlTXVsdCB2aWExUG9seUdyaWQgc2l6ZUFuZEdyaWQgdGhlU2l6ZSB0aGVHcmlkIHRlbXBTaXplIGtsdWRnZSB0bXBPckxheWVyV2lkdGggdG1wT3JMYXllckdyaWQgdG1wVmlhV2lkdGggdG1wVmlhR3JpZCB2aWExUGl0Y2ggdGFyZ2V0Um93cyByb3dzT2ZDb250YWN0cyBmbGFyZWRHYXRlSWQgcmluZ0lkIHJpdmV0ZWRSaW5nSWQgZGlmZlhvcmlnaW4gZGlmZllvcmlnaW4gdG90YWxEcm5MZW5ndGggdG90YWxTcmNMZW5ndGggZGlmZlhlbmQgZGlmZlllbmQgRVNEbndUV2lkdGhEcm4gRVNEbndUV2lkdGhTcmMgRVNEbndUWG9yaWdpbiBFU0Rud1RZb3JpZ2luIEVTRG53VFllbmQgZGlmZlhsb29wIGRiaWQgc2VjdGlvbiBkcm5EaWZmWGVuZCBzcmNEaWZmWGVuZCBodmxseCBodmxseSBodnVyeCBodnVyeSBnYXRlWG9mZnNldCBnYXRlTnVtIGluc3QgbWFzdGVyIG1vZGVsVGV4dFggbW9kZWxUZXh0WSBwaW5pZCB2aWExWG9yaWdpbiB2aWExWW9yaWdpbiB2aWExWGRlbHRhIHRoZU5ldCBsYXllcjJMIGxheWVyMkxhIGxheWVyMkRlbHRhVmlhMSBkZWx0YSB2aWEyUGl0Y2ggbGF5ZXIyVyBsYXllcjJXYSByb3dzT2ZDb250YWN0czIgbGF5ZXIyWURlbHRhVmlhMSBjb2x1bW4gdmlhMVhlbmQgdmlhMVlsb29wIHJvdyBsYXllcjJYb3JpZ2luIGxheWVyMllvcmlnaW4gbGF5ZXIyWWVuZCBsMmJ2bENudHJsIHZpYTJYb3JpZ2luIHZpYTJYZW5kIHZpYTJZb3JpZ2luIHZpYTJZbG9vcCBsYXllcjNYb3JpZ2luIGwzYnZsQ250cmwgdGFwV2lkdGhJbklSIGlyVmlhT2Zmc2V0IGlyVGFwWG9yaWdpbiBpclRhcFlvcmlnaW4gaXJUYXBMIGlyVGFwVyBiZXZlbExlbmd0aCBsb3dlckxlZnRCTCB1cHBlckxlZnRCTCBsb3dlclJpZ2h0QkwgdXBwZXJSaWdodEJMIHRoZU1hc3RlciBpdHJpWG9yaWdpbiBpdHJpWW9yaWdpbiBpdHJpUmluZ1dpZHRoIGl0cmlXIGl0cmlMIHhDb29yZCB5Q29vcmQgdmlhMVdpZHRoSW5JUiBpckwydyBpckwybCBpckwyeERlbHRhIGlyTDJ5RGVsdGEgaXJMMnJpbmdXIGRiaWQxIGRiaWQyIGRiaWQzIGRiaWQ0IHZpYTJFbmMgdmlhMldpZHRoSVIgdmlhMkJMIGl2MnJFbmMgaXJMM3cgaXJMM2wgaXJMM3hEZWx0YSBpckwzeURlbHRhIGlyTDNyaW5nVyBwaW4gdGFwV2lkdGhJbk9SIG91dGVyVGFwRGVsdGEgb3JUYXBYb3JpZ2luIG9yVGFwWW9yaWdpbiBvclRhcFcgb3JUYXBMIG9yTGF5ZXIzWG9yaWdpbkEgb3JMYXllcjNYb3JpZ2luQiBleHRyYVNwYWNlIG90cmlYb3JpZ2luIG90cmlZb3JpZ2luIG90cmlSaW5nV2lkdGggb3RyaVcgb3RyaUwgb3JWaWFPZmZzZXQgZXh0cmFWaWExUmlnaHRPcmlnaW4gZXh0cmFWaWExVG9wT3JpZ2luIG9yTGF5ZXIzRW5jVmlhMiBvdXRlclJpbmdNZXRhbFdpZHRoIG9yTDJ3IG9yTDJsIG9yTDJ4RGVsdGEgb3JMMnlEZWx0YSBvckwycmluZ1cgb3YyckVuYyB2aWEyV2lkdGhPUiBvckwzdyBvckwzbCBvckwzeERlbHRhIG9yTDN5RGVsdGEpACgodyAwLjApIChsIDAuMCkgKG0gMCkgKGV4dHJhTGVmdFNwYWNlIDAuMCkgKGV4dHJhUmlnaHRTcGFjZSAwLjApIChzaHJpbmtQZXJjZW50IDAuMCkgKGV4dHJhU3JjU3BhY2UgMC4wKSAoZXh0cmFEcm5TcGFjZSAwLjApIChmdWxseVN0cmFwICJGQUxTRSIpIChkcm5WaWFZc3BhY2VSaW5nVmlhVG9wIDAuMCkgKGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgMC4wKSAodmlhRXh0RGlmZlggMC4wKSAob3JpckxheWVyM1NwYWNlIDAuMCkpACgoZGlmZkxheWVyICJ5MCIpIChnYXRlTGF5ZXIgInkxIikgKHJnYXRlTGF5ZXIgInkyIikgKHdlbGxMYXllciAieTMiKSAodGFwTGF5ZXIgInk0IikgKHZpYTFMYXllciAieTUiKSAobGF5ZXIyICJ5NiIpICh2aWEyTGF5ZXIgInk3IikgKGxheWVyMyAieTgiKSAoaWRMYXllciAieTkiKSAoZGlmZkltcGxhbnQgbmlsKSAoZGlmZkltcEVuYyAwLjApIChkaWZmQ29yZUltcGxhbnQgbmlsKSAoZGlmZkNvcmVJbXBFbmMgMC4wKSAodGFwV2VsbEltcGxhbnQgbmlsKSAodGFwV2VsbEltcEVuYyAwLjApICh0YXBTdWJJbXBsYW50IG5pbCkgKHRhcFN1YkltcEVuYyAwLjApIChzcmNWaWFHYXRlU3BhY2UgMC4wKSAoZHJuVmlhR2F0ZVNwYWNlIDAuMCkgKHZpYUV4dERpZmZZIDAuMCkgKG1pbkRpZmZUYXBSaW5nU3BhY2UgMC4wKSAoR2F0ZVRvR2F0ZVNwYWNlIDAuMCkgKGZsYXJlWWFtb3VudF9vdXQgMC4wKSAoZmxhcmVZYW1vdW50X2luIDAuMCkgKGZsYXJlWWV4dGVuc2lvbiAwLjApICh2aWExV2lkdGggMC4wKSAodmlhMVNwYWNlIDAuMCkgKHRhcEVuY1ZpYTEgMC4wKSAoaW5uZXJSaW5nVGFwRW5jVmlhMSAwLjApIChvdXRlclJpbmdUYXBFbmNWaWExIDAuMCkgKHdlbGxFbmNUYXAgMC4wKSAoRVNEbndFbmNWaWExIDAuMCkgKEVTRG53R2F0ZVNwIDAuMCkgKGlubmVyUmluZ1RhcFdpZHRoIDAuMCkgKG91dGVyUmluZ1RhcFdpZHRoIDAuMCkgKHdlbGxUYXBTcGFjZSAwLjApIChsYXllcjJFbmNWaWExIDAuMCkgKHZpYTJXaWR0aCAwLjApICh2aWEyU3BhY2UgMC4wKSAodmlhMVZpYTJTcGFjZSAwLjApIChsYXllcjJFbmNWaWEyIDAuMCkgKGxheWVyMldpZHRoIDAuMCkgKGxheWVyM0VuY1ZpYTIgMC4wKSAobGF5ZXIzV2lkdGggMC4wKSAoaW5uZXJSaW5nTWV0YWxXaWR0aCAwLjApIChpckxheWVyM0VuY1ZpYTIgMC4wKSAob3JMYXllcjNXaWR0aCAwLjApIChtaW5XIDAuMCkgKG1heFcgMC4wKSAobWluVG90YWxXIDAuMCkgKGdlbmVyaWNSaW5nTmFtZSAicmluZyIpIChyaXZldGVkUmluZ05hbWUgInJpdmV0UmluZyIpIChmbGFyZWRHYXRlTmFtZSAiZmxhcmVkR2F0ZSIpIChkaWZmR3JpZCAwLjApICh0YXBHcmlkIDAuMCkgKHdlbGxHcmlkIDAuMCkgKHBvbHlHcmlkIDAuMCkgKHZpYTFncmlkIDAuMCkgKGxheWVyMmdyaWQgMC4wKSAodmlhMmdyaWQgMC4wKSAobGF5ZXIzZ3JpZCAwLjApICh0YXBFZGdlc0F0NDUgbmlsKSAobGF5ZXIyRWRnZXNBdDQ1IG5pbCkgKGxheWVyM0VkZ2VzQXQ0NSBuaWwpIChub1RhcE53ZWxsIG5pbCkgKGh2TGF5ZXIgbmlsKSAoaHZEaWZmRW5jbG9zdXJlIDAuMCkgKG1vZGVsVGV4dExheWVyIGxpc3QoImhpbGl0ZSIgImRyYXdpbmciKSkgKG1vZGVsVGV4dExheWVyU2l6ZSAwLjIpIChtb2RlbFRleHQgIiIpIChtb2RlbFdtYXggMC4wKSAobW9kZWxXbWluIDAuMCkgKG1vZGVsTG1heCAwLjApIChtb2RlbExtaW4gMC4wKSAoZmlsbGVkUmluZ3MgbmlsKSkAKChuZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAicHBkIikpIChkYkNyZWF0ZVRlcm0gbmV0ICJuIiAiaW5wdXRPdXRwdXQiKSAocmluZ0lkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGdlbmVyaWNSaW5nTmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHJpbmdJZCBlcnJvcigicGx1Z2dlZFBhZENsYXNzU2xvdDogIENhbm5vdCBmaW5kL29wZW4gZ2VuZXJpYyByaW5nICVzXG4iIGdlbmVyaWNSaW5nTmFtZSkpIHVubGVzcygocmluZ0lkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoInBsdWdnZWRQYWRDbGFzc1Nsb3Q6ICBSaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIGdlbmVyaWNSaW5nTmFtZSkpIChzMiA9IHNxcnQoMi4wKSkgKHZpYTFfNlJvd3MgPSBjYWFyKHZpYUFycmF5U2l6ZSkpICh2aWExXzZDb2xzID0gY2FkYXIodmlhQXJyYXlTaXplKSkgKHZpYTdSb3dzID0gY2FhZHIodmlhQXJyYXlTaXplKSkgKHZpYTdDb2xzID0gY2FkYWRyKHZpYUFycmF5U2l6ZSkpICh0b3BWaWFMYXllck5hbWUgPSBjYXIodG9wVmlhTGF5ZXIpKSAodG9wVmlhV2lkdGggPSBudGgoMiB0b3BWaWFMYXllcikpICh0b3BWaWFTcGFjZSA9IG50aCgxIHRvcFZpYUxheWVyKSkgKGJldmVsQ3V0TGVuZ3RoID0gKGJldmVsQ3V0TGVuZ3RoIC8gczIpKSAobWF4QmV2ZWxDdXRMZW5ndGggPSAobWF4QmV2ZWxDdXRMZW5ndGggLyBzMikpIChlbmNQYWQgPSB0b3BMYXllckVuY1BhZCkgKEFycmF5X2xlbmd0aCA9IChsIC0gKDIgKiAobWV0UmluZ1dpZHRoIC0gZW5jUGFkKSkpKSAoQXJyYXlfd2lkdGggPSAodyAtICgyICogKG1ldFJpbmdXaWR0aCAtIGVuY1BhZCkpKSkgKG1ldExpbmVQaXRjaCA9IChtZXRMaW5lV2lkdGggKyBtZXRMaW5lU3BhY2UpKSAobnVtVmVyTGluZXMgPSAoZmxvb3IgKChBcnJheV9sZW5ndGggLSBlbmRNZXRMaW5lU3BhY2UpIC8gbWV0TGluZVBpdGNoKSkpIChudW1Ib3JMaW5lcyA9IChmbG9vciAoKEFycmF5X3dpZHRoIC0gZW5kTWV0TGluZVNwYWNlKSAvIG1ldExpbmVQaXRjaCkpKSAoYWRkU3BhY2VWZXIgPSAoKChBcnJheV9sZW5ndGggLSAobnVtVmVyTGluZXMgKiBtZXRMaW5lUGl0Y2gpKSArIG1ldExpbmVTcGFjZSkgLyAyKSkgKGFkZFNwYWNlSG9yID0gKCgoQXJyYXlfd2lkdGggLSAobnVtSG9yTGluZXMgKiBtZXRMaW5lUGl0Y2gpKSArIG1ldExpbmVTcGFjZSkgLyAyKSkgY29uZCgoKHNocmlua1BlcmNlbnQgPT0gMC4wKSAoc2NhbGVNdWx0ID0gMS4wKSkgKHQgKHNjYWxlTXVsdCA9ICgxMDAuMCAvICgxMDAuMCAtIHNocmlua1BlcmNlbnQpKSkgZm9yZWFjaChzaXplQW5kR3JpZCBsaXN0KGxpc3QoJ3cgcGFkR3JpZCkgbGlzdCgnbCBwYWRHcmlkKSBsaXN0KCd0b3BMYXllckVuY1BhZCB0b3BMYXllckdyaWQpIGxpc3QoJ21ldFJpbmdXaWR0aCBwYWRHcmlkKSBsaXN0KCdtZXRMaW5lV2lkdGggcGFkR3JpZCkgbGlzdCgnbWV0TGluZVNwYWNlIHBhZEdyaWQpIGxpc3QoJ2VuZE1ldExpbmVTcGFjZSBwYWRHcmlkKSBsaXN0KCd0b3BWaWFXaWR0aCBwYWRHcmlkKSBsaXN0KCd0b3BWaWFTcGFjZSBwYWRHcmlkKSkgKHRoZVNpemUgPSBjYXIoc2l6ZUFuZEdyaWQpKSAodGhlR3JpZCA9IGNhZHIoc2l6ZUFuZEdyaWQpKSAodGVtcFNpemUgPSAoKGV2YWwodGhlU2l6ZSkgKiBzY2FsZU11bHQpIC8gdGhlR3JpZCkpIHNldCh0aGVTaXplIChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIHRoZUdyaWQpKSkpKSAoYmV2ZWxDdXRMZW5ndGggPSAocGFkR3JpZCAqIGZpeCgoMC45OTkgKyAoKGJldmVsQ3V0TGVuZ3RoICogc2NhbGVNdWx0KSAvIHBhZEdyaWQpKSkpKSB3aGVuKChiZXZlbEN1dExlbmd0aCA+IG1heEJldmVsQ3V0TGVuZ3RoKSAoYmV2ZWxDdXRMZW5ndGggPSAocGFkR3JpZCAqIGZpeCgoMWUtMDUgKyAobWF4QmV2ZWxDdXRMZW5ndGggLyBwYWRHcmlkKSkpKSkpIChwYWRYc2lkZSA9IChsIC0gKDIuMCAqIGJldmVsQ3V0TGVuZ3RoKSkpIChwYWRZc2lkZSA9ICh3IC0gKDIuMCAqIGJldmVsQ3V0TGVuZ3RoKSkpIChwYWRQb2ludHMgPSBsaXN0KChiZXZlbEN1dExlbmd0aDowLjApICgocGFkWHNpZGUgKyBiZXZlbEN1dExlbmd0aCk6MC4wKSAobDpiZXZlbEN1dExlbmd0aCkgKGw6KGJldmVsQ3V0TGVuZ3RoICsgcGFkWXNpZGUpKSAoKHBhZFhzaWRlICsgYmV2ZWxDdXRMZW5ndGgpOncpIChiZXZlbEN1dExlbmd0aDp3KSAoMC4wOihiZXZlbEN1dExlbmd0aCArIHBhZFlzaWRlKSkgKDAuMDpiZXZlbEN1dExlbmd0aCkpKSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgcGFkTGF5ZXIgcGFkUG9pbnRzKSAodGhpc0xheWVyID0gdG9wTGF5ZXIpIChleHRyYU9mZnNldCA9ICgoZW5jUGFkICogKDIuMCAtIHMyKSkgLyB0b3BMYXllckdyaWQpKSAoZXh0cmFPZmZzZXQgPSAodG9wTGF5ZXJHcmlkICogZml4KCgwLjk5OSArIGV4dHJhT2Zmc2V0KSkpKSAoZXh0cmFPZmZzZXQgPSAoZXh0cmFPZmZzZXQgLSB0b3BMYXllckdyaWQpKSAodGhlTGVuZ3RoID0gKGwgKyAoMi4wICogZW5jUGFkKSkpIChsZW5ndGhTaWRlID0gKHRoZUxlbmd0aCAtICgyLjAgKiBiZXZlbEN1dExlbmd0aCkpKSAodGhlV2lkdGggPSAodyArICgyLjAgKiBlbmNQYWQpKSkgKHdpZHRoU2lkZSA9ICh0aGVXaWR0aCAtICgyLjAgKiBiZXZlbEN1dExlbmd0aCkpKSAodGhlQmV2ZWwgPSAoYmV2ZWxDdXRMZW5ndGggKyBleHRyYU9mZnNldCkpICh0aGVQb2ludHMgPSBsaXN0KCgoKC0gZW5jUGFkKSArIGJldmVsQ3V0TGVuZ3RoKTooLSBlbmNQYWQpKSAoKCgtIGVuY1BhZCkgKyBiZXZlbEN1dExlbmd0aCArIGxlbmd0aFNpZGUpOigtIGVuY1BhZCkpICgoKC0gZW5jUGFkKSArIHRoZUxlbmd0aCk6KCgtIGVuY1BhZCkgKyBiZXZlbEN1dExlbmd0aCkpICgoKC0gZW5jUGFkKSArIHRoZUxlbmd0aCk6KCgtIGVuY1BhZCkgKyBiZXZlbEN1dExlbmd0aCArIHdpZHRoU2lkZSkpICgoKC0gZW5jUGFkKSArIGJldmVsQ3V0TGVuZ3RoICsgbGVuZ3RoU2lkZSk6KCgtIGVuY1BhZCkgKyB0aGVXaWR0aCkpICgoKC0gZW5jUGFkKSArIGJldmVsQ3V0TGVuZ3RoKTooKC0gZW5jUGFkKSArIHRoZVdpZHRoKSkgKCgtIGVuY1BhZCk6KCgtIGVuY1BhZCkgKyBiZXZlbEN1dExlbmd0aCArIHdpZHRoU2lkZSkpICgoLSBlbmNQYWQpOigoLSBlbmNQYWQpICsgYmV2ZWxDdXRMZW5ndGgpKSkpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRoaXNMYXllciB0aGVQb2ludHMpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIG5ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgImJvdFJpbmciICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHRoZVdpZHRoKSBsaXN0KCJsIiAiZmxvYXQiIHRoZUxlbmd0aCkgbGlzdCgieE9mZnNldCIgImZsb2F0IiAoLSB0b3BMYXllckVuY1BhZCkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgKC0gdG9wTGF5ZXJFbmNQYWQpKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiB0b3BMYXllckVuY1BhZCkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgYmV2ZWxDdXRMZW5ndGgpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgYmV2ZWxDdXRMZW5ndGgpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgYmV2ZWxDdXRMZW5ndGgpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgYmV2ZWxDdXRMZW5ndGgpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iICJUUlVFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB0b3BMYXllckdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoTWV0TGF5ZXJzID0gYXBwZW5kKG9kZE1ldExheWVycyBldmVuTWV0TGF5ZXJzKSkgZm9yZWFjaChsYXllciBNZXRMYXllcnMgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGlzdChsYXllciAiZHJhd2luZyIpICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsaXN0KGxheWVyICJkcmF3aW5nIikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxpc3QobGF5ZXIgImRyYXdpbmciKSAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGlzdChsYXllciAiZHJhd2luZyIpICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgImJvdFJpbmcxIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiB3KSBsaXN0KCJsIiAiZmxvYXQiIGwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgKG1ldFJpbmdXaWR0aCArICgtIHRvcExheWVyRW5jUGFkKSkpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJncmlkIiAiZmxvYXQiIHRvcExheWVyR3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgIlRSVUUiKSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIGZvcmVhY2gobGF5ZXIgTWV0TGF5ZXJzIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxpc3QobGF5ZXIgImRyYXdpbmciKSAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGlzdChsYXllciAiZHJhd2luZyIpICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsaXN0KGxheWVyICJkcmF3aW5nIikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxpc3QobGF5ZXIgImRyYXdpbmciKSAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkpIChkYkNsb3NlIHJpbmdJZCkgKEFycmF5X2xlbmd0aCA9IChsIC0gKDIgKiAobWV0UmluZ1dpZHRoIC0gZW5jUGFkKSkpKSAoQXJyYXlfd2lkdGggPSAodyAtICgyICogKG1ldFJpbmdXaWR0aCAtIGVuY1BhZCkpKSkgKG1ldExpbmVQaXRjaCA9IChtZXRMaW5lV2lkdGggKyBtZXRMaW5lU3BhY2UpKSAobnVtVmVyTGluZXMgPSAoZmxvb3IgKChBcnJheV9sZW5ndGggLSBlbmRNZXRMaW5lU3BhY2UpIC8gbWV0TGluZVBpdGNoKSkpIChudW1Ib3JMaW5lcyA9IChmbG9vciAoKEFycmF5X3dpZHRoIC0gZW5kTWV0TGluZVNwYWNlKSAvIG1ldExpbmVQaXRjaCkpKSAoYWRkU3BhY2VWZXIgPSAoKChBcnJheV9sZW5ndGggLSAobnVtVmVyTGluZXMgKiBtZXRMaW5lUGl0Y2gpKSArIG1ldExpbmVTcGFjZSkgLyAyKSkgKGFkZFNwYWNlSG9yID0gKCgoQXJyYXlfd2lkdGggLSAobnVtSG9yTGluZXMgKiBtZXRMaW5lUGl0Y2gpKSArIG1ldExpbmVTcGFjZSkgLyAyKSkgKGFkZFNwYWNlSG9yX3RtcCA9ICgoYWRkU3BhY2VIb3IgKiBzY2FsZU11bHQpIC8gcGFkR3JpZCkpIChhZGRTcGFjZUhvciA9IChmaXgoKGFkZFNwYWNlSG9yX3RtcCArIDAuOTk5KSkgKiBwYWRHcmlkKSkgKGFkZFNwYWNlVmVyX3RtcCA9ICgoYWRkU3BhY2VWZXIgKiBzY2FsZU11bHQpIC8gcGFkR3JpZCkpIChhZGRTcGFjZVZlciA9IChmaXgoKGFkZFNwYWNlVmVyX3RtcCArIDAuOTk5KSkgKiBwYWRHcmlkKSkgKHRoZVggPSAoKG1ldFJpbmdXaWR0aCAtIGVuY1BhZCkgKyBhZGRTcGFjZVZlcikpICh0aGVZID0gKG1ldFJpbmdXaWR0aCAtIGVuY1BhZCkpIGZvcihudW1iZXIgMSBudW1WZXJMaW5lcyBmb3JlYWNoKGxheWVyIG9kZE1ldExheWVycyAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdChsYXllciAiZHJhd2luZyIpIGxpc3QoKHRoZVg6dGhlWSkgKCh0aGVYICsgbWV0TGluZVdpZHRoKToodGhlWSArIEFycmF5X3dpZHRoKSkpKSkgKHRoZVggPSAodGhlWCArIG1ldExpbmVQaXRjaCkpKSAodGhlWSA9ICgobWV0UmluZ1dpZHRoIC0gZW5jUGFkKSArIGFkZFNwYWNlSG9yKSkgKHRoZVggPSAobWV0UmluZ1dpZHRoIC0gZW5jUGFkKSkgZm9yKG51bWJlciAxIG51bUhvckxpbmVzIGZvcmVhY2gobGF5ZXIgZXZlbk1ldExheWVycyAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdChsYXllciAiZHJhd2luZyIpIGxpc3QoKHRoZVg6dGhlWSkgKCh0aGVYICsgQXJyYXlfbGVuZ3RoKToodGhlWSArIG1ldExpbmVXaWR0aCkpKSkpICh0aGVZID0gKHRoZVkgKyBtZXRMaW5lUGl0Y2gpKSkgZm9yZWFjaCh2aWFMYXllciB2aWFMYXllcnMgKHZpYUxheWVyTmFtZSA9IGNhcih2aWFMYXllcikpICh2aWFTcGFjZSA9IG50aCgxIHZpYUxheWVyKSkgKHZpYVdpZHRoID0gbnRoKDIgdmlhTGF5ZXIpKSAoZW5jbFZpYXNNZXQgPSAoKG1ldExpbmVXaWR0aCAtICgodmlhMV82Um93cyAtIDEpICogdmlhU3BhY2UpIC0gKHZpYTFfNlJvd3MgKiB2aWFXaWR0aCkpIC8gMikpICh0aGVYID0gKChtZXRSaW5nV2lkdGggLSBlbmNQYWQpICsgYWRkU3BhY2VWZXIgKyBlbmNsVmlhc01ldCkpICh0aGVZID0gKChtZXRSaW5nV2lkdGggLSBlbmNQYWQpICsgYWRkU3BhY2VIb3IgKyBlbmNsVmlhc01ldCkpIGZvcihtIDEgbnVtSG9yTGluZXMgZm9yKGsgMSBudW1WZXJMaW5lcyAodGhlWTEgPSB0aGVZKSBmb3IoaSAxIHZpYTFfNlJvd3MgKHRoZVgxID0gdGhlWCkgZm9yKGogMSB2aWExXzZDb2xzIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsaXN0KHZpYUxheWVyTmFtZSAiZHJhd2luZyIpIGxpc3QoKHRoZVgxOnRoZVkxKSAoKHRoZVgxICsgdmlhV2lkdGgpOih0aGVZMSArIHZpYVdpZHRoKSkpKSAodGhlWDEgPSAodGhlWDEgKyB2aWFXaWR0aCArIHZpYVNwYWNlKSkpICh0aGVZMSA9ICh0aGVZMSArIHZpYVdpZHRoICsgdmlhU3BhY2UpKSkgKHRoZVggPSAodGhlWCArIG1ldExpbmVQaXRjaCkpKSAodGhlWSA9ICh0aGVZICsgbWV0TGluZVBpdGNoKSkgKHRoZVggPSAoKG1ldFJpbmdXaWR0aCAtIGVuY1BhZCkgKyBhZGRTcGFjZVZlciArIGVuY2xWaWFzTWV0KSkpKSAoZW5jbFRvcFZpYU1ldCA9ICgobWV0TGluZVdpZHRoIC0gKCh2aWE3Um93cyAtIDEpICogdG9wVmlhU3BhY2UpIC0gKHZpYTdSb3dzICogdG9wVmlhV2lkdGgpKSAvIDIpKSAodGhlWHRvcFZpYSA9ICgobWV0UmluZ1dpZHRoIC0gZW5jUGFkKSArIGFkZFNwYWNlVmVyICsgZW5jbFRvcFZpYU1ldCkpICh0aGVZdG9wVmlhID0gKChtZXRSaW5nV2lkdGggLSBlbmNQYWQpICsgYWRkU3BhY2VIb3IgKyBlbmNsVG9wVmlhTWV0KSkgZm9yKG0gMSBudW1Ib3JMaW5lcyBmb3IoayAxIG51bVZlckxpbmVzICh0aGVZdG9wVmlhMSA9IHRoZVl0b3BWaWEpIGZvcihpIDEgdmlhN1Jvd3MgKHRoZVh0b3BWaWExID0gdGhlWHRvcFZpYSkgZm9yKGogMSB2aWE3Q29scyAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdCh0b3BWaWFMYXllck5hbWUgImRyYXdpbmciKSBsaXN0KCh0aGVYdG9wVmlhMTp0aGVZdG9wVmlhMSkgKCh0aGVYdG9wVmlhMSArIHRvcFZpYVdpZHRoKToodGhlWXRvcFZpYTEgKyB0b3BWaWFXaWR0aCkpKSkgKHRoZVh0b3BWaWExID0gKHRoZVh0b3BWaWExICsgdG9wVmlhV2lkdGggKyB0b3BWaWFTcGFjZSkpKSAodGhlWXRvcFZpYTEgPSAodGhlWXRvcFZpYTEgKyB0b3BWaWFXaWR0aCArIHRvcFZpYVNwYWNlKSkpICh0aGVYdG9wVmlhID0gKHRoZVh0b3BWaWEgKyBtZXRMaW5lUGl0Y2gpKSkgKHRoZVl0b3BWaWEgPSAodGhlWXRvcFZpYSArIG1ldExpbmVQaXRjaCkpICh0aGVYdG9wVmlhID0gKChtZXRSaW5nV2lkdGggLSBlbmNQYWQpICsgYWRkU3BhY2VWZXIgKyBlbmNsVG9wVmlhTWV0KSkpKQAocGFkTGF5ZXIgdG9wVmlhTGF5ZXIgdG9wTGF5ZXIgb2RkTWV0TGF5ZXJzIGV2ZW5NZXRMYXllcnMgdmlhTGF5ZXJzIHZpYUFycmF5U2l6ZSBiZXZlbEN1dExlbmd0aCBtYXhCZXZlbEN1dExlbmd0aCB0b3BMYXllckVuY1BhZCBtZXRSaW5nV2lkdGggbWV0TGluZVdpZHRoIG1ldExpbmVTcGFjZSBlbmRNZXRMaW5lU3BhY2UgcGFkR3JpZCBnZW5lcmljUmluZ05hbWUgdG9wTGF5ZXJHcmlkIHcgbCBzaHJpbmtQZXJjZW50IG5ldCByaW5nSWQgczIgdmlhMV82Um93cyB2aWExXzZDb2xzIHZpYTdSb3dzIHZpYTdDb2xzIHRvcFZpYUxheWVyTmFtZSB0b3BWaWFXaWR0aCB0b3BWaWFTcGFjZSBlbmNQYWQgQXJyYXlfbGVuZ3RoIEFycmF5X3dpZHRoIG1ldExpbmVQaXRjaCBudW1WZXJMaW5lcyBudW1Ib3JMaW5lcyBhZGRTcGFjZVZlciBhZGRTcGFjZUhvciBzY2FsZU11bHQgc2l6ZUFuZEdyaWQgdGhlU2l6ZSB0aGVHcmlkIHRlbXBTaXplIHBhZFhzaWRlIHBhZFlzaWRlIHBhZFBvaW50cyB0aGlzTGF5ZXIgZXh0cmFPZmZzZXQgdGhlTGVuZ3RoIGxlbmd0aFNpZGUgdGhlV2lkdGggd2lkdGhTaWRlIHRoZUJldmVsIHRoZVBvaW50cyBkYmlkIHBpbmlkIHRoZU1hc3RlciBNZXRMYXllcnMgbGF5ZXIgYWRkU3BhY2VIb3JfdG1wIGFkZFNwYWNlVmVyX3RtcCB0aGVYIHRoZVkgbnVtYmVyIHZpYUxheWVyIHZpYUxheWVyTmFtZSB2aWFTcGFjZSB2aWFXaWR0aCBlbmNsVmlhc01ldCBtIGsgdGhlWTEgaSB0aGVYMSBqIGVuY2xUb3BWaWFNZXQgdGhlWHRvcFZpYSB0aGVZdG9wVmlhIHRoZVl0b3BWaWExIHRoZVh0b3BWaWExKQAoKHcgMC4wKSAobCAwLjApIChzaHJpbmtQZXJjZW50IDAuMCkpACgocGFkTGF5ZXIgbGlzdCgieTAiICJkcmF3aW5nIikpICh0b3BWaWFMYXllciAnKCJ5MSIgMC4wIDAuMCAwLjApKSAodG9wTGF5ZXIgbGlzdCgieTIiICJkcmF3aW5nIikpIChvZGRNZXRMYXllcnMgbGlzdChuaWwgbmlsIG5pbCBuaWwpKSAoZXZlbk1ldExheWVycyBsaXN0KG5pbCBuaWwgbmlsKSkgdmlhTGF5ZXJzKGAoJygieTMiIDAuMSAwLjEpICcoInk0IiAwLjEgMC4xKSAnKCJ5NSIgMC4xIDAuMSkpKSAodmlhQXJyYXlTaXplIGxpc3QobGlzdCgzIDMpIGxpc3QoMiAyKSkpIChiZXZlbEN1dExlbmd0aCAwLjApIChtYXhCZXZlbEN1dExlbmd0aCAwLjApICh0b3BMYXllckVuY1BhZCAwLjApIChtZXRSaW5nV2lkdGggMC4wKSAobWV0TGluZVdpZHRoIDAuMCkgKG1ldExpbmVTcGFjZSAwLjApIChlbmRNZXRMaW5lU3BhY2UgMC4wKSAocGFkR3JpZCAwLjApIChnZW5lcmljUmluZ05hbWUgImdlbkRMcmluZyIpICh0b3BMYXllckdyaWQgMC4wKSkAKCh3ID0gKHcgLSB3T2Zmc2V0KSkgKGwgPSAobCAtIGxPZmZzZXQpKSBpZigoKGZpbGxlZFZpYXMgPT0gdCkgfHwgKGZpbGxlZFZpYXMgPT0gIlRSVUUiKSkgdGhlbiAoZmlsbGVkVmlhcyA9IHQpIGVsc2UgKGZpbGxlZFZpYXMgPSBuaWwpKSBpZigoKHNpZ25hbFVuZGVyUGFkID09IHQpIHx8IChzaWduYWxVbmRlclBhZCA9PSAiVFJVRSIpKSB0aGVuIChzaWduYWxVbmRlclBhZCA9IHQpIGVsc2UgKHNpZ25hbFVuZGVyUGFkID0gbmlsKSkgaWYoKChzaGllbGRlZFBhZCA9PSB0KSB8fCAoc2hpZWxkZWRQYWQgPT0gIlRSVUUiKSkgdGhlbiAoc2hpZWxkZWRQYWQgPSB0KSBlbHNlIChzaGllbGRlZFBhZCA9IG5pbCkpIChuZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAicHBkIikpIChkYkNyZWF0ZVRlcm0gbmV0ICJuIiAiaW5wdXRPdXRwdXQiKSAocmluZ0lkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGdlbmVyaWNSaW5nTmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHJpbmdJZCBlcnJvcigicGx1Z2dlZFBhZENsYXNzOiAgQ2Fubm90IGZpbmQvb3BlbiBnZW5lcmljIHJpbmcgJXNcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgdW5sZXNzKChyaW5nSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigicGx1Z2dlZFBhZENsYXNzOiAgUmluZyAlcyBpcyBub3QgYSBwY2VsbFxuIiBnZW5lcmljUmluZ05hbWUpKSAocml2ZXRJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSByaXZldGVkUmluZ05hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhyaXZldElkIGVycm9yKCJwbHVnZ2VkUGFkQ2xhc3M6ICBDYW5ub3QgZmluZC9vcGVuIHJpdmV0ZWQgcmluZyAlc1xuIiByaXZldGVkUmluZ05hbWUpKSB1bmxlc3MoKHJpdmV0SWR+PmlzUGFyYW1DZWxsKSBlcnJvcigicGx1Z2dlZFBhZENsYXNzOiAgUml2ZXQgcmluZyAlcyBpcyBub3QgYSBwY2VsbFxuIiByaXZldGVkUmluZ05hbWUpKSB3aGVuKGZpbGxlZFZpYXMgKGZpbGxJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBiZXZlbFZpYU5hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcygoZmlsbElkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoInBsdWdnZWRQYWRDbGFzczogIEJldmVsZWQgdmlhIGZpbGwgJXMgaXMgbm90IGEgcGNlbGxcbiIgYmV2ZWxWaWFOYW1lKSkpIChzMiA9IHNxcnQoMi4wKSkgKGJldmVsQ3V0TGVuZ3RoID0gKGJldmVsQ3V0TGVuZ3RoIC8gczIpKSAobWF4QmV2ZWxDdXRMZW5ndGggPSAobWF4QmV2ZWxDdXRMZW5ndGggLyBzMikpIGNvbmQoKChzaHJpbmtQZXJjZW50ID09IDAuMCkgKHNjYWxlTXVsdCA9IDEuMCkpICh0IChzY2FsZU11bHQgPSAoMTAwLjAgLyAoMTAwLjAgLSBzaHJpbmtQZXJjZW50KSkpIGZvcmVhY2goc2l6ZUFuZEdyaWQgbGlzdChsaXN0KCd3IHBhZEdyaWQpIGxpc3QoJ2wgcGFkR3JpZCkgbGlzdCgndG9wTGF5ZXJFbmNQYWQgdG9wTGF5ZXJHcmlkKSBsaXN0KCdtaW5XaWR0aCBwYWRHcmlkKSBsaXN0KCdtaW5MZW5ndGggcGFkR3JpZCkgbGlzdCgnYm90TGF5ZXJTcGFjZVBhZCBib3RMYXllckdyaWQpIGxpc3QoJ3N1YkxheWVyU3BhY2VQYWQgc3ViTGF5ZXJHcmlkKSkgKHRoZVNpemUgPSBjYXIoc2l6ZUFuZEdyaWQpKSAodGhlR3JpZCA9IGNhZHIoc2l6ZUFuZEdyaWQpKSAodGVtcFNpemUgPSAoKGV2YWwodGhlU2l6ZSkgKiBzY2FsZU11bHQpIC8gdGhlR3JpZCkpIHNldCh0aGVTaXplIChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIHRoZUdyaWQpKSkpKSAoYmV2ZWxDdXRMZW5ndGggPSAocGFkR3JpZCAqIGZpeCgoMC45OTkgKyAoKGJldmVsQ3V0TGVuZ3RoICogc2NhbGVNdWx0KSAvIHBhZEdyaWQpKSkpKSB3aGVuKChiZXZlbEN1dExlbmd0aCA+IG1heEJldmVsQ3V0TGVuZ3RoKSAoYmV2ZWxDdXRMZW5ndGggPSAocGFkR3JpZCAqIGZpeCgoMWUtMDUgKyAobWF4QmV2ZWxDdXRMZW5ndGggLyBwYWRHcmlkKSkpKSkpIChwYWRYc2lkZSA9IChsIC0gKDIuMCAqIGJldmVsQ3V0TGVuZ3RoKSkpIChwYWRZc2lkZSA9ICh3IC0gKDIuMCAqIGJldmVsQ3V0TGVuZ3RoKSkpIChwYWRQb2ludHMgPSBsaXN0KChiZXZlbEN1dExlbmd0aDowLjApICgocGFkWHNpZGUgKyBiZXZlbEN1dExlbmd0aCk6MC4wKSAobDpiZXZlbEN1dExlbmd0aCkgKGw6KGJldmVsQ3V0TGVuZ3RoICsgcGFkWXNpZGUpKSAoKHBhZFhzaWRlICsgYmV2ZWxDdXRMZW5ndGgpOncpIChiZXZlbEN1dExlbmd0aDp3KSAoMC4wOihiZXZlbEN1dExlbmd0aCArIHBhZFlzaWRlKSkgKDAuMDpiZXZlbEN1dExlbmd0aCkpKSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgcGFkTGF5ZXIgcGFkUG9pbnRzKSBjb25kKChsaXN0cChjYXIodG9wTGF5ZXIpKSAodG9wTGF5ZXJzID0gdG9wTGF5ZXIpKSAoY2FyKHRvcExheWVyKSAodG9wTGF5ZXJzID0gbGlzdCh0b3BMYXllcikpKSAodCBwcmludGYoInRvcExheWVyIHNob3VsZCBiZSBscHAgb3IgTGlzdChscHAxLGxwcDIuLi4pIG9ubHkiKSkpIChlbmNQYWQgPSB0b3BMYXllckVuY1BhZCkgKGV4dHJhT2Zmc2V0ID0gKChlbmNQYWQgKiAoMi4wIC0gczIpKSAvIHRvcExheWVyR3JpZCkpIChleHRyYU9mZnNldCA9ICh0b3BMYXllckdyaWQgKiBmaXgoKDAuOTk5ICsgZXh0cmFPZmZzZXQpKSkpIChleHRyYU9mZnNldCA9IChleHRyYU9mZnNldCAtIHRvcExheWVyR3JpZCkpICh0aGVMZW5ndGggPSAobCArICgyLjAgKiBlbmNQYWQpKSkgKGxlbmd0aFNpZGUgPSAodGhlTGVuZ3RoIC0gKDIuMCAqIChiZXZlbEN1dExlbmd0aCArIGV4dHJhT2Zmc2V0KSkpKSAodGhlV2lkdGggPSAodyArICgyLjAgKiBlbmNQYWQpKSkgKHdpZHRoU2lkZSA9ICh0aGVXaWR0aCAtICgyLjAgKiAoYmV2ZWxDdXRMZW5ndGggKyBleHRyYU9mZnNldCkpKSkgKHRoZUJldmVsID0gKGJldmVsQ3V0TGVuZ3RoICsgZXh0cmFPZmZzZXQpKSAodGhlUG9pbnRzID0gbGlzdCgoKCgtIGVuY1BhZCkgKyB0aGVCZXZlbCk6KC0gZW5jUGFkKSkgKCgoLSBlbmNQYWQpICsgdGhlQmV2ZWwgKyBsZW5ndGhTaWRlKTooLSBlbmNQYWQpKSAoKCgtIGVuY1BhZCkgKyB0aGVMZW5ndGgpOigoLSBlbmNQYWQpICsgdGhlQmV2ZWwpKSAoKCgtIGVuY1BhZCkgKyB0aGVMZW5ndGgpOigoLSBlbmNQYWQpICsgdGhlQmV2ZWwgKyB3aWR0aFNpZGUpKSAoKCgtIGVuY1BhZCkgKyB0aGVCZXZlbCArIGxlbmd0aFNpZGUpOigoLSBlbmNQYWQpICsgdGhlV2lkdGgpKSAoKCgtIGVuY1BhZCkgKyB0aGVCZXZlbCk6KCgtIGVuY1BhZCkgKyB0aGVXaWR0aCkpICgoLSBlbmNQYWQpOigoLSBlbmNQYWQpICsgdGhlQmV2ZWwgKyB3aWR0aFNpZGUpKSAoKC0gZW5jUGFkKTooKC0gZW5jUGFkKSArIHRoZUJldmVsKSkpKSBmb3JlYWNoKHRvcExheSB0b3BMYXllcnMgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdG9wTGF5IHRoZVBvaW50cykpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIG5ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0Rpcikgd2hlbihzaGllbGRlZFBhZCAoc2hpZWxkRW5jUGFkID0gc2hpZWxkRW5jbG9zdXJlKSAoc2hpZWxkRXh0cmFPZmZzZXQgPSAoKHNoaWVsZEVuY1BhZCAqICgyLjAgLSBzMikpIC8gdG9wTGF5ZXJHcmlkKSkgKHNoaWVsZEV4dHJhT2Zmc2V0ID0gKHRvcExheWVyR3JpZCAqIGZpeCgoMC45OTkgKyBzaGllbGRFeHRyYU9mZnNldCkpKSkgKHNoaWVsZEV4dHJhT2Zmc2V0ID0gKHNoaWVsZEV4dHJhT2Zmc2V0IC0gdG9wTGF5ZXJHcmlkKSkgKHNoaWVsZExlbmd0aCA9IChsICsgKDIuMCAqIHNoaWVsZEVuY1BhZCkpKSAoc2hpZWxkTGVuZ3RoU2lkZSA9IChzaGllbGRMZW5ndGggLSAoMi4wICogKGJldmVsQ3V0TGVuZ3RoICsgc2hpZWxkRXh0cmFPZmZzZXQpKSkpIChzaGllbGRXaWR0aCA9ICh3ICsgKDIuMCAqIHNoaWVsZEVuY1BhZCkpKSAoc2hpZWxkV2lkdGhTaWRlID0gKHNoaWVsZFdpZHRoIC0gKDIuMCAqIChiZXZlbEN1dExlbmd0aCArIHNoaWVsZEV4dHJhT2Zmc2V0KSkpKSAoc2hpZWxkQmV2ZWwgPSAoYmV2ZWxDdXRMZW5ndGggKyBzaGllbGRFeHRyYU9mZnNldCkpIChzaGllbGRQb2ludHMgPSBsaXN0KCgoKC0gc2hpZWxkRW5jUGFkKSArIHNoaWVsZEJldmVsKTooLSBzaGllbGRFbmNQYWQpKSAoKCgtIHNoaWVsZEVuY1BhZCkgKyBzaGllbGRCZXZlbCArIHNoaWVsZExlbmd0aFNpZGUpOigtIHNoaWVsZEVuY1BhZCkpICgoKC0gc2hpZWxkRW5jUGFkKSArIHNoaWVsZExlbmd0aCk6KCgtIHNoaWVsZEVuY1BhZCkgKyBzaGllbGRCZXZlbCkpICgoKC0gc2hpZWxkRW5jUGFkKSArIHNoaWVsZExlbmd0aCk6KCgtIHNoaWVsZEVuY1BhZCkgKyBzaGllbGRCZXZlbCArIHNoaWVsZFdpZHRoU2lkZSkpICgoKC0gc2hpZWxkRW5jUGFkKSArIHNoaWVsZEJldmVsICsgc2hpZWxkTGVuZ3RoU2lkZSk6KCgtIHNoaWVsZEVuY1BhZCkgKyBzaGllbGRXaWR0aCkpICgoKC0gc2hpZWxkRW5jUGFkKSArIHNoaWVsZEJldmVsKTooKC0gc2hpZWxkRW5jUGFkKSArIHNoaWVsZFdpZHRoKSkgKCgtIHNoaWVsZEVuY1BhZCk6KCgtIHNoaWVsZEVuY1BhZCkgKyBzaGllbGRCZXZlbCArIHNoaWVsZFdpZHRoU2lkZSkpICgoLSBzaGllbGRFbmNQYWQpOigoLSBzaGllbGRFbmNQYWQpICsgc2hpZWxkQmV2ZWwpKSkpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHNoaWVsZExheWVyIHNoaWVsZFBvaW50cykpKSB3aGVuKCgocGxhc3RpY1BhY2thZ2UgPT0gIlRSVUUiKSAmJiAoaGVybWV0aWNQYWNrYWdlID09ICJUUlVFIikpIGVycm9yKCJwbHVnZ2VkUGFkQ2xhc3M6ICBDYW5ub3Qgc2VsZWN0IHBsYXN0aWNQYWNrYWdlIGFuZCBoZXJtZXRpY1BhY2thZ2UiKSkgd2hlbigocGxhc3RpY1BhY2thZ2UgPT0gIlRSVUUiKSAobmV0TCA9ICJwbGFzdGljIikpIHdoZW4oKGhlcm1ldGljUGFja2FnZSA9PSAiVFJVRSIpIChuZXRMID0gImhlcm1ldGljIikpIHdoZW4oKGxhYmVsTGF5ZXIgJiYgbmV0TCkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKGwgLyAyLjApICh3IC8gMi4wKSkgbmV0TCAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgbGFiZWxXaWR0aCkpIHdoZW4oKHBhZFR5cGUgPT0gImhpZ2hQYXJhbGxlbCIpICh0eXBlTCA9ICJIUCIpKSB3aGVuKChwYWRUeXBlID09ICJmaW5lUGl0Y2giKSAodHlwZUwgPSAiRlAiKSkgd2hlbigocGFkVHlwZSA9PSAic3RhZ2dlcmVkIikgKHR5cGVMID0gIlNURyIpKSB3aGVuKChwYWRUeXBlID09ICJ3YWZlckxldmVsQnVybkluIikgKHR5cGVMID0gIldMQkkiKSkgd2hlbigocGFkVHlwZSA9PSAid2FmZXJTY2FsZSIpICh0eXBlTCA9ICJXU1AiKSkgd2hlbigobGFiZWxMYXllciAmJiBuZXRMKSAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgobCAvIDIuMCkgKHcgLyAyLjApKSBuZXRMICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiBsYWJlbFdpZHRoKSkgd2hlbigobGFiZWxMYXllciAmJiB0eXBlTCkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKGwgLyAyLjApICh3IC8gMi4xKSkgdHlwZUwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKChsYWJlbExheWVyICYmIHNoaWVsZGVkUGFkKSAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgobCAvIDIuMCkgKHcgLyAyLjIpKSAic2hpZWxkZWQiICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiBsYWJlbFdpZHRoKSkgd2hlbigoY2VudGVyUGFkID09ICJUUlVFIikgKHgxQ29vcmQgPSAoKGwgLSBwYWRDZW50ZXJXaWR0aCkgLyAyLjApKSAoeTFDb29yZCA9ICgodyAtIHBhZENlbnRlcldpZHRoKSAvIDIuMCkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHBhZENlbnRlciBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICgoeDFDb29yZCArIHBhZENlbnRlcldpZHRoKTooeTFDb29yZCArIHBhZENlbnRlcldpZHRoKSkpKSkpIHdoZW4oc29saWRUb3BWaWEgKHRvcFZpYWVuY1BhZCA9ICh0b3BMYXllckVuY1BhZCArICgtIHRvcExheWVyRW5jVG9wVmlhKSkpIChleHRyYU9mZnNldFZpYSA9ICgodG9wVmlhZW5jUGFkICogKDIuMCAtIHMyKSkgLyB0b3BMYXllckdyaWQpKSAoZXh0cmFPZmZzZXRWaWEgPSAodG9wTGF5ZXJHcmlkICogZml4KCgwLjk5OSArIGV4dHJhT2Zmc2V0VmlhKSkpKSAoZXh0cmFPZmZzZXRWaWEgPSAoZXh0cmFPZmZzZXRWaWEgLSB0b3BMYXllckdyaWQpKSAodGhlTGVuZ3RoVmlhID0gKGwgKyAoMi4wICogdG9wVmlhZW5jUGFkKSkpIChsZW5ndGhTaWRlID0gKHRoZUxlbmd0aFZpYSAtICgyLjAgKiAoYmV2ZWxDdXRMZW5ndGggKyBleHRyYU9mZnNldFZpYSkpKSkgKHRoZVdpZHRoVmlhID0gKHcgKyAoMi4wICogdG9wVmlhZW5jUGFkKSkpICh3aWR0aFNpZGUgPSAodGhlV2lkdGhWaWEgLSAoMi4wICogKGJldmVsQ3V0TGVuZ3RoICsgZXh0cmFPZmZzZXRWaWEpKSkpICh0aGVCZXZlbFZpYSA9IChiZXZlbEN1dExlbmd0aCArIGV4dHJhT2Zmc2V0VmlhKSkgKHRoZVBvaW50cyA9IGxpc3QoKCgoLSB0b3BWaWFlbmNQYWQpICsgdGhlQmV2ZWxWaWEpOigtIHRvcFZpYWVuY1BhZCkpICgoKC0gdG9wVmlhZW5jUGFkKSArIHRoZUJldmVsVmlhICsgbGVuZ3RoU2lkZSk6KC0gdG9wVmlhZW5jUGFkKSkgKCgoLSB0b3BWaWFlbmNQYWQpICsgdGhlTGVuZ3RoVmlhKTooKC0gdG9wVmlhZW5jUGFkKSArIHRoZUJldmVsVmlhKSkgKCgoLSB0b3BWaWFlbmNQYWQpICsgdGhlTGVuZ3RoVmlhKTooKC0gdG9wVmlhZW5jUGFkKSArIHRoZUJldmVsVmlhICsgd2lkdGhTaWRlKSkgKCgoLSB0b3BWaWFlbmNQYWQpICsgdGhlQmV2ZWxWaWEgKyBsZW5ndGhTaWRlKTooKC0gdG9wVmlhZW5jUGFkKSArIHRoZVdpZHRoVmlhKSkgKCgoLSB0b3BWaWFlbmNQYWQpICsgdGhlQmV2ZWxWaWEpOigoLSB0b3BWaWFlbmNQYWQpICsgdGhlV2lkdGhWaWEpKSAoKC0gdG9wVmlhZW5jUGFkKTooKC0gdG9wVmlhZW5jUGFkKSArIHRoZUJldmVsVmlhICsgd2lkdGhTaWRlKSkgKCgtIHRvcFZpYWVuY1BhZCk6KCgtIHRvcFZpYWVuY1BhZCkgKyB0aGVCZXZlbFZpYSkpKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdG9wVmlhTGF5ZXIgdGhlUG9pbnRzKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpKSBjb25kKCgobGlzdHAoY2FyKGJvdExheWVyKSkgJiYgbGlzdHAoY2FyKHZpYUxheWVyKSkpIChib3RMYXllcnMgPSBib3RMYXllcikgKHZpYUxheWVycyA9IHZpYUxheWVyKSkgKCghbGlzdHAoY2FyKGJvdExheWVyKSkgJiYgIWxpc3RwKGNhcih2aWFMYXllcikpKSAoYm90TGF5ZXJzID0gbGlzdChib3RMYXllcikpICh2aWFMYXllcnMgPSBsaXN0KGxpc3QoY2FyKHZpYUxheWVyKSB2aWFTcGFjZSB2aWFXaWR0aCBwYWRHcmlkKSkpIHdoZW4oc3ViTGF5ZXIgKGJvdExheWVycyA9IGNvbnMoc3ViTGF5ZXIgYm90TGF5ZXJzKSkpIHdoZW4oc3ViVmlhTGF5ZXIgKHZpYUxheWVyczEgPSBsaXN0KGxpc3QoY2FyKHN1YlZpYUxheWVyKSBzdWJWaWFTcGFjZSBzdWJWaWFXaWR0aCBwYWRHcmlkKSkpICh2aWFMYXllcnMgPSBhcHBlbmQodmlhTGF5ZXJzMSB2aWFMYXllcnMpKSkpICh0IHByaW50ZigiQk9USCAgYm90TGF5ZXIgYW5kIHZpYUxheWVyIHNob3VsZCBiZSBsaXN0KGxpc3RzKSBvciBqdXN0IGxpc3RzIFxuIikpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAiYm90UmluZyIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgdGhlV2lkdGgpIGxpc3QoImwiICJmbG9hdCIgdGhlTGVuZ3RoKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiICgtIHRvcExheWVyRW5jUGFkKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiAoLSB0b3BMYXllckVuY1BhZCkpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiICh0b3BMYXllckVuY1BhZCAtIGJvdExheWVyU3BhY2VQYWQpKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiB0aGVCZXZlbCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB0aGVCZXZlbCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiB0aGVCZXZlbCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB0aGVCZXZlbCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB0b3BMYXllckdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSBmb3JlYWNoKGJvdExheSBib3RMYXllcnMgd2hlbigoKGJvdExheSAhPSBzaWduYWxMYXllcikgfHwgIXNpZ25hbFVuZGVyUGFkKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBib3RMYXkgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGJvdExheSAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgYm90TGF5ICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBib3RMYXkgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpKSkgKHZpYUNvdW50ID0gMCkgZm9yZWFjaCh2aWFMYXllciB2aWFMYXllcnMgKHZpYU9mZnNldCA9ICh0b3BMYXllckVuY1BhZCAtIGJvdExheWVyT3V0c2lkZUVuY1ZpYSkpIChleHRyYU9mZnNldCA9ICgodmlhT2Zmc2V0ICogKDIuMCAtIHMyKSkgLyBwYWRHcmlkKSkgKGV4dHJhT2Zmc2V0ID0gKHBhZEdyaWQgKiBmaXgoKDAuOTk5ICsgZXh0cmFPZmZzZXQpKSkpIChleHRyYU9mZnNldCA9IChleHRyYU9mZnNldCAtIHBhZEdyaWQpKSAodGhlQmV2ZWwgPSAoYmV2ZWxDdXRMZW5ndGggKyBleHRyYU9mZnNldCArIHBhZEdyaWQpKSAodmlhTGF5ZXJOYW1lID0gbGlzdChjYXIodmlhTGF5ZXIpICJkcmF3aW5nIikpICh2aWFXaWR0aDEgPSBjYWRkcih2aWFMYXllcikpICh2aWFTcGFjZTEgPSBjYWRyKHZpYUxheWVyKSkgKGxheUdyaWQgPSBudGgoMyB2aWFMYXllcikpIHVubGVzcyhmaWxsZWRWaWFzIHdoZW4oKCh2aWFMYXllck5hbWUgIT0gc2lnbmFsVmlhTGF5ZXIpIHx8ICFzaWduYWxVbmRlclBhZCkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcml2ZXRJZCBzcHJpbnRmKG5pbCAicml2ZXRWaWElZCIgdmlhQ291bnQpICgoLSB2aWFPZmZzZXQpOigtIHZpYU9mZnNldCkpICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgKHRoZVdpZHRoIC0gKDIuMCAqICh0b3BMYXllckVuY1BhZCAtIHZpYU9mZnNldCkpKSkgbGlzdCgibCIgImZsb2F0IiAodGhlTGVuZ3RoIC0gKDIuMCAqICh0b3BMYXllckVuY1BhZCAtIHZpYU9mZnNldCkpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiAwLjApIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhTGF5ZXJOYW1lKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgKHZpYU9mZnNldCAtIGJvdExheWVySW5zaWRlRW5jVmlhIC0gYm90TGF5ZXJTcGFjZVBhZCkpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhV2lkdGgxKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYVNwYWNlMSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiB0aGVCZXZlbCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB0aGVCZXZlbCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiB0aGVCZXZlbCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB0aGVCZXZlbCkgbGlzdCgiYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCIgImJvb2xlYW4iICJGQUxTRSIpIGxpc3QoImdyaWQiICJmbG9hdCIgbGF5R3JpZCkpKSAodmlhQ291bnQgPSAodmlhQ291bnQgKyAxKSkpKSB3aGVuKGZpbGxlZFZpYXMgKGxheU1ldEVuYyA9IG50aCg0IHZpYUxheWVyKSkgKHRoZVZpYUJldmVsID0gKHMyICogKCh0aGVCZXZlbCAvIHMyKSArICh0b3BMYXllckVuY1BhZCAtIGxheU1ldEVuYykpKSkgKHZpYVNoaWZ0ID0gKCgoMiAqIHRvcExheWVyRW5jUGFkKSAtIChsYXlNZXRFbmMgKiAyKSkgLyAyKSkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgZmlsbElkIHNwcmludGYobmlsICJmaWxsVmlhJWQiIHZpYUNvdW50KSAoKC0gdmlhU2hpZnQpOigtIHZpYVNoaWZ0KSkgIlIwIiAxIGxpc3QobGlzdCgidmlhTGF5ZXIiICJsaXN0IiB2aWFMYXllck5hbWUpIGxpc3QoImwiICJmbG9hdCIgKCgoMiAqIHRvcExheWVyRW5jUGFkKSArIHcpIC0gKGxheU1ldEVuYyAqIDIpKSkgbGlzdCgidyIgImZsb2F0IiAoKCgyICogdG9wTGF5ZXJFbmNQYWQpICsgbCkgLSAobGF5TWV0RW5jICogMikpKSBsaXN0KCJ2aWFXaWR0aCIgImZsb2F0IiB2aWFXaWR0aDEpIGxpc3QoInZpYVNwYWNlIiAiZmxvYXQiIHZpYVNwYWNlMSkgbGlzdCgiYmV2ZWxMZW5ndGgiICJmbG9hdCIgdGhlVmlhQmV2ZWwpKSkgKHZpYUNvdW50ID0gKHZpYUNvdW50ICsgMSkpKSkgKGRiQ2xvc2UgcmluZ0lkKSAoZGJDbG9zZSByaXZldElkKSB3aGVuKGZpbGxlZFZpYXMgKGRiQ2xvc2UgZmlsbElkKSkpAChwYWRMYXllciB0b3BMYXllciBib3RMYXllciBzdWJMYXllciBzaGllbGRMYXllciB2aWFMYXllciB2aWFTcGFjZSB2aWFXaWR0aCBzdWJWaWFMYXllciBzdWJWaWFXaWR0aCBzdWJWaWFTcGFjZSBiZXZlbEN1dExlbmd0aCBtYXhCZXZlbEN1dExlbmd0aCB0b3BMYXllckVuY1BhZCBib3RMYXllclNwYWNlUGFkIHN1YkxheWVyU3BhY2VQYWQgZ2VuZXJpY1JpbmdOYW1lIHJpdmV0ZWRSaW5nTmFtZSBiZXZlbFZpYU5hbWUgYm90TGF5ZXJJbnNpZGVFbmNWaWEgYm90TGF5ZXJPdXRzaWRlRW5jVmlhIGJvdExheWVySW5zaWRlRW5jU3ViVmlhIGJvdExheWVyT3V0c2lkZUVuY1N1YlZpYSBtaW5XaWR0aCBtaW5MZW5ndGggcGFkR3JpZCB0b3BMYXllckdyaWQgYm90TGF5ZXJHcmlkIHN1YkxheWVyR3JpZCB2aWFHcmlkIHNvbGlkVG9wVmlhIGZpbGxlZFZpYXMgdG9wVmlhTGF5ZXIgdG9wTGF5ZXJFbmNUb3BWaWEgbGFiZWxMYXllciBsYWJlbFdpZHRoIHNpZ25hbExheWVyIHNpZ25hbFZpYUxheWVyIHBhZFR5cGUgcGFkQ2VudGVyIHBhZENlbnRlcldpZHRoIHdPZmZzZXQgbE9mZnNldCBzaWduYWxVbmRlclBhZCBzaGllbGRlZFBhZCBzaGllbGRFbmNsb3N1cmUgcGxhc3RpY1BhY2thZ2UgaGVybWV0aWNQYWNrYWdlIHcgbCBzaHJpbmtQZXJjZW50IGNlbnRlclBhZCBuZXQgcmluZ0lkIHJpdmV0SWQgZmlsbElkIHMyIHNjYWxlTXVsdCBzaXplQW5kR3JpZCB0aGVTaXplIHRoZUdyaWQgdGVtcFNpemUgcGFkWHNpZGUgcGFkWXNpZGUgcGFkUG9pbnRzIHRvcExheWVycyBlbmNQYWQgZXh0cmFPZmZzZXQgdGhlTGVuZ3RoIGxlbmd0aFNpZGUgdGhlV2lkdGggd2lkdGhTaWRlIHRoZUJldmVsIHRoZVBvaW50cyB0b3BMYXkgZGJpZCBwaW5pZCBzaGllbGRFbmNQYWQgc2hpZWxkRXh0cmFPZmZzZXQgc2hpZWxkTGVuZ3RoIHNoaWVsZExlbmd0aFNpZGUgc2hpZWxkV2lkdGggc2hpZWxkV2lkdGhTaWRlIHNoaWVsZEJldmVsIHNoaWVsZFBvaW50cyBuZXRMIHR5cGVMIHgxQ29vcmQgeTFDb29yZCBkYklkIHRvcFZpYWVuY1BhZCBleHRyYU9mZnNldFZpYSB0aGVMZW5ndGhWaWEgdGhlV2lkdGhWaWEgdGhlQmV2ZWxWaWEgYm90TGF5ZXJzIHZpYUxheWVycyB2aWFMYXllcnMxIHRoZU1hc3RlciBib3RMYXkgdmlhQ291bnQgdmlhT2Zmc2V0IHZpYUxheWVyTmFtZSB2aWFXaWR0aDEgdmlhU3BhY2UxIGxheUdyaWQgbGF5TWV0RW5jIHRoZVZpYUJldmVsIHZpYVNoaWZ0KQAoKHNpZ25hbFVuZGVyUGFkICJGQUxTRSIpIChzaGllbGRlZFBhZCAiRkFMU0UiKSAoc2hpZWxkRW5jbG9zdXJlIDAuMCkgKHBsYXN0aWNQYWNrYWdlICJGQUxTRSIpIChoZXJtZXRpY1BhY2thZ2UgIkZBTFNFIikgKHcgMC4wKSAobCAwLjApIChzaHJpbmtQZXJjZW50IDAuMCkgKGNlbnRlclBhZCAiRkFMU0UiKSkAKChwYWRMYXllciAieTAiKSAodG9wTGF5ZXIgJ25pbCkgKGJvdExheWVyICduaWwpIChzdWJMYXllciBuaWwpIChzaGllbGRMYXllciBuaWwpICh2aWFMYXllciBuaWwpICh2aWFTcGFjZSAwLjApICh2aWFXaWR0aCAwLjApIChzdWJWaWFMYXllciBuaWwpIChzdWJWaWFXaWR0aCAwLjApIChzdWJWaWFTcGFjZSAwLjApIChiZXZlbEN1dExlbmd0aCAwLjApIChtYXhCZXZlbEN1dExlbmd0aCAwLjApICh0b3BMYXllckVuY1BhZCAwLjApIChib3RMYXllclNwYWNlUGFkIDAuMCkgKHN1YkxheWVyU3BhY2VQYWQgMC4wKSAoZ2VuZXJpY1JpbmdOYW1lICJyaW5nZXIiKSAocml2ZXRlZFJpbmdOYW1lICJyaXZldGVyIikgKGJldmVsVmlhTmFtZSAiYmV2ZWx2aWEiKSAoYm90TGF5ZXJJbnNpZGVFbmNWaWEgMC4wKSAoYm90TGF5ZXJPdXRzaWRlRW5jVmlhIDAuMCkgKGJvdExheWVySW5zaWRlRW5jU3ViVmlhIDAuMCkgKGJvdExheWVyT3V0c2lkZUVuY1N1YlZpYSAwLjApIChtaW5XaWR0aCAwLjApIChtaW5MZW5ndGggMC4wKSAocGFkR3JpZCAwLjApICh0b3BMYXllckdyaWQgMC4wKSAoYm90TGF5ZXJHcmlkIDAuMCkgKHN1YkxheWVyR3JpZCAwLjApICh2aWFHcmlkIDAuMCkgKHNvbGlkVG9wVmlhICJGQUxTRSIpIChmaWxsZWRWaWFzICJGQUxTRSIpICh0b3BWaWFMYXllciBuaWwpICh0b3BMYXllckVuY1RvcFZpYSAwLjApIChsYWJlbExheWVyIGxpc3QoInRleHQiICJkcmF3aW5nIikpIChsYWJlbFdpZHRoIDEuMCkgKHNpZ25hbExheWVyIG5pbCkgKHNpZ25hbFZpYUxheWVyIG5pbCkgKHBhZFR5cGUgbmlsKSAocGFkQ2VudGVyIG5pbCkgKHBhZENlbnRlcldpZHRoIDAuMCkgKHdPZmZzZXQgMC4wKSAobE9mZnNldCAwLjApKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKHdoZW4oKHcgPiBtb2RlbFdtYXgpIGVycm9yKCIlZiBpcyBncmVhdGVyIHRoYW4gYWxsb3dhYmxlIG1heGltdW0gd2lkdGggJWYgZm9yIG1vZGVsICVMIiB3IG1vZGVsV21heCBtb2RlbFRleHQpKSB3aGVuKCh3IDwgbW9kZWxXbWluKSBlcnJvcigiJWYgaXMgbGVzcyB0aGFuIGFsbG93YWJsZSBtaW5pbXVtIHdpZHRoICVmIGZvciBtb2RlbCAlTCIgdyBtb2RlbFdtaW4gbW9kZWxUZXh0KSkgd2hlbigobCA+IG1vZGVsTG1heCkgZXJyb3IoIiVmIGlzIGdyZWF0ZXIgdGhhbiBhbGxvd2FibGUgbGVuZ3RoICVmIGZvciBtb2RlbCAlTCIgbCBtb2RlbExtYXggbW9kZWxUZXh0KSkgd2hlbigobCA8IG1vZGVsTG1pbikgZXJyb3IoIiVmIGlzIGxlc3MgdGhhbiBhbGxvd2FibGUgbWluaW11bSBsZW5ndGggJWYgZm9yIG1vZGVsICVMIiBsIG1vZGVsTG1pbiBtb2RlbFRleHQpKSB3aGVuKGZsb2F0TndlbGwgKHRhcFdpZHRoID0gMC4wKSAoc3JjVmlhVG9TcmNUYXBTcGFjZSA9IDAuMCkgKHNyY1ZpYVRhcFNwYWNlID0gMC4wKSkgaWYoKChzcGxpdFNvdXJjZSA9PSB0KSB8fCAoc3BsaXRTb3VyY2UgPT0gIlRSVUUiKSkgdGhlbiAoc3BsaXRTb3VyY2UgPSB0KSAoc3JjVmlhVGFwU3BhY2UgPSAwLjApIGVsc2UgKHN0cmlwVGFwVG9EaWZmU3BhY2UgPSAwLjApKSB3aGVuKHNwbGl0U291cmNlIGlmKChleHRyYUxlZnRTcGFjZSA8IG1pbkV4dHJhTFJzcGFjZSkgdGhlbiAoZXh0cmFMZWZ0U3BhY2UgPSBtaW5EaWZmVGFwUmluZ1NwYWNlKSAobGVmdEVuZFRhcCA9IG5pbCkgZWxzZSAobGVmdEVuZFRhcCA9IHQpKSBpZigoZXh0cmFSaWdodFNwYWNlIDwgbWluRXh0cmFMUnNwYWNlKSB0aGVuIChleHRyYVJpZ2h0U3BhY2UgPSBtaW5EaWZmVGFwUmluZ1NwYWNlKSAocmlnaHRFbmRUYXAgPSBuaWwpIGVsc2UgKHJpZ2h0RW5kVGFwID0gdCkpIChtaW5EaWZmVGFwUmluZ1NwYWNlID0gMC4wKSB3aGVuKCgobGF5ZXIzV2lkdGhEIDw9IDAuMCkgfHwgKGxheWVyM1dpZHRoUyA8PSAwLjApKSBlcnJvcigicEVzZFRyYW5JbXBDbGFzczogQ2xhc3MgcGFyYW1zIGxheWVyM1dpZHRoRCBvciBsYXllcjNXaWR0aFMgc21hbGxlciB0aGFuIDAuMCIpKSAobGF5ZXIzV2lkdGggPSBsYXllcjNXaWR0aEQpIHdoZW4oKChsYXllcjJXaWR0aEQgPD0gMC4wKSB8fCAobGF5ZXIyV2lkdGhTIDw9IDAuMCkpIGVycm9yKCJwRXNkVHJhbkltcENsYXNzOiBDbGFzcyBwYXJhbXMgbGF5ZXIyV2lkdGhEIG9yIGxheWVyMldpZHRoUyBzbWFsbGVyIHRoYW4gMC4wIikpIChsYXllcjJXaWR0aCA9IGxheWVyMldpZHRoRCkgd2hlbigoKHRhcFdpZHRoIDw9IDAuMCkgfHwgKHRhcExheTJXaWR0aCA8PSAwLjApIHx8ICh0YXBMYXkzV2lkdGggPD0gMC4wKSkgZXJyb3IoInBFc2RUcmFuSW1wQ2xhc3M6IENsYXNzIHBhcmFtcyB0YXBXaWR0aCBvciB0YXBMYXkyV2lkdGggb3IgdGFwTGF5M1dpZHRoIHNtYWxsZXIgdGhhbiAwLjAiKSkgd2hlbigoaW5uZXJSaW5nTWV0YWxXaWR0aCA8PSAwLjApIGVycm9yKCJwRXNkVHJhbkltcENsYXNzOiBDbGFzcyBwYXJhbXMgaW5uZXJSaW5nTWV0YWxXaWR0aCBzbWFsbGVyIHRoYW4gMC4wIikpICh0YXBMYXkyVmlhMUVuYyA9ICgodGFwTGF5MldpZHRoIC0gdmlhMVdpZHRoKSAvIDIpKSAodGFwTGF5MlZpYTFFbmMgPSAoZml4KCgodGFwTGF5MlZpYTFFbmMgLyBsYXllcjJncmlkKSArIDFlLTA2KSkgKiBsYXllcjJncmlkKSkgKHRhcExheTNWaWEyRW5jID0gKCh0YXBMYXkzV2lkdGggLSB2aWEyV2lkdGgpIC8gMikpICh0YXBMYXkzVmlhMkVuYyA9IChmaXgoKCh0YXBMYXkzVmlhMkVuYyAvIGxheWVyM2dyaWQpICsgMWUtMDYpKSAqIGxheWVyM2dyaWQpKSkgaWYoKG5XZWxsU3cgJiYgdGhpcmRSaW5nKSB0aGVuIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAibldlbGxTdyIgImJvb2xlYW4iIHQpIGVsc2UgKE53ZWxsY29ubmVjdFRvSU9wYWQgPSBuaWwpKSAoZ05ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJnIikpIChkYkNyZWF0ZVRlcm0gZ05ldCAiZyIgImlucHV0IikgKHNOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAicyIpKSAoZGJDcmVhdGVUZXJtIHNOZXQgInMiICJpbnB1dE91dHB1dCIpIChkTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImQiKSkgKGRiQ3JlYXRlVGVybSBkTmV0ICJkIiAiaW5wdXRPdXRwdXQiKSAoaXJOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiaXIiKSkgKGRiQ3JlYXRlVGVybSBpck5ldCAiaXIiICJpbnB1dE91dHB1dCIpIChvck5ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJvciIpKSAoZGJDcmVhdGVUZXJtIG9yTmV0ICJvciIgImlucHV0T3V0cHV0IikgKHRyTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgInRyIikpIChkYkNyZWF0ZVRlcm0gdHJOZXQgInRyIiAiaW5wdXRPdXRwdXQiKSB3aGVuKChmbGFyZVlhbW91bnRfaW4gPT0gMC4wKSAoZmxhcmVZYW1vdW50X2luID0gZmxhcmVZYW1vdW50KSkgY29uZCgoKHNocmlua1BlcmNlbnQgPT0gMC4wKSAoc2NhbGVNdWx0ID0gMS4wKSkgKHQgKHNjYWxlTXVsdCA9ICgxMDAuMCAvICgxMDAuMCAtIHNocmlua1BlcmNlbnQpKSkgKHZpYTFQb2x5R3JpZCA9IG1heCh2aWExZ3JpZCBwb2x5R3JpZCkpIGZvcmVhY2goc2l6ZUFuZEdyaWQgbGlzdChsaXN0KCdzcmNWaWFHYXRlU3BhY2UgdmlhMVBvbHlHcmlkKSBsaXN0KCdkcm5WaWFHYXRlU3BhY2UgdmlhMVBvbHlHcmlkKSBsaXN0KCdkcm5WaWFZc3BhY2VSaW5nVmlhVG9wIHZpYTFncmlkKSBsaXN0KCdkcm5WaWFZc3BhY2VSaW5nVmlhQm90IHZpYTFncmlkKSBsaXN0KCdpbm5lclJpbmdUYXBXaWR0aCB0YXBHcmlkKSBsaXN0KCdvdXRlclJpbmdUYXBXaWR0aCB0YXBHcmlkKSBsaXN0KCdpbm5lclJpbmdNZXRhbFdpZHRoIGxheWVyMmdyaWQpIGxpc3QoJ3ZpYTFWaWEyU3BhY2UgdmlhMWdyaWQpIGxpc3QoJ2xheWVyMldpZHRoIGxheWVyMmdyaWQpIGxpc3QoJ2xheWVyM1dpZHRoIGxheWVyM2dyaWQpIGxpc3QoJ29yTGF5ZXIzV2lkdGggbGF5ZXIzZ3JpZCkgbGlzdCgnbWluVyBkaWZmR3JpZCkgbGlzdCgnbWF4VyBkaWZmR3JpZCkgbGlzdCgnbWluVG90YWxXIGRpZmZHcmlkKSkgKHRoZVNpemUgPSBjYXIoc2l6ZUFuZEdyaWQpKSAodGhlR3JpZCA9IGNhZHIoc2l6ZUFuZEdyaWQpKSAodGVtcFNpemUgPSAoKGV2YWwodGhlU2l6ZSkgKiBzY2FsZU11bHQpIC8gdGhlR3JpZCkpIHNldCh0aGVTaXplIChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIHRoZUdyaWQpKSkpKSBmb3JlYWNoKGtsdWRnZSBsaXN0KGxpc3QoJ29yTGF5ZXIzV2lkdGggbGF5ZXIzZ3JpZCB2aWEyV2lkdGggdmlhMmdyaWQpIGxpc3QoJ291dGVyUmluZ1RhcFdpZHRoIHRhcEdyaWQgdmlhMVdpZHRoIHZpYTFncmlkKSkgKHRtcE9yTGF5ZXJXaWR0aCA9IG50aCgwIGtsdWRnZSkpICh0bXBPckxheWVyR3JpZCA9IG50aCgxIGtsdWRnZSkpICh0bXBWaWFXaWR0aCA9IG50aCgyIGtsdWRnZSkpICh0bXBWaWFHcmlkID0gbnRoKDMga2x1ZGdlKSkgKHRlbXBTaXplID0gKHRtcFZpYVdpZHRoIC8gdG1wVmlhR3JpZCkpIGNvbmQoKG9kZHAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkpICh0ZW1wU2l6ZSA9IChldmFsKHRtcE9yTGF5ZXJXaWR0aCkgLyB0bXBPckxheWVyR3JpZCkpIHdoZW4oZXZlbnAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkpIHNldCh0bXBPckxheWVyV2lkdGggKGV2YWwodG1wT3JMYXllcldpZHRoKSArIGxheWVyM2dyaWQpKSkpICh0ICh0ZW1wU2l6ZSA9IChldmFsKHRtcE9yTGF5ZXJXaWR0aCkgLyB0bXBPckxheWVyR3JpZCkpIHdoZW4ob2RkcChmaXgoKHRlbXBTaXplICsgMC45OTkpKSkgc2V0KHRtcE9yTGF5ZXJXaWR0aCAoZXZhbCh0bXBPckxheWVyV2lkdGgpICsgbGF5ZXIzZ3JpZCkpKSkpKSAodmlhMVBpdGNoID0gKHZpYTFXaWR0aCArIHZpYTFTcGFjZSkpICh2aWEyUGl0Y2ggPSAodmlhMldpZHRoICsgdmlhMlNwYWNlKSkgKHRhcmdldFJvd3MgPSAoKHcgKyAoLTIuMCAqIHZpYUV4dERpZmYpICsgdmlhMVNwYWNlKSAvIHZpYTFQaXRjaCkpIChyb3dzT2ZDb250YWN0cyA9IGZpeCgoMC45OTkgKyB0YXJnZXRSb3dzKSkpIHdoZW4oKGFicygocm93c09mQ29udGFjdHMgLSB0YXJnZXRSb3dzKSkgPiAwLjAwMDEpIGVycm9yKCJwRXNkVHJhbkltcENsYXNzOiB3ICglZikgZG9lcyBub3Qgc2F0aXNmeSB2aWEgcGl0Y2ggcmVxdWlyZW1lbnRzLiAgVHJ5IGVpdGhlciAlZiBvciAlZlxuIiB3ICgocm93c09mQ29udGFjdHMgKiB2aWExUGl0Y2gpICsgKC0gdmlhMVNwYWNlKSArICgyLjAgKiB2aWFFeHREaWZmKSkgKCgocm93c09mQ29udGFjdHMgLSAxKSAqIHZpYTFQaXRjaCkgKyAoLSB2aWExU3BhY2UpICsgKDIuMCAqIHZpYUV4dERpZmYpKSkpIHdoZW4oKCh3IC0gMWUtMDYpIDwgbWluVykgZXJyb3IoInBFc2RUcmFuSW1wQ2xhc3M6ICB3ICglZikgaXMgbGVzcyB0aGFuIG1pbmltdW0gYWxsb3dhYmxlIHdpZHRoIHBlciBsZWcgKCVmKVxuIiB3IG1pblcpKSB3aGVuKCgodyAtIDFlLTA2KSA+IG1heFcpIGVycm9yKCJwRXNkVHJhbkltcENsYXNzOiAgdyAoJWYpIGlzIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIGFsbG93YWJsZSB3aWR0aCBwZXIgbGVnICglZilcbiIgdyBtYXhXKSkgd2hlbigoKHcgKiBtKSA8IG1pblRvdGFsVykgZXJyb3IoInBFc2RUcmFuSW1wQ2xhc3M6ICB0b3RhbCB3ICglZikgaXMgbGVzcyB0aGFuIHRoZSBtaW5pbXVtIHRvdGFsIHdpZHRoICglZilcbiIgKHcgKiBtKSBtaW5Ub3RhbFcpKSB1bmxlc3MoKCFmbG9hdHAobSkgJiYgbnVtYmVycChtKSkgZXJyb3IoInBFc2RUcmFuSW1wQ2xhc3M6ICBtIG11c3QgYmUgYW4gZXZlbiBpbnRlZ2VyLCBub3QgYSBmbG9hdFxuIikpIHdoZW4ob2RkcChtKSBlcnJvcigicEVzZFRyYW5JbXBDbGFzczogIG0gKG51bWJlciBvZiBsZWdzKSBtdXN0IGJlIGFuIGV2ZW4gaW50ZWdlclxuIikpIChmbGFyZWRHYXRlSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZmxhcmVkR2F0ZU5hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhmbGFyZWRHYXRlSWQgZXJyb3IoInBFc2RUcmFuSW1wQ2xhc3M6ICBDYW5ub3QgZmluZC9vcGVuIGZsYXJlZCBnYXRlICVzXG4iIGZsYXJlZEdhdGVOYW1lKSkgdW5sZXNzKChmbGFyZWRHYXRlSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigicEVzZFRyYW5JbXBDbGFzczogIEZsYXJlZCBnYXRlICVzIGlzIG5vdCBhIHBjZWxsXG4iIGZsYXJlZEdhdGVOYW1lKSkgKHJpbmdJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBnZW5lcmljUmluZ05hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhyaW5nSWQgZXJyb3IoInBFc2RUcmFuSW1wQ2xhc3M6ICBDYW5ub3QgZmluZC9vcGVuIHJpbmcgJXNcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgdW5sZXNzKChyaW5nSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigicEVzZFRyYW5JbXBDbGFzczogIFJpbmcgJXMgaXMgbm90IGEgcGNlbGxcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgKHJpdmV0ZWRSaW5nSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgcml2ZXRlZFJpbmdOYW1lICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3Mocml2ZXRlZFJpbmdJZCBlcnJvcigicEVzZFRyYW5JbXBDbGFzczogIENhbm5vdCBmaW5kL29wZW4gcml2ZXRlZCByaW5nICVzXG4iIHJpdmV0ZWRSaW5nTmFtZSkpIHVubGVzcygocml2ZXRlZFJpbmdJZH4+aXNQYXJhbUNlbGwpIGVycm9yKCJwRXNkVHJhbkltcENsYXNzOiAgUml2ZXRlZCByaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIHJpdmV0ZWRSaW5nTmFtZSkpIGNvbmQoKHNwbGl0U291cmNlIGlmKGxlZnRFbmRUYXAgKGRpZmZYb3JpZ2luID0gKCgtIHNyY1ZpYUdhdGVTcGFjZSkgKyAoLSBleHRyYVNyY1NwYWNlKSArICgtIHZpYTFXaWR0aCkgKyAoLSBzcmNWaWFUb0RpZmZFZGdTcGFjZSkgKyAoLSBzdHJpcFRhcFRvRGlmZlNwYWNlKSArICgtIHRhcFdpZHRoKSkpIChkaWZmWG9yaWdpbiA9ICgoLSBzcmNWaWFHYXRlU3BhY2UpICsgKC0gZXh0cmFTcmNTcGFjZSkgKyAoLSB2aWExV2lkdGgpICsgKC0gc3JjVmlhVG9EaWZmRWRnU3BhY2UpKSkpIChoYWxmU3JjRGlmZkxlbmd0aCA9IChzcmNWaWFHYXRlU3BhY2UgKyBleHRyYVNyY1NwYWNlICsgdmlhMVdpZHRoICsgc3JjVmlhVG9EaWZmRWRnU3BhY2UpKSAoc3JjVmlhVG9TcmNUYXBTcGFjZSA9IDAuMCkpICghZmxvYXROd2VsbCAoc3JjVmlhVG9TcmNUYXBTcGFjZSA9IG1heCgwLjAgKHZpYTFTcGFjZSAtICgodGFwV2lkdGggLSB2aWExV2lkdGgpIC8gMi4wKSkgc3JjVmlhVGFwU3BhY2UpKSAoZGlmZlhvcmlnaW4gPSAoKC0gdGFwV2lkdGgpICsgKC0gc3JjVmlhVG9TcmNUYXBTcGFjZSkgKyAoLSB2aWExV2lkdGgpICsgKC0gc3JjVmlhR2F0ZVNwYWNlKSArICgtIGV4dHJhU3JjU3BhY2UpKSkgKGhhbGZTcmNEaWZmTGVuZ3RoID0gKHNyY1ZpYUdhdGVTcGFjZSArIGV4dHJhU3JjU3BhY2UgKyB2aWExV2lkdGggKyBzcmNWaWFUb1NyY1RhcFNwYWNlKSkpICh0IChkaWZmWG9yaWdpbiA9ICgoLSB2aWExV2lkdGgpICsgKC0gc3JjVmlhR2F0ZVNwYWNlKSArICgtIGV4dHJhU3JjU3BhY2UpICsgKC0gc3JjVmlhVG9EaWZmRWRnU3BhY2UpKSkgKGhhbGZTcmNEaWZmTGVuZ3RoID0gKHNyY1ZpYUdhdGVTcGFjZSArIGV4dHJhU3JjU3BhY2UgKyAodmlhMVdpZHRoIC8gMikpKSkpICh0b3RhbERybkxlbmd0aCA9ICgoMi4wICogKGRyblZpYUdhdGVTcGFjZSArIGV4dHJhRHJuU3BhY2UpKSArIHZpYTFXaWR0aCkpICh0b3RhbFNyY0RpZmZMZW5ndGggPSAoMi4wICogaGFsZlNyY0RpZmZMZW5ndGgpKSAoaGFsZkwgPSAobCAvIDIuMCkpIChkaWZmWWVuZCA9IHcpIChkaWZmWW9yaWdpbiA9IDAuMCkgKGRpZmZJbXBZZW5kID0gKGRpZmZZZW5kICsgZGlmZkltcEVuYykpIChkaWZmSW1wWW9yaWdpbiA9IChkaWZmWW9yaWdpbiAtIGRpZmZJbXBFbmMpKSBpZigoc3BsaXRTb3VyY2UgfHwgIWZsb2F0TndlbGwpIHRoZW4gKGRiaWRUYXBMID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGxpc3QoKGRpZmZYb3JpZ2luOmRpZmZZb3JpZ2luKSAoKGRpZmZYb3JpZ2luICsgdGFwV2lkdGgpOmRpZmZZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkVGFwTCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBXZWxsSW1wbGFudCBsaXN0KGxpc3QoKGRpZmZYb3JpZ2luIC0gdGFwV2VsbEltcEVuYykgKGRpZmZZb3JpZ2luIC0gdGFwV2VsbEltcEVuYykpIGxpc3QoKGRpZmZYb3JpZ2luICsgdGFwV2lkdGggKyBpZihzcGxpdFNvdXJjZSB0YXBXZWxsSW1wRW5jIDAuMCkpIChkaWZmWWVuZCArIHRhcFdlbGxJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkaWZmWGxvb3AgPSAoZGlmZlhvcmlnaW4gKyB0YXBXaWR0aCArIHN0cmlwVGFwVG9EaWZmU3BhY2UpKSB3aGVuKChzcGxpdFNvdXJjZSAmJiAhbGVmdEVuZFRhcCkgKGRiRGVsZXRlT2JqZWN0IGRiaWRUYXBMKSAoZGJEZWxldGVPYmplY3QgZGJpZCkgKGRpZmZYbG9vcCA9IGRpZmZYb3JpZ2luKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhvcmlnaW46ZGlmZllvcmlnaW4pICgoZGlmZlhvcmlnaW4gKyBzcmNWaWFUb0RpZmZFZGdTcGFjZSk6ZGlmZlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KChkaWZmWG9yaWdpbiAtIGRpZmZJbXBFbmMpIGRpZmZJbXBZb3JpZ2luKSBsaXN0KChkaWZmWG9yaWdpbiArIHNyY1ZpYVRvRGlmZkVkZ1NwYWNlKSBkaWZmSW1wWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGlmZlhsb29wID0gKGRpZmZYb3JpZ2luICsgc3JjVmlhVG9EaWZmRWRnU3BhY2UpKSkgZm9yKHNlY3Rpb24gMSAobSAvIDIpIChzcmNEaWZmWGVuZCA9IChkaWZmWGxvb3AgKyBoYWxmU3JjRGlmZkxlbmd0aCArIGhhbGZMKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKGRpZmZYbG9vcDpkaWZmWW9yaWdpbikgKHNyY0RpZmZYZW5kOmRpZmZZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdChpZihzcGxpdFNvdXJjZSAoZGlmZlhsb29wIC0gZGlmZkltcEVuYykgZGlmZlhsb29wKSBkaWZmSW1wWW9yaWdpbikgbGlzdChzcmNEaWZmWGVuZCBkaWZmSW1wWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGlmZlhsb29wID0gc3JjRGlmZlhlbmQpIChkcm5EaWZmWGVuZCA9IChkaWZmWGxvb3AgKyB0b3RhbERybkxlbmd0aCArIGwpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhsb29wOmRpZmZZb3JpZ2luKSAoZHJuRGlmZlhlbmQ6ZGlmZlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KGRpZmZYbG9vcCBkaWZmSW1wWW9yaWdpbikgbGlzdChkcm5EaWZmWGVuZCBkaWZmSW1wWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBkTmV0KSAoZGlmZlhsb29wID0gZHJuRGlmZlhlbmQpIChzcmNEaWZmWGVuZCA9IChkaWZmWGxvb3AgKyBoYWxmU3JjRGlmZkxlbmd0aCArIGhhbGZMKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKGRpZmZYbG9vcDpkaWZmWW9yaWdpbikgKHNyY0RpZmZYZW5kOmRpZmZZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdChkaWZmWGxvb3AgZGlmZkltcFlvcmlnaW4pIGxpc3QoaWYoc3BsaXRTb3VyY2UgKHNyY0RpZmZYZW5kICsgZGlmZkltcEVuYykgc3JjRGlmZlhlbmQpIGRpZmZJbXBZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIHdoZW4oIWZsb2F0TndlbGwgKHRhcFgwID0gKHNyY0RpZmZYZW5kICsgc3RyaXBUYXBUb0RpZmZTcGFjZSkpICh0YXBYMSA9ICh0YXBYMCArIHRhcFdpZHRoKSkgKGRiaWRUYXAgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwTGF5ZXIgbGlzdCgodGFwWDA6ZGlmZllvcmlnaW4pICh0YXBYMTpkaWZmWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZFRhcCBzTmV0KSBjb25kKChzcGxpdFNvdXJjZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBXZWxsSW1wbGFudCBsaXN0KGxpc3QoKHRhcFgwIC0gdGFwV2VsbEltcEVuYykgKGRpZmZZb3JpZ2luIC0gdGFwV2VsbEltcEVuYykpIGxpc3QoKHRhcFgxICsgdGFwV2VsbEltcEVuYykgKGRpZmZZZW5kICsgdGFwV2VsbEltcEVuYykpKSkpKSAoKHNlY3Rpb24gPT0gKG0gLyAyKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwV2VsbEltcGxhbnQgbGlzdChsaXN0KHRhcFgwIChkaWZmWW9yaWdpbiAtIHRhcFdlbGxJbXBFbmMpKSBsaXN0KCh0YXBYMSArIHRhcFdlbGxJbXBFbmMpIChkaWZmWWVuZCArIHRhcFdlbGxJbXBFbmMpKSkpKSkgKHQgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwV2VsbEltcGxhbnQgbGlzdChsaXN0KHRhcFgwIChkaWZmWW9yaWdpbiAtIHRhcFdlbGxJbXBFbmMpKSBsaXN0KHRhcFgxIChkaWZmWWVuZCArIHRhcFdlbGxJbXBFbmMpKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkpIChkaWZmWGxvb3AgPSAoc3JjRGlmZlhlbmQgKyB0YXBXaWR0aCArICgyICogc3RyaXBUYXBUb0RpZmZTcGFjZSkpKSkgKGRpZmZYZW5kID0gKGRpZmZYbG9vcCAtIHN0cmlwVGFwVG9EaWZmU3BhY2UpKSB3aGVuKChzcGxpdFNvdXJjZSAmJiAhcmlnaHRFbmRUYXApIChkYkRlbGV0ZU9iamVjdCBkYmlkVGFwKSAoZGJEZWxldGVPYmplY3QgZGJpZCkgKGRpZmZYbG9vcCA9IHNyY0RpZmZYZW5kKSAoZGlmZlhlbmQgPSBkaWZmWGxvb3ApKSB3aGVuKGZsb2F0TndlbGwgKGRpZmZYZW5kID0gKGRpZmZYbG9vcCArIHZpYTFXaWR0aCArIHNyY1ZpYVRvRGlmZkVkZ1NwYWNlKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKGRpZmZYbG9vcDpkaWZmWW9yaWdpbikgKGRpZmZYZW5kOmRpZmZZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdChkaWZmWGxvb3AgZGlmZkltcFlvcmlnaW4pIGxpc3QoKGRpZmZYZW5kICsgZGlmZkltcEVuYykgZGlmZkltcFllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBpZExheWVyIGxpc3QoKGRpZmZYb3JpZ2luOmRpZmZZb3JpZ2luKSAoZGlmZlhlbmQ6ZGlmZlllbmQpKSkgd2hlbihkaWZmQ29yZUltcGxhbnQgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KCgoZGlmZlhvcmlnaW4gKyAoc3RyaXBUYXBUb0RpZmZTcGFjZSArIHRhcFdpZHRoKSArICgtIGRpZmZDb3JlSW1wRW5jKSk6KGRpZmZZb3JpZ2luICsgKC0gZGlmZkNvcmVJbXBFbmMpKSkgKChkaWZmWGVuZCArICgtIChzdHJpcFRhcFRvRGlmZlNwYWNlICsgdGFwV2lkdGgpKSArIGRpZmZDb3JlSW1wRW5jKTooZGlmZlllbmQgKyBkaWZmQ29yZUltcEVuYykpKSkpIChnYXRlWG9mZnNldCA9IDAuMCkgZm9yKGdhdGVOdW0gMSBtIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgZmxhcmVkR2F0ZUlkIHNwcmludGYobmlsICJnJWQiIGdhdGVOdW0pICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJnYXRlTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoImdhdGVSZWNvZ25pdGlvbkxheWVyIiAibGlzdCIgcmdhdGVMYXllcikgbGlzdCgidyIgImZsb2F0IiB3KSBsaXN0KCJsIiAiZmxvYXQiIGwpIGxpc3QoImZsYXJlQW1vdW50X2luIiAiZmxvYXQiIGZsYXJlWWFtb3VudF9pbikgbGlzdCgiZmxhcmVBbW91bnQiICJmbG9hdCIgZmxhcmVZYW1vdW50KSBsaXN0KCJmbGFyZUV4dGVuc2lvbiIgImZsb2F0IiBmbGFyZVlleHRlbnNpb24pIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgZ2F0ZVhvZmZzZXQpKSkpIHVubGVzcyhpbnN0IGVycm9yKCJwRXNkVHJhbkltcENsYXNzOiAgRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBmbGFyZWQgZ2F0ZSAlcyIgZmxhcmVkR2F0ZU5hbWUpKSAobWFzdGVyID0gKGluc3R+Pm1hc3RlcikpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciAobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZ05ldCkgKG1vZGVsVGV4dFggPSAoZ2F0ZVhvZmZzZXQgKyAoKGNhYWRyKChtYXN0ZXJ+Pm5vZmxhcmVQb2ludHMpKSAtIGNhYXIoKG1hc3Rlcn4+bm9mbGFyZVBvaW50cykpKSAvIDIpKSkgKG1vZGVsVGV4dFkgPSAoKGNhZGFkcigobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkgLSBjYWRhcigobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkpIC8gMikpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbW9kZWxUZXh0TGF5ZXIgbGlzdChtb2RlbFRleHRYIG1vZGVsVGV4dFkpIG1vZGVsVGV4dCAiY2VudGVyQ2VudGVyIiAiUjAiICJzdGljayIgbW9kZWxUZXh0TGF5ZXJTaXplKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBnYXRlTGF5ZXIgKG1hc3Rlcn4+dG9wRmxhcmVQb2ludHMpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBnTmV0KSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIpIGFjY2Vzc0RpcikgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIChtYXN0ZXJ+PmJvdHRvbUZsYXJlUG9pbnRzKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZ05ldCkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGdOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJib3R0b20iKSBhY2Nlc3NEaXIpIGNvbmQoKChtb2QoZ2F0ZU51bSAyKSA9PSAxKSAoZ2F0ZVhvZmZzZXQgPSAoZ2F0ZVhvZmZzZXQgKyBsICsgdG90YWxEcm5MZW5ndGgpKSkgKHQgKGdhdGVYb2Zmc2V0ID0gKGdhdGVYb2Zmc2V0ICsgbCArIHRvdGFsU3JjRGlmZkxlbmd0aCArIHRhcFdpZHRoICsgKDIgKiBzdHJpcFRhcFRvRGlmZlNwYWNlKSkpKSkpIChkcm5fdmlhMVhvcmlnaW4gPSAwLjApIChkcm5fdmlhMVhlbmQgPSB2aWExV2lkdGgpIGNvbmQoKCgoZHJuX2xheWVyMkwgPSAobGF5ZXIyRW5jVmlhMSArIHZpYTFXaWR0aCArIGxheWVyMkVuY1ZpYTEpKSA+IChkcm5fbGF5ZXIyTGEgPSAobGF5ZXIyRW5jVmlhMiArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpKSkgKGRybl9sYXllcjJEZWx0YVZpYTEgPSBsYXllcjJFbmNWaWExKSkgKHQgKGRlbHRhID0gKChkcm5fbGF5ZXIyTGEgLSBkcm5fbGF5ZXIyTCkgLyAyLjApKSAoZHJuX2xheWVyMkRlbHRhVmlhMSA9IChsYXllcjJFbmNWaWExICsgKGZpeCgoMWUtMDYgKyAoZGVsdGEgLyBsYXllcjJncmlkKSkpICogbGF5ZXIyZ3JpZCkpKSAoZHJuX2xheWVyMkwgPSBkcm5fbGF5ZXIyTGEpKSkgKGxheWVyMlcgPSAoKDIuMCAqIGxheWVyMkVuY1ZpYTEpICsgKHJvd3NPZkNvbnRhY3RzICogdmlhMVBpdGNoKSArICgtIHZpYTFTcGFjZSkpKSAobGF5ZXIyV2EgPSAoKDIuMCAqIGxheWVyMkVuY1ZpYTIpIC0gdmlhMlNwYWNlKSkgKHJvd3NPZkNvbnRhY3RzMiA9IDApIHdoaWxlKCgobGF5ZXIyV2EgLSAxZS0wNSkgPCBsYXllcjJXKSAobGF5ZXIyV2EgPSAobGF5ZXIyV2EgKyB2aWEyUGl0Y2gpKSAocm93c09mQ29udGFjdHMyID0gKHJvd3NPZkNvbnRhY3RzMiArIDEpKSkgKGxheWVyMldhID0gKGxheWVyMldhIC0gdmlhMlBpdGNoKSkgKHJvd3NPZkNvbnRhY3RzMiA9IChyb3dzT2ZDb250YWN0czIgLSAxKSkgKGxheWVyMllEZWx0YVZpYTEgPSBsYXllcjJFbmNWaWExKSAoZXNfZHZpYTFYb3JpZ2luID0gc3JjVmlhVG9TcmNUYXBTcGFjZSkgKGVzX2R2aWExWGVuZCA9IChlc19kdmlhMVhvcmlnaW4gKyB2aWExV2lkdGgpKSAoZXNfdHZpYTFYb3JpZ2luID0gKGVzX2R2aWExWG9yaWdpbiAtIHZpYTFQaXRjaCkpIChlc190dmlhMVhlbmQgPSAoZXNfdHZpYTFYb3JpZ2luICsgdmlhMVdpZHRoKSkgY29uZCgoKChlc19sYXllcjJMID0gKCgyLjAgKiAobGF5ZXIyRW5jVmlhMSArIHZpYTFXaWR0aCkpICsgdmlhMVNwYWNlKSkgPiAoZXNfbGF5ZXIyTGEgPSAoKDIuMCAqIChsYXllcjJFbmNWaWEyICsgdmlhMldpZHRoKSkgKyB2aWEyU3BhY2UpKSkgKGVzX2xheWVyMkRlbHRhVmlhMSA9IGxheWVyMkVuY1ZpYTEpKSAodCAoZGVsdGEgPSAoKGVzX2xheWVyMkxhIC0gZXNfbGF5ZXIyTCkgLyAyLjApKSAoZXNfbGF5ZXIyRGVsdGFWaWExID0gKGxheWVyMkVuY1ZpYTEgKyAoZml4KCgxZS0wNiArIChkZWx0YSAvIGxheWVyMmdyaWQpKSkgKiBsYXllcjJncmlkKSkpIChlc19sYXllcjJMID0gZXNfbGF5ZXIyTGEpKSkgKGVzX3R2aWEyWG9yaWdpbiA9IChlc190dmlhMVhvcmlnaW4gLSBlc19sYXllcjJEZWx0YVZpYTEpKSAoZXNfdHZpYTJYZW5kID0gKGVzX3R2aWEyWG9yaWdpbiArIHZpYTJXaWR0aCkpIChlc19kdmlhMlhvcmlnaW4gPSAoZXNfdHZpYTJYZW5kICsgdmlhMlNwYWNlKSkgKGVzX2R2aWEyWGVuZCA9IChlc19kdmlhMlhvcmlnaW4gKyB2aWEyV2lkdGgpKSBjb25kKCgoKHNzX2xheWVyMkwgPSAoKDIuMCAqIChsYXllcjJFbmNWaWExICsgdmlhMVNwYWNlKSkgKyAoMy4wICogdmlhMVdpZHRoKSkpID4gKHNzX2xheWVyMkxhID0gKCgyLjAgKiAobGF5ZXIyRW5jVmlhMiArIHZpYTJTcGFjZSkpICsgKDMuMCAqIHZpYTJXaWR0aCkpKSkgKHNzX2xheWVyMkRlbHRhVmlhMSA9IGxheWVyMkVuY1ZpYTEpKSAodCAoZGVsdGEgPSAoKHNzX2xheWVyMkxhIC0gc3NfbGF5ZXIyTCkgLyAyLjApKSAoc3NfbGF5ZXIyRGVsdGFWaWExID0gKGxheWVyMkVuY1ZpYTEgKyAocm91bmQoKDFlLTA2ICsgKGRlbHRhIC8gbGF5ZXIyZ3JpZCkpKSAqIGxheWVyMmdyaWQpKSkgKHNzX2xheWVyMkwgPSBzc19sYXllcjJMYSkpKSBpZihzcGxpdFNvdXJjZSAoY29udGFjdFhsb29wID0gKGRpZmZYb3JpZ2luICsgc3JjVmlhVG9EaWZmRWRnU3BhY2UgKyBpZihsZWZ0RW5kVGFwICh0YXBXaWR0aCArIHN0cmlwVGFwVG9EaWZmU3BhY2UpIDAuMCkpKSAoY29udGFjdFhsb29wID0gKGRpZmZYb3JpZ2luICsgdGFwV2lkdGgpKSkgKHZpYTFZb3JpZ2luID0gdmlhRXh0RGlmZikgKGxheWVyMllvcmlnaW4gPSAodmlhMVlvcmlnaW4gLSBsYXllcjJZRGVsdGFWaWExKSkgKHZpYTJZb3JpZ2luID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyKSkgKGxheWVyMlllbmQgPSAobGF5ZXIyWW9yaWdpbiArIChyb3dzT2ZDb250YWN0cyAqIHZpYTFQaXRjaCkgKyAoLSB2aWExU3BhY2UpICsgKDIuMCAqIGxheWVyMkVuY1ZpYTEpKSkgd2hlbihzcGxpdFNvdXJjZSAodGFwWG9mZnNldFYxID0gKCh0YXBXaWR0aCAtIHZpYTFXaWR0aCkgLyAyKSkgKHRhcFhvZmZzZXRWMSA9IChmaXgoKCh0YXBYb2Zmc2V0VjEgLyB0YXBHcmlkKSArIDFlLTA2KSkgKiB0YXBHcmlkKSkgKHRhcFhvZmZzZXRWMiA9ICgodGFwV2lkdGggLSB2aWEyV2lkdGgpIC8gMikpICh0YXBYb2Zmc2V0VjIgPSAoZml4KCgodGFwWG9mZnNldFYyIC8gdGFwR3JpZCkgKyAxZS0wNikpICogdGFwR3JpZCkpICh2aWExVyA9ICh3IC0gKDIgKiAodGFwTGF5Mk9mZnNldFkgKyBsYXllcjJFbmNWaWExKSkpKSAodmlhMVRhcFJvd3MgPSBtYXgoMSBmaXgoKCgodmlhMVcgKyB2aWExU3BhY2UpIC8gdmlhMVBpdGNoKSArIDFlLTA2KSkpKSAodmlhMVdhID0gKHZpYTFXaWR0aCArICgodmlhMVRhcFJvd3MgLSAxKSAqIHZpYTFQaXRjaCkpKSAodmlhMVlPZmYgPSBtYXgoMC4wICh2aWExVyAtIHZpYTFXYSkpKSAodmlhMVlvZmZzZXQgPSAoZml4KCgoKHZpYTFZT2ZmIC8gMikgLyBsYXllcjJncmlkKSArIDFlLTA2KSkgKiBsYXllcjJncmlkKSkgKHZpYTJXID0gKHZpYTFXIC0gKDIgKiAodGFwTGF5M09mZnNldFkgKyBsYXllcjNFbmNWaWEyKSkpKSAodmlhMlRhcFJvd3MgPSBtYXgoMSBmaXgoKCgodmlhMlcgKyB2aWEyU3BhY2UpIC8gdmlhMlBpdGNoKSArIDFlLTA2KSkpKSAodmlhMldhID0gKHZpYTJXaWR0aCArICgodmlhMlRhcFJvd3MgLSAxKSAqIHZpYTJQaXRjaCkpKSAodmlhMllPZmYgPSBtYXgoMC4wICh2aWEyVyAtIHZpYTJXYSkpKSAodmlhMllvZmZzZXQgPSAoZml4KCgoKHZpYTJZT2ZmIC8gMikgLyBsYXllcjJncmlkKSArIDFlLTA2KSkgKiBsYXllcjJncmlkKSkgKGxheWVyMlRhcFkwID0gKGRpZmZZb3JpZ2luICsgdGFwTGF5Mk9mZnNldFkpKSAobGF5ZXIyVGFwWTEgPSAoZGlmZlllbmQgLSB0YXBMYXkyT2Zmc2V0WSkpICh2aWExVGFwWTAgPSAobGF5ZXIyVGFwWTAgKyBsYXllcjJFbmNWaWExKSkgKGxheWVyM1RhcFkwID0gKGxheWVyMlRhcFkwICsgdGFwTGF5M09mZnNldFkpKSAobGF5ZXIzVGFwWTEgPSAobGF5ZXIyVGFwWTEgLSB0YXBMYXkzT2Zmc2V0WSkpICh2aWEyVGFwWTAgPSAobGF5ZXIzVGFwWTAgKyBsYXllcjNFbmNWaWEyICsgdmlhMllvZmZzZXQpKSAobDJidmxDbnRybCA9IChsYXllcjJXaWR0aEQgLyAzLjApKSAobDJidmxDbnRybCA9IChyb3VuZCgoKGwyYnZsQ250cmwgLyBsYXllcjJncmlkKSArIDAuMDAxKSkgKiBsYXllcjJncmlkKSkgKGwyYnZsQ250cmxTID0gKGxheWVyMldpZHRoUyAvIDMuMCkpIChsMmJ2bENudHJsUyA9IChyb3VuZCgoKGwyYnZsQ250cmxTIC8gbGF5ZXIyZ3JpZCkgKyAwLjAwMSkpICogbGF5ZXIyZ3JpZCkpIChsM2J2bENudHJsID0gKGxheWVyM1dpZHRoRCAvIDMuMCkpIChsM2J2bENudHJsID0gKHJvdW5kKCgobDNidmxDbnRybCAvIGxheWVyM2dyaWQpICsgMC4wMDEpKSAqIGxheWVyM2dyaWQpKSAobDNidmxDbnRybFMgPSAobGF5ZXIzV2lkdGhTIC8gMy4wKSkgKGwzYnZsQ250cmxTID0gKHJvdW5kKCgobDNidmxDbnRybFMgLyBsYXllcjNncmlkKSArIDAuMDAxKSkgKiBsYXllcjNncmlkKSkpIGZvcihyZWdpb24gMCBtICh2aWExWWxvb3AgPSB2aWExWW9yaWdpbikgY29uZCgoKHJlZ2lvbiA9PSAwKSBjb25kKChzcGxpdFNvdXJjZSAoZHZ4byA9IGNvbnRhY3RYbG9vcCkgKGR2eGUgPSAoZHZ4byArIHZpYTFXaWR0aCkpICh0dnhvID0gKGRpZmZYb3JpZ2luICsgdGFwWG9mZnNldFYxKSkgKHR2eGUgPSAodHZ4byArIHZpYTFXaWR0aCkpKSAoIWZsb2F0TndlbGwgKGR2eG8gPSAoY29udGFjdFhsb29wICsgc3JjVmlhVG9TcmNUYXBTcGFjZSkpIChkdnhlID0gKGR2eG8gKyB2aWExV2lkdGgpKSAodHZ4byA9IChkdnhvIC0gdmlhMVBpdGNoKSkgKHR2eGUgPSAodHZ4byArIHZpYTFXaWR0aCkpKSAodCAoZHZ4byA9IChkaWZmWG9yaWdpbiArIHNyY1ZpYVRvRGlmZkVkZ1NwYWNlKSkgKGR2eGUgPSAoZHZ4byArIHZpYTFXaWR0aCkpICh0dnhvID0gZHZ4bykgKHR2eGUgPSBkdnhlKSkpIGZvcihyb3cgMSByb3dzT2ZDb250YWN0cyAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgoZHZ4bzp2aWExWWxvb3ApIChkdnhlOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIHdoZW4oKCFzcGxpdFNvdXJjZSAmJiAhZmxvYXROd2VsbCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHR2eG86dmlhMVlsb29wKSAodHZ4ZToodmlhMVlsb29wICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSkgKHZpYTFZbG9vcCA9ICh2aWExWWxvb3AgKyB2aWExUGl0Y2gpKSkgd2hlbigoc3BsaXRTb3VyY2UgJiYgbGVmdEVuZFRhcCkgKHZpYTFZbG9vcFQgPSAodmlhMVlvZmZzZXQgKyB2aWExVGFwWTApKSBmb3Iocm93IDEgdmlhMVRhcFJvd3MgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHR2eG86dmlhMVlsb29wVCkgKHR2eGU6KHZpYTFZbG9vcFQgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpICh2aWExWWxvb3BUID0gKHZpYTFZbG9vcFQgKyB2aWExUGl0Y2gpKSkpIGlmKGVuZFRhcE1ldEluc2lkZU91dCB0aGVuIChlbmRUYXBMYXllcjJYT2Zmc2V0ID0gKC0gbWF4KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBsYXllcjJXaWR0aCkgMC4wKSkpIGVsc2UgKGVuZFRhcExheWVyMlhPZmZzZXQgPSAwLjApKSBpZihzcGxpdFNvdXJjZSB0aGVuIGlmKGxheWVyMkVkZ2VzQXQ0NSB0aGVuIChsYXllcjJZMGQgPSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmxTKSkpIChsYXllcjJZMWQgPSBsYXllcjJZb3JpZ2luKSAobGF5ZXIyWTJkID0gKHZpYTFZbG9vcCArICgtIHZpYTFTcGFjZSkgKyBsYXllcjJFbmNWaWExKSkgKGxheWVyMlkzZCA9ICh2aWExWWxvb3AgKyAoLSB2aWExU3BhY2UpICsgbGF5ZXIyRW5jVmlhMSArIGwyYnZsQ250cmxTKSkgKGxheWVyMlk0ZCA9ICh2aWExWWxvb3AgKyAoLSB2aWExU3BhY2UpICsgbGF5ZXIyRW5jVmlhMSArIGwyYnZsQ250cmxTKSkgKGxheWVyMlk1ZCA9ICh2aWExWWxvb3AgKyAoLSB2aWExU3BhY2UpICsgbGF5ZXIyRW5jVmlhMSkpIChsYXllcjJZNmQgPSBsYXllcjJZb3JpZ2luKSAobGF5ZXIyWTdkID0gKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsUykpKSAobGF5ZXIyWExlbmMgPSBzb3VyY2VMYXkyVmlhMUVuYykgKGxheWVyMlhSZW5jID0gKGxheWVyMldpZHRoUyAtICh2aWExV2lkdGggKyBsYXllcjJYTGVuYykpKSAobGF5ZXIyWDBkID0gKChkdnhvIC0gbGF5ZXIyWExlbmMpICsgbDJidmxDbnRybFMpKSAobGF5ZXIyWDFkID0gKGR2eG8gLSBsYXllcjJYTGVuYykpIChsYXllcjJYMmQgPSAoZHZ4byAtIGxheWVyMlhMZW5jKSkgKGxheWVyMlgzZCA9ICgoZHZ4byAtIGxheWVyMlhMZW5jKSArIGwyYnZsQ250cmxTKSkgKGxheWVyMlg0ZCA9IChkdnhlICsgbGF5ZXIyWFJlbmMgKyAoLSBsMmJ2bENudHJsUykpKSAobGF5ZXIyWDVkID0gKGR2eGUgKyBsYXllcjJYUmVuYykpIChsYXllcjJYNmQgPSAoZHZ4ZSArIGxheWVyMlhSZW5jKSkgKGxheWVyMlg3ZCA9IChkdnhlICsgbGF5ZXIyWFJlbmMgKyAoLSBsMmJ2bENudHJsUykpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KGxheWVyMlgwZCBsYXllcjJZMGQpIGxpc3QobGF5ZXIyWDFkIGxheWVyMlkxZCkgbGlzdChsYXllcjJYMmQgbGF5ZXIyWTJkKSBsaXN0KGxheWVyMlgzZCBsYXllcjJZM2QpIGxpc3QobGF5ZXIyWDRkIGxheWVyMlk0ZCkgbGlzdChsYXllcjJYNWQgbGF5ZXIyWTVkKSBsaXN0KGxheWVyMlg2ZCBsYXllcjJZNmQpIGxpc3QobGF5ZXIyWDdkIGxheWVyMlk3ZCkpKSkgZWxzZSAobGF5ZXIyWDBkID0gKGR2eG8gLSBzb3VyY2VMYXkyVmlhMUVuYykpIChsYXllcjJYMWQgPSAobGF5ZXIyWDBkICsgbGF5ZXIyV2lkdGhTKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYMGQgbGF5ZXIyWW9yaWdpbikgbGlzdChsYXllcjJYMWQgbGF5ZXIyWWVuZCkpKSkpIHdoZW4obGVmdEVuZFRhcCAobGF5ZXIyWDB0ID0gKHR2eG8gLSB0YXBMYXkyVmlhMUVuYykpIChsYXllcjJYMXQgPSAobGF5ZXIyWDB0ICsgdGFwTGF5MldpZHRoKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYMHQgbGF5ZXIyVGFwWTApIGxpc3QobGF5ZXIyWDF0IGxheWVyMlRhcFkxKSkpKSkgZWxzZSBpZigobGF5ZXIyV2lkdGggPiAwLjApIHRoZW4gaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGwyYnZsQ250cmwgPSAobGF5ZXIyV2lkdGggLyAzLjApKSAobDJidmxDbnRybCA9IChyb3VuZCgoKGwyYnZsQ250cmwgLyBsYXllcjJncmlkKSArIDAuMDAxKSkgKiBsYXllcjJncmlkKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgbDJidmxDbnRybCArIGVuZFRhcExheWVyMlhPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBlbmRUYXBMYXllcjJYT2Zmc2V0KSBsYXllcjJZb3JpZ2luKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBlbmRUYXBMYXllcjJYT2Zmc2V0KSBsYXllcjJZZW5kKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBsMmJ2bENudHJsICsgZW5kVGFwTGF5ZXIyWE9mZnNldCkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgodHZ4byArIGVuZFRhcExheWVyMlhPZmZzZXQgKyAoLSBsYXllcjJFbmNWaWExKSArIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExVmlhMlNwYWNlICsgdmlhMVNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyMkVuY1ZpYTIpKSArICgtIGwyYnZsQ250cmwpKSAobGF5ZXIyWWVuZCArIGwyYnZsQ250cmwpKSBsaXN0KCh0dnhvICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArICgtIGxheWVyMkVuY1ZpYTEpICsgbWF4KGxheWVyMldpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFWaWEyU3BhY2UgKyB2aWExU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIyRW5jVmlhMikpKSBsYXllcjJZZW5kKSBsaXN0KCh0dnhvICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArICgtIGxheWVyMkVuY1ZpYTEpICsgbWF4KGxheWVyMldpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFWaWEyU3BhY2UgKyB2aWExU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIyRW5jVmlhMikpKSBsYXllcjJZb3JpZ2luKSBsaXN0KCh0dnhvICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArICgtIGxheWVyMkVuY1ZpYTEpICsgbWF4KGxheWVyMldpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFWaWEyU3BhY2UgKyB2aWExU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIyRW5jVmlhMikpICsgKC0gbDJidmxDbnRybCkpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QoKHR2eG8gKyAoLSBsYXllcjJFbmNWaWExKSArIGVuZFRhcExheWVyMlhPZmZzZXQpIGxheWVyMllvcmlnaW4pIGxpc3QoKHR2eG8gKyBlbmRUYXBMYXllcjJYT2Zmc2V0ICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVZpYTJTcGFjZSArIHZpYTFTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjJFbmNWaWEyKSkpIGxheWVyMlllbmQpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KCgodHZ4byArICgtIGVzX2xheWVyMkRlbHRhVmlhMSkpOmxheWVyMllvcmlnaW4pICgodHZ4byArICgtIGVzX2xheWVyMkRlbHRhVmlhMSkgKyBlc19sYXllcjJMKTpsYXllcjJZZW5kKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgaWYoc3BsaXRTb3VyY2UgdGhlbiAoZHZ4byA9IChkdnhlIC0gdmlhMldpZHRoKSkgKGR2eGUgPSBkdnhlKSAodHZ4byA9IChkaWZmWG9yaWdpbiArIHRhcFhvZmZzZXRWMikpICh0dnhlID0gKHR2eG8gKyB2aWEyV2lkdGgpKSBlbHNlIHVubGVzcygodmlhMVZpYTJTcGFjZSA+IDAuMCkgKHR2eG8gPSAodHZ4byArICgtIGVzX2xheWVyMkRlbHRhVmlhMSkgKyBsYXllcjJFbmNWaWEyKSkgKHR2eGUgPSAodHZ4byArIHZpYTJXaWR0aCkpKSBpZigodmlhMVZpYTJTcGFjZSA+IDAuMCkgdGhlbiAoZHZ4byA9IChkdnhlICsgdmlhMVZpYTJTcGFjZSkpIGVsc2UgKGR2eG8gPSAodHZ4ZSArIHZpYTJTcGFjZSkpKSAoZHZ4ZSA9IChkdnhvICsgdmlhMldpZHRoKSkpICh2aWEyWWxvb3AgPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIpKSBmb3Iocm93IDEgcm93c09mQ29udGFjdHMyIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KChkdnhvOnZpYTJZbG9vcCkgKGR2eGU6KHZpYTJZbG9vcCArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgdW5sZXNzKChzcGxpdFNvdXJjZSB8fCAodmlhMVZpYTJTcGFjZSA+IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KCh0dnhvOnZpYTJZbG9vcCkgKHR2eGU6KHZpYTJZbG9vcCArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkpICh2aWEyWWxvb3AgPSAodmlhMllsb29wICsgdmlhMlBpdGNoKSkpIHdoZW4oKHNwbGl0U291cmNlICYmIGxlZnRFbmRUYXApICh2aWEyWWxvb3BUID0gdmlhMlRhcFkwKSBmb3Iocm93IDEgdmlhMlRhcFJvd3MgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHR2eG86dmlhMllsb29wVCkgKHR2eGU6KHZpYTJZbG9vcFQgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpICh2aWEyWWxvb3BUID0gKHZpYTJZbG9vcFQgKyB2aWEyUGl0Y2gpKSkpIGlmKHNwbGl0U291cmNlIHRoZW4gaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGxheWVyM1kwZCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybFMpKSkgKGxheWVyM1kxZCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgKGxheWVyM1kyZCA9ICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIChsYXllcjNZM2QgPSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsUykpIChsYXllcjNZNGQgPSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsUykpIChsYXllcjNZNWQgPSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSAobGF5ZXIzWTZkID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSAobGF5ZXIzWTdkID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikgKyAoLSBsM2J2bENudHJsUykpKSAobGF5ZXIzWExlbmMgPSBzb3VyY2VMYXkzVmlhMkVuYykgKGxheWVyM1hSZW5jID0gKGxheWVyM1dpZHRoUyAtICh2aWEyV2lkdGggKyBsYXllcjNYTGVuYykpKSAobGF5ZXIzWDBkID0gKChkdnhvIC0gbGF5ZXIzWExlbmMpICsgbDNidmxDbnRybFMpKSAobGF5ZXIzWDFkID0gKGR2eG8gLSBsYXllcjNYTGVuYykpIChsYXllcjNYMmQgPSAoZHZ4byAtIGxheWVyM1hMZW5jKSkgKGxheWVyM1gzZCA9ICgoZHZ4byAtIGxheWVyM1hMZW5jKSArIGwzYnZsQ250cmxTKSkgKGxheWVyM1g0ZCA9IChkdnhlICsgbGF5ZXIzWFJlbmMgKyAoLSBsM2J2bENudHJsUykpKSAobGF5ZXIzWDVkID0gKGR2eGUgKyBsYXllcjNYUmVuYykpIChsYXllcjNYNmQgPSAoZHZ4ZSArIGxheWVyM1hSZW5jKSkgKGxheWVyM1g3ZCA9IChkdnhlICsgbGF5ZXIzWFJlbmMgKyAoLSBsM2J2bENudHJsUykpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KGxheWVyM1gwZCBsYXllcjNZMGQpIGxpc3QobGF5ZXIzWDFkIGxheWVyM1kxZCkgbGlzdChsYXllcjNYMmQgbGF5ZXIzWTJkKSBsaXN0KGxheWVyM1gzZCBsYXllcjNZM2QpIGxpc3QobGF5ZXIzWDRkIGxheWVyM1k0ZCkgbGlzdChsYXllcjNYNWQgbGF5ZXIzWTVkKSBsaXN0KGxheWVyM1g2ZCBsYXllcjNZNmQpIGxpc3QobGF5ZXIzWDdkIGxheWVyM1k3ZCkpKSkgZWxzZSAobGF5ZXIzWDBkID0gKGR2eG8gLSBzb3VyY2VMYXkzVmlhMkVuYykpIChsYXllcjNYMWQgPSAobGF5ZXIzWDBkICsgbGF5ZXIzV2lkdGhTKSkgKGxheWVyM1kwZCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgKGxheWVyM1kxZCA9ICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QobGF5ZXIzWDBkIGxheWVyM1kwZCkgbGlzdChsYXllcjNYMWQgbGF5ZXIzWTFkKSkpKSkgd2hlbihsZWZ0RW5kVGFwIChsYXllcjNYMHQgPSAodHZ4byAtIHRhcExheTNWaWEyRW5jKSkgKGxheWVyM1gxdCA9IChsYXllcjNYMHQgKyB0YXBMYXkzV2lkdGgpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KGxheWVyM1gwdCBsYXllcjNUYXBZMCkgbGlzdChsYXllcjNYMXQgbGF5ZXIzVGFwWTEpKSkpKSBlbHNlIGlmKChsYXllcjNXaWR0aCA+IDAuMCkgdGhlbiBpZigobGF5ZXIzV2lkdGhfb3V0c2lkZSA+IDAuMCkgdGhlbiAod2lkdGhUb2JlRHJhd24gPSBtYXgobGF5ZXIzV2lkdGhfb3V0c2lkZSAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExU3BhY2UgKyB2aWExVmlhMlNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyM0VuY1ZpYTIpKSkgZWxzZSAod2lkdGhUb2JlRHJhd24gPSBtYXgobGF5ZXIzV2lkdGggKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVNwYWNlICsgdmlhMVZpYTJTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjNFbmNWaWEyKSkpKSBpZihlbmRUYXBNZXRJbnNpZGVPdXQgdGhlbiAoZW5kVGFwTGF5ZXIzWE9mZnNldCA9IChsYXllcjJXaWR0aCArICgtIHdpZHRoVG9iZURyYXduKSArIGVuZFRhcExheWVyMlhPZmZzZXQpKSBlbHNlIChlbmRUYXBMYXllcjNYT2Zmc2V0ID0gMC4wKSkgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGwzYnZsQ250cmwgPSAod2lkdGhUb2JlRHJhd24gLyAzLjApKSAobDNidmxDbnRybCA9IChyb3VuZCgoKGwzYnZsQ250cmwgLyBsYXllcjNncmlkKSArIDAuMDAxKSkgKiBsYXllcjNncmlkKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgbDNidmxDbnRybCArIGVuZFRhcExheWVyM1hPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKHR2eG8gKyAoLSBsYXllcjJFbmNWaWExKSArIGVuZFRhcExheWVyM1hPZmZzZXQpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKHR2eG8gKyAoLSBsYXllcjJFbmNWaWExKSArIGwzYnZsQ250cmwgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgd2lkdGhUb2JlRHJhd24gKyAoLSBsM2J2bENudHJsKSArIGVuZFRhcExheWVyM1hPZmZzZXQpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmwpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyB3aWR0aFRvYmVEcmF3biArIGVuZFRhcExheWVyM1hPZmZzZXQpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKHR2eG8gKyAoLSBsYXllcjJFbmNWaWExKSArIHdpZHRoVG9iZURyYXduICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyB3aWR0aFRvYmVEcmF3biArICgtIGwzYnZsQ250cmwpICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikgKyAoLSBsM2J2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyB3aWR0aFRvYmVEcmF3biArIGVuZFRhcExheWVyM1hPZmZzZXQpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKHR2eG8gLSBsYXllcjNFbmNWaWEyKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKGR2eGUgKyBsYXllcjNFbmNWaWEyKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIHNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IikgYWNjZXNzRGlyKSkgKChyZWdpb24gPT0gbSkgaWYoc3BsaXRTb3VyY2UgdGhlbiAoY29udGFjdFhsb29wID0gKGNvbnRhY3RYbG9vcCArIHZpYTFXaWR0aCArIGRyblZpYUdhdGVTcGFjZSArIGV4dHJhRHJuU3BhY2UgKyBsICsgZXh0cmFTcmNTcGFjZSArIHNyY1ZpYUdhdGVTcGFjZSkpIGVsc2UgKGNvbnRhY3RYbG9vcCA9IChjb250YWN0WGxvb3AgKyB2aWExV2lkdGggKyBkcm5WaWFHYXRlU3BhY2UgKyBleHRyYURyblNwYWNlICsgbCArIGV4dHJhU3JjU3BhY2UgKyBzcmNWaWFHYXRlU3BhY2UgKyB2aWExV2lkdGggKyBzcmNWaWFUb1NyY1RhcFNwYWNlKSkpIGNvbmQoKHNwbGl0U291cmNlIChkdnhvID0gY29udGFjdFhsb29wKSAoZHZ4ZSA9IChkdnhvICsgdmlhMVdpZHRoKSkgKHR2eG8gPSAoZGlmZlhlbmQgKyAoLSB0YXBYb2Zmc2V0VjEpICsgKC0gdmlhMVdpZHRoKSkpICh0dnhlID0gKHR2eG8gKyB2aWExV2lkdGgpKSkgKCFmbG9hdE53ZWxsIChkdnhvID0gKGNvbnRhY3RYbG9vcCArICgtIHNyY1ZpYVRvU3JjVGFwU3BhY2UpICsgKC0gdmlhMVdpZHRoKSkpIChkdnhlID0gKGR2eG8gKyB2aWExV2lkdGgpKSAodHZ4byA9IChkdnhvICsgdmlhMVBpdGNoKSkgKHR2eGUgPSAodHZ4byArIHZpYTFXaWR0aCkpKSAodCAoZHZ4byA9IChkaWZmWGVuZCArICgtIHZpYTFXaWR0aCkgKyAoLSBzcmNWaWFUb0RpZmZFZGdTcGFjZSkpKSAoZHZ4ZSA9IChkdnhvICsgdmlhMVdpZHRoKSkgKHR2eG8gPSBkdnhvKSAodHZ4ZSA9IGR2eGUpKSkgZm9yKHJvdyAxIHJvd3NPZkNvbnRhY3RzIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KChkdnhvOnZpYTFZbG9vcCkgKGR2eGU6KHZpYTFZbG9vcCArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgd2hlbigoIXNwbGl0U291cmNlICYmICFmbG9hdE53ZWxsKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodHZ4bzp2aWExWWxvb3ApICh0dnhlOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpKSAodmlhMVlsb29wID0gKHZpYTFZbG9vcCArIHZpYTFQaXRjaCkpKSB3aGVuKChzcGxpdFNvdXJjZSAmJiByaWdodEVuZFRhcCkgKHZpYTFZbG9vcFQgPSAodmlhMVlvZmZzZXQgKyB2aWExVGFwWTApKSBmb3Iocm93IDEgdmlhMVRhcFJvd3MgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHR2eG86dmlhMVlsb29wVCkgKHR2eGU6KHZpYTFZbG9vcFQgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpICh2aWExWWxvb3BUID0gKHZpYTFZbG9vcFQgKyB2aWExUGl0Y2gpKSkpIGlmKGVuZFRhcE1ldEluc2lkZU91dCB0aGVuIChlbmRUYXBMYXllcjJYT2Zmc2V0ID0gbWF4KCgoKG0gKiBsKSArICgobSAvIDIpICogdG90YWxEcm5MZW5ndGgpICsgKCgobSAvIDIpIC0gMSkgKiAodGFwV2lkdGggKyB0b3RhbFNyY0RpZmZMZW5ndGgpKSkgLSAodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSBsYXllcjJXaWR0aCkpKSAwLjApKSBlbHNlIChlbmRUYXBMYXllcjJYT2Zmc2V0ID0gMC4wKSkgaWYoc3BsaXRTb3VyY2UgdGhlbiBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAobGF5ZXIyWTBkID0gKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsUykpKSAobGF5ZXIyWTFkID0gbGF5ZXIyWW9yaWdpbikgKGxheWVyMlkyZCA9ICh2aWExWWxvb3AgKyAoLSB2aWExU3BhY2UpICsgbGF5ZXIyRW5jVmlhMSkpIChsYXllcjJZM2QgPSAodmlhMVlsb29wICsgKC0gdmlhMVNwYWNlKSArIGxheWVyMkVuY1ZpYTEgKyBsMmJ2bENudHJsUykpIChsYXllcjJZNGQgPSAodmlhMVlsb29wICsgKC0gdmlhMVNwYWNlKSArIGxheWVyMkVuY1ZpYTEgKyBsMmJ2bENudHJsUykpIChsYXllcjJZNWQgPSAodmlhMVlsb29wICsgKC0gdmlhMVNwYWNlKSArIGxheWVyMkVuY1ZpYTEpKSAobGF5ZXIyWTZkID0gbGF5ZXIyWW9yaWdpbikgKGxheWVyMlk3ZCA9IChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybFMpKSkgKGxheWVyMlhSZW5jID0gc291cmNlTGF5MlZpYTFFbmMpIChsYXllcjJYTGVuYyA9IChsYXllcjJXaWR0aFMgLSAodmlhMldpZHRoICsgbGF5ZXIyWFJlbmMpKSkgKGxheWVyMlgwZCA9ICgoZHZ4byAtIGxheWVyMlhMZW5jKSArIGwyYnZsQ250cmxTKSkgKGxheWVyMlgxZCA9IChkdnhvIC0gbGF5ZXIyWExlbmMpKSAobGF5ZXIyWDJkID0gKGR2eG8gLSBsYXllcjJYTGVuYykpIChsYXllcjJYM2QgPSAoKGR2eG8gLSBsYXllcjJYTGVuYykgKyBsMmJ2bENudHJsUykpIChsYXllcjJYNGQgPSAoZHZ4ZSArIGxheWVyMlhSZW5jICsgKC0gbDJidmxDbnRybFMpKSkgKGxheWVyMlg1ZCA9IChkdnhlICsgbGF5ZXIyWFJlbmMpKSAobGF5ZXIyWDZkID0gKGR2eGUgKyBsYXllcjJYUmVuYykpIChsYXllcjJYN2QgPSAoZHZ4ZSArIGxheWVyMlhSZW5jICsgKC0gbDJidmxDbnRybFMpKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYMGQgbGF5ZXIyWTBkKSBsaXN0KGxheWVyMlgxZCBsYXllcjJZMWQpIGxpc3QobGF5ZXIyWDJkIGxheWVyMlkyZCkgbGlzdChsYXllcjJYM2QgbGF5ZXIyWTNkKSBsaXN0KGxheWVyMlg0ZCBsYXllcjJZNGQpIGxpc3QobGF5ZXIyWDVkIGxheWVyMlk1ZCkgbGlzdChsYXllcjJYNmQgbGF5ZXIyWTZkKSBsaXN0KGxheWVyMlg3ZCBsYXllcjJZN2QpKSkpIGVsc2UgKGxheWVyMlgwZCA9IChkdnhlICsgc291cmNlTGF5MlZpYTFFbmMpKSAobGF5ZXIyWDFkID0gKGxheWVyMlgwZCAtIGxheWVyMldpZHRoUykpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QobGF5ZXIyWDFkIGxheWVyMllvcmlnaW4pIGxpc3QobGF5ZXIyWDBkIGxheWVyMlllbmQpKSkpKSB3aGVuKHJpZ2h0RW5kVGFwIChsYXllcjJYMHQgPSAodHZ4byAtIHRhcExheTJWaWExRW5jKSkgKGxheWVyMlgxdCA9IChsYXllcjJYMHQgKyB0YXBMYXkyV2lkdGgpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KGxheWVyMlgwdCBsYXllcjJUYXBZMCkgbGlzdChsYXllcjJYMXQgbGF5ZXIyVGFwWTEpKSkpKSBlbHNlIGlmKChsYXllcjJXaWR0aCA+IDAuMCkgdGhlbiBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArICgtIGwyYnZsQ250cmwpICsgZW5kVGFwTGF5ZXIyWE9mZnNldCkgKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsKSkpIGxpc3QoKHR2eGUgKyBsYXllcjJFbmNWaWExICsgZW5kVGFwTGF5ZXIyWE9mZnNldCkgbGF5ZXIyWW9yaWdpbikgbGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyBlbmRUYXBMYXllcjJYT2Zmc2V0KSBsYXllcjJZZW5kKSBsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArICgtIGwyYnZsQ250cmwpICsgZW5kVGFwTGF5ZXIyWE9mZnNldCkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgodHZ4ZSArIGVuZFRhcExheWVyMlhPZmZzZXQgKyBsYXllcjJFbmNWaWExICsgKC0gbWF4KGxheWVyMldpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFWaWEyU3BhY2UgKyB2aWExU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIyRW5jVmlhMikpKSArIGwyYnZsQ250cmwpIChsYXllcjJZZW5kICsgbDJidmxDbnRybCkpIGxpc3QoKHR2eGUgKyBlbmRUYXBMYXllcjJYT2Zmc2V0ICsgbGF5ZXIyRW5jVmlhMSArICgtIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExVmlhMlNwYWNlICsgdmlhMVNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyMkVuY1ZpYTIpKSkpIGxheWVyMlllbmQpIGxpc3QoKHR2eGUgKyBlbmRUYXBMYXllcjJYT2Zmc2V0ICsgbGF5ZXIyRW5jVmlhMSArICgtIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExVmlhMlNwYWNlICsgdmlhMVNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyMkVuY1ZpYTIpKSkpIGxheWVyMllvcmlnaW4pIGxpc3QoKHR2eGUgKyBlbmRUYXBMYXllcjJYT2Zmc2V0ICsgbGF5ZXIyRW5jVmlhMSArICgtIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExVmlhMlNwYWNlICsgdmlhMVNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyMkVuY1ZpYTIpKSkgKyBsMmJ2bENudHJsKSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmwpKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArIGVuZFRhcExheWVyMlhPZmZzZXQpIGxheWVyMllvcmlnaW4pIGxpc3QoKHR2eGUgKyBlbmRUYXBMYXllcjJYT2Zmc2V0ICsgbGF5ZXIyRW5jVmlhMSArICgtIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExVmlhMlNwYWNlICsgdmlhMVNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyMkVuY1ZpYTIpKSkpIGxheWVyMlllbmQpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KCgoZHZ4byArICgtIGVzX2xheWVyMkRlbHRhVmlhMSkpOmxheWVyMllvcmlnaW4pICgoZHZ4byArICgtIGVzX2xheWVyMkRlbHRhVmlhMSkgKyBlc19sYXllcjJMKTpsYXllcjJZZW5kKSkpKSkpIGlmKHNwbGl0U291cmNlIHRoZW4gKGR2eG8gPSBkdnhvKSAoZHZ4ZSA9IChkdnhvICsgdmlhMldpZHRoKSkgKHR2eG8gPSAoZGlmZlhlbmQgKyAoLSB0YXBYb2Zmc2V0VjIpICsgKC0gdmlhMldpZHRoKSkpICh0dnhlID0gKHR2eG8gKyB2aWEyV2lkdGgpKSBlbHNlIGlmKCh2aWExVmlhMlNwYWNlID4gMC4wKSB0aGVuIChkdnhvID0gKGR2eG8gLSAodmlhMldpZHRoICsgdmlhMVZpYTJTcGFjZSkpKSBlbHNlIChkdnhvID0gKGR2eG8gKyAoLSBlc19sYXllcjJEZWx0YVZpYTEpICsgbGF5ZXIyRW5jVmlhMikpKSAoZHZ4ZSA9IChkdnhvICsgdmlhMldpZHRoKSkgdW5sZXNzKCh2aWExVmlhMlNwYWNlID4gMC4wKSAodHZ4byA9IChkdnhlICsgdmlhMlNwYWNlKSkgKHR2eGUgPSAodHZ4byArIHZpYTJXaWR0aCkpKSkgKHZpYTJZbG9vcCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMikpIGZvcihyb3cgMSByb3dzT2ZDb250YWN0czIgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKGR2eG86dmlhMllsb29wKSAoZHZ4ZToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSB1bmxlc3MoKHNwbGl0U291cmNlIHx8ICh2aWExVmlhMlNwYWNlID4gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHR2eG86dmlhMllsb29wKSAodHZ4ZToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSkgKHZpYTJZbG9vcCA9ICh2aWEyWWxvb3AgKyB2aWEyUGl0Y2gpKSkgd2hlbigoc3BsaXRTb3VyY2UgJiYgcmlnaHRFbmRUYXApICh2aWEyWWxvb3BUID0gdmlhMlRhcFkwKSBmb3Iocm93IDEgdmlhMlRhcFJvd3MgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHR2eG86dmlhMllsb29wVCkgKHR2eGU6KHZpYTJZbG9vcFQgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpICh2aWEyWWxvb3BUID0gKHZpYTJZbG9vcFQgKyB2aWEyUGl0Y2gpKSkpIGlmKHNwbGl0U291cmNlIHRoZW4gaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGxheWVyM1kwZCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybFMpKSkgKGxheWVyM1kxZCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgKGxheWVyM1kyZCA9ICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIChsYXllcjNZM2QgPSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsUykpIChsYXllcjNZNGQgPSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsUykpIChsYXllcjNZNWQgPSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSAobGF5ZXIzWTZkID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSAobGF5ZXIzWTdkID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikgKyAoLSBsM2J2bENudHJsUykpKSAobGF5ZXIzWFJlbmMgPSBzb3VyY2VMYXkzVmlhMkVuYykgKGxheWVyM1hMZW5jID0gKGxheWVyM1dpZHRoUyAtICh2aWEyV2lkdGggKyBsYXllcjNYTGVuYykpKSAobGF5ZXIzWDBkID0gKChkdnhvIC0gbGF5ZXIzWExlbmMpICsgbDNidmxDbnRybFMpKSAobGF5ZXIzWDFkID0gKGR2eG8gLSBsYXllcjNYTGVuYykpIChsYXllcjNYMmQgPSAoZHZ4byAtIGxheWVyM1hMZW5jKSkgKGxheWVyM1gzZCA9ICgoZHZ4byAtIGxheWVyM1hMZW5jKSArIGwzYnZsQ250cmxTKSkgKGxheWVyM1g0ZCA9IChkdnhlICsgbGF5ZXIzWFJlbmMgKyAoLSBsM2J2bENudHJsUykpKSAobGF5ZXIzWDVkID0gKGR2eGUgKyBsYXllcjNYUmVuYykpIChsYXllcjNYNmQgPSAoZHZ4ZSArIGxheWVyM1hSZW5jKSkgKGxheWVyM1g3ZCA9IChkdnhlICsgbGF5ZXIzWFJlbmMgKyAoLSBsM2J2bENudHJsUykpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KGxheWVyM1gwZCBsYXllcjNZMGQpIGxpc3QobGF5ZXIzWDFkIGxheWVyM1kxZCkgbGlzdChsYXllcjNYMmQgbGF5ZXIzWTJkKSBsaXN0KGxheWVyM1gzZCBsYXllcjNZM2QpIGxpc3QobGF5ZXIzWDRkIGxheWVyM1k0ZCkgbGlzdChsYXllcjNYNWQgbGF5ZXIzWTVkKSBsaXN0KGxheWVyM1g2ZCBsYXllcjNZNmQpIGxpc3QobGF5ZXIzWDdkIGxheWVyM1k3ZCkpKSkgZWxzZSAobGF5ZXIzWDBkID0gKGR2eGUgKyBzb3VyY2VMYXkzVmlhMkVuYykpIChsYXllcjNYMWQgPSAobGF5ZXIzWDBkIC0gbGF5ZXIzV2lkdGhTKSkgKGxheWVyM1kwZCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgKGxheWVyM1kxZCA9ICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QobGF5ZXIzWDFkIGxheWVyM1kwZCkgbGlzdChsYXllcjNYMGQgbGF5ZXIzWTFkKSkpKSkgd2hlbihyaWdodEVuZFRhcCAobGF5ZXIzWDB0ID0gKHR2eG8gLSB0YXBMYXkzVmlhMkVuYykpIChsYXllcjNYMXQgPSAobGF5ZXIzWDB0ICsgdGFwTGF5M1dpZHRoKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdChsYXllcjNYMHQgbGF5ZXIzVGFwWTApIGxpc3QobGF5ZXIzWDF0IGxheWVyM1RhcFkxKSkpKSkgZWxzZSBpZigobGF5ZXIzV2lkdGggPiAwLjApIHRoZW4gaWYoKGxheWVyM1dpZHRoX291dHNpZGUgPiAwLjApIHRoZW4gKHdpZHRoVG9iZURyYXduID0gbWF4KGxheWVyM1dpZHRoX291dHNpZGUgKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVNwYWNlICsgdmlhMVZpYTJTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjNFbmNWaWEyKSkpIGVsc2UgKHdpZHRoVG9iZURyYXduID0gbWF4KGxheWVyM1dpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFTcGFjZSArIHZpYTFWaWEyU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIzRW5jVmlhMikpKSkgaWYoZW5kVGFwTWV0SW5zaWRlT3V0IHRoZW4gKGVuZFRhcExheWVyM1hPZmZzZXQgPSAoKC0gbGF5ZXIyV2lkdGgpICsgd2lkdGhUb2JlRHJhd24gKyBlbmRUYXBMYXllcjJYT2Zmc2V0KSkgZWxzZSAoZW5kVGFwTGF5ZXIzWE9mZnNldCA9IDAuMCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsM2J2bENudHJsID0gKHdpZHRoVG9iZURyYXduIC8gMy4wKSkgKGwzYnZsQ250cmwgPSAocm91bmQoKChsM2J2bENudHJsIC8gbGF5ZXIzZ3JpZCkgKyAwLjAwMSkpICogbGF5ZXIzZ3JpZCkpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKHR2eGUgKyBsYXllcjJFbmNWaWExICsgKC0gd2lkdGhUb2JlRHJhd24pICsgbDNidmxDbnRybCArIGVuZFRhcExheWVyM1hPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSBsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArICgtIHdpZHRoVG9iZURyYXduKSArIGVuZFRhcExheWVyM1hPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSB3aWR0aFRvYmVEcmF3bikgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSBsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArICgtIHdpZHRoVG9iZURyYXduKSArIGwzYnZsQ250cmwgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSBsM2J2bENudHJsKSArIGVuZFRhcExheWVyM1hPZmZzZXQpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmwpKSBsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArIGVuZFRhcExheWVyM1hPZmZzZXQpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKHR2eGUgKyBsYXllcjJFbmNWaWExICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArICgtIGwzYnZsQ250cmwpICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikgKyAoLSBsM2J2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSB3aWR0aFRvYmVEcmF3bikgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKHR2eGUgKyBsYXllcjJFbmNWaWExICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QoKChkdnhvIC0gbGF5ZXIzRW5jVmlhMik6KGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSAoKHR2eGUgKyBsYXllcjNFbmNWaWEyKToodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIHNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJyaWdodCIpIGFjY2Vzc0RpcikpICgoZmxvYXROd2VsbCB8fCAoMSA9PSBtb2QocmVnaW9uIDIpKSkgaWYoIWZsb2F0TndlbGwgdGhlbiBpZihzcGxpdFNvdXJjZSB0aGVuIChjb250YWN0WGxvb3AgPSAoY29udGFjdFhsb29wICsgdmlhMVdpZHRoICsgc3JjVmlhR2F0ZVNwYWNlICsgZXh0cmFTcmNTcGFjZSArIGwgKyBkcm5WaWFHYXRlU3BhY2UgKyBleHRyYURyblNwYWNlKSkgZWxzZSAoY29udGFjdFhsb29wID0gKGNvbnRhY3RYbG9vcCArIHNyY1ZpYVRvU3JjVGFwU3BhY2UgKyB2aWExV2lkdGggKyBzcmNWaWFHYXRlU3BhY2UgKyBleHRyYVNyY1NwYWNlICsgbCArIGV4dHJhRHJuU3BhY2UgKyBkcm5WaWFHYXRlU3BhY2UpKSkgZWxzZSBpZigocmVnaW9uID09IDEpIHRoZW4gKGNvbnRhY3RYbG9vcCA9IChjb250YWN0WGxvb3AgKyBzcmNWaWFHYXRlU3BhY2UgKyBleHRyYVNyY1NwYWNlICsgbCArIGV4dHJhRHJuU3BhY2UgKyBkcm5WaWFHYXRlU3BhY2UgKyB2aWExV2lkdGggKyBzcmNWaWFUb0RpZmZFZGdTcGFjZSkpIGVsc2UgKGNvbnRhY3RYbG9vcCA9IChjb250YWN0WGxvb3AgKyBkcm5WaWFHYXRlU3BhY2UgKyBleHRyYURyblNwYWNlICsgbCArIGV4dHJhU3JjU3BhY2UgKyBzcmNWaWFHYXRlU3BhY2UgKyB2aWExV2lkdGgpKSkpIChkdnhvID0gY29udGFjdFhsb29wKSAoZHZ4ZSA9IChkdnhvICsgdmlhMVdpZHRoKSkgZm9yKHJvdyAxIHJvd3NPZkNvbnRhY3RzIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KChkdnhvOnZpYTFZbG9vcCkgKGR2eGU6KHZpYTFZbG9vcCArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgKHZpYTFZbG9vcCA9ICh2aWExWWxvb3AgKyB2aWExUGl0Y2gpKSkgaWYoKGxheWVyMldpZHRoID4gMC4wKSB0aGVuIGlmKChsYXllcjJXaWR0aCA+ICgoMi4wICogdmlhMVZpYTJTcGFjZSkgKyAoMi4wICogdmlhMldpZHRoKSArIHZpYTFXaWR0aCArICgyLjAgKiBsYXllcjJFbmNWaWEyKSkpIHRoZW4gKGxheWVyMlhvcmlnaW5fZHIgPSAoZHZ4byAtICgobGF5ZXIyV2lkdGggLSB2aWExV2lkdGgpICogMC41KSkpIChsYXllcjJYb3JpZ2luX2RyID0gKHJvdW5kKCgobGF5ZXIyWG9yaWdpbl9kciAvIGxheWVyMmdyaWQpICsgMC4wMDEpKSAqIGxheWVyMmdyaWQpKSBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KChsYXllcjJYb3JpZ2luX2RyICsgbDJidmxDbnRybCkgKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsKSkpIGxpc3QobGF5ZXIyWG9yaWdpbl9kciBsYXllcjJZb3JpZ2luKSBsaXN0KGxheWVyMlhvcmlnaW5fZHIgbGF5ZXIyWWVuZCkgbGlzdCgobGF5ZXIyWG9yaWdpbl9kciArIGwyYnZsQ250cmwpIChsYXllcjJZZW5kICsgbDJidmxDbnRybCkpIGxpc3QoKGxheWVyMlhvcmlnaW5fZHIgKyBsYXllcjJXaWR0aCArICgtIGwyYnZsQ250cmwpKSAobGF5ZXIyWWVuZCArIGwyYnZsQ250cmwpKSBsaXN0KChsYXllcjJYb3JpZ2luX2RyICsgbGF5ZXIyV2lkdGgpIGxheWVyMlllbmQpIGxpc3QoKGxheWVyMlhvcmlnaW5fZHIgKyBsYXllcjJXaWR0aCkgbGF5ZXIyWW9yaWdpbikgbGlzdCgobGF5ZXIyWG9yaWdpbl9kciArIGxheWVyMldpZHRoICsgKC0gbDJidmxDbnRybCkpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QobGF5ZXIyWG9yaWdpbl9kciBsYXllcjJZb3JpZ2luKSBsaXN0KChsYXllcjJYb3JpZ2luX2RyICsgbGF5ZXIyV2lkdGgpIGxheWVyMlllbmQpKSkpKSBlbHNlIGlmKGxheWVyMkVkZ2VzQXQ0NSB0aGVuIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QoKChkdnhvIC0gKHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkgKyBsMmJ2bENudHJsKSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmwpKSkgbGlzdCgoZHZ4byAtICh2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikpIGxheWVyMllvcmlnaW4pIGxpc3QoKGR2eG8gLSAodmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpKSBsYXllcjJZZW5kKSBsaXN0KCgoZHZ4byAtICh2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikpICsgbDJidmxDbnRybCkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgoZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyICsgKC0gbDJidmxDbnRybCkpIChsYXllcjJZZW5kICsgbDJidmxDbnRybCkpIGxpc3QoKGR2eGUgKyB2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikgbGF5ZXIyWWVuZCkgbGlzdCgoZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSBsYXllcjJZb3JpZ2luKSBsaXN0KChkdnhlICsgdmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIgKyAoLSBsMmJ2bENudHJsKSkgKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdCgoZHZ4byAtICh2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikpIGxheWVyMllvcmlnaW4pIGxpc3QoKGR2eGUgKyB2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikgbGF5ZXIyWWVuZCkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KCgoZHZ4byAtIGRybl9sYXllcjJEZWx0YVZpYTEpOmxheWVyMllvcmlnaW4pICgoZHZ4ZSArIGRybl9sYXllcjJEZWx0YVZpYTEpOmxheWVyMlllbmQpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGROZXQpIGlmKCh2aWExVmlhMlNwYWNlID4gMC4wKSB0aGVuIChkdnhvID0gKGR2eG8gKyAoLSB2aWExVmlhMlNwYWNlKSArICgtIHZpYTJXaWR0aCkpKSBlbHNlIChkdnhvID0gKGR2eG8gKyAoLSBkcm5fbGF5ZXIyRGVsdGFWaWExKSArIGxheWVyMkVuY1ZpYTIpKSkgKGR2eGUgPSAoZHZ4byArIHZpYTJXaWR0aCkpICh2aWEyWWxvb3AgPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIpKSBmb3Iocm93IDEgcm93c09mQ29udGFjdHMyIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KChkdnhvOnZpYTJZbG9vcCkgKGR2eGU6KHZpYTJZbG9vcCArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgd2hlbigodmlhMVZpYTJTcGFjZSA+IDAuMCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKChkdnhvICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgdmlhMVdpZHRoICsgdmlhMldpZHRoKTp2aWEyWWxvb3ApICgoZHZ4byArICgyLjAgKiB2aWExVmlhMlNwYWNlKSArIHZpYTFXaWR0aCArICgyLjAgKiB2aWEyV2lkdGgpKToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBkTmV0KSkgKHZpYTJZbG9vcCA9ICh2aWEyWWxvb3AgKyB2aWEyUGl0Y2gpKSkgaWYoKGxheWVyM1dpZHRoID4gMC4wKSB0aGVuIChsM2J2bENudHJsID0gKGxheWVyM1dpZHRoIC8gMy4wKSkgKGwzYnZsQ250cmwgPSAocm91bmQoKChsM2J2bENudHJsIC8gbGF5ZXIyZ3JpZCkgKyAwLjAwMSkpICogbGF5ZXIyZ3JpZCkpIGlmKChsYXllcjNXaWR0aCA+ICgoMi4wICogdmlhMldpZHRoKSArIHZpYTFXaWR0aCArICgyLjAgKiB2aWExVmlhMlNwYWNlKSArICgyLjAgKiBsYXllcjNFbmNWaWEyKSkpIHRoZW4gKGxheWVyM1hvcmlnaW5fZHIgPSAoY29udGFjdFhsb29wIC0gKChsYXllcjNXaWR0aCAtIHZpYTJXaWR0aCkgKiAwLjUpKSkgKGxheWVyM1hvcmlnaW5fZHIgPSAocm91bmQoKChsYXllcjNYb3JpZ2luX2RyIC8gbGF5ZXIzZ3JpZCkgKyAwLjAwMSkpICogbGF5ZXIzZ3JpZCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKGxheWVyM1hvcmlnaW5fZHIgKyBsM2J2bENudHJsKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkgbGlzdChsYXllcjNYb3JpZ2luX2RyIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdChsYXllcjNYb3JpZ2luX2RyICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKGxheWVyM1hvcmlnaW5fZHIgKyBsM2J2bENudHJsKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgobGF5ZXIzWG9yaWdpbl9kciArIGxheWVyM1dpZHRoICsgKC0gbDNidmxDbnRybCkpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmwpKSBsaXN0KChsYXllcjNYb3JpZ2luX2RyICsgbGF5ZXIzV2lkdGgpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKGxheWVyM1hvcmlnaW5fZHIgKyBsYXllcjNXaWR0aCkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KChsYXllcjNYb3JpZ2luX2RyICsgbGF5ZXIzV2lkdGggKyAoLSBsM2J2bENudHJsKSkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikgKyAoLSBsM2J2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdChsYXllcjNYb3JpZ2luX2RyIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgobGF5ZXIzWG9yaWdpbl9kciArIGxheWVyM1dpZHRoKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSkgZWxzZSBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KChkdnhvICsgKC0gbGF5ZXIzRW5jVmlhMikgKyBsM2J2bENudHJsKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkgbGlzdCgoZHZ4byArICgtIGxheWVyM0VuY1ZpYTIpKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKGR2eG8gKyAoLSBsYXllcjNFbmNWaWEyKSkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgoZHZ4byArICgtIGxheWVyM0VuY1ZpYTIpICsgbDNidmxDbnRybCkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyICsgbDNidmxDbnRybCkpIGxpc3QoKGR2eG8gKyAoMi4wICogdmlhMldpZHRoKSArIHZpYTFXaWR0aCArICgyLjAgKiB2aWExVmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyAoLSBsM2J2bENudHJsKSkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyICsgbDNidmxDbnRybCkpIGxpc3QoKGR2eG8gKyAoMi4wICogdmlhMldpZHRoKSArIHZpYTFXaWR0aCArICgyLjAgKiB2aWExVmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKGR2eG8gKyAoMi4wICogdmlhMldpZHRoKSArIHZpYTFXaWR0aCArICgyLjAgKiB2aWExVmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgoZHZ4byArICgyLjAgKiB2aWEyV2lkdGgpICsgdmlhMVdpZHRoICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArICgtIGwzYnZsQ250cmwpKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KChkdnhvICsgKC0gbGF5ZXIzRW5jVmlhMikpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgoZHZ4byArICgyLjAgKiB2aWEyV2lkdGgpICsgdmlhMVdpZHRoICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KCgoZHZ4byAtIGxheWVyM0VuY1ZpYTIpOihsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgKChkdnhlICsgbGF5ZXIzRW5jVmlhMik6KHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGROZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iKSBhY2Nlc3NEaXIpKSAoIWZsb2F0TndlbGwgaWYoc3BsaXRTb3VyY2UgdGhlbiAobGR2eG8gPSAoY29udGFjdFhsb29wICsgdmlhMVdpZHRoICsgZHJuVmlhR2F0ZVNwYWNlICsgZXh0cmFEcm5TcGFjZSArIGwgKyBzcmNWaWFHYXRlU3BhY2UgKyBleHRyYVNyY1NwYWNlKSkgKGxkdnhlID0gKGxkdnhvICsgdmlhMVdpZHRoKSkgKHR2eG8gPSAobGR2eGUgKyBzcmNWaWFUb0RpZmZFZGdTcGFjZSArIHN0cmlwVGFwVG9EaWZmU3BhY2UgKyB0YXBYb2Zmc2V0VjEpKSAodHZ4ZSA9ICh0dnhvICsgdmlhMVdpZHRoKSkgKHJkdnhvID0gKGxkdnhlICsgdGFwV2lkdGggKyAoMiAqIChzdHJpcFRhcFRvRGlmZlNwYWNlICsgc3JjVmlhVG9EaWZmRWRnU3BhY2UpKSkpIChyZHZ4ZSA9IChyZHZ4byArIHZpYTFXaWR0aCkpIChjb250YWN0WGxvb3AgPSByZHZ4bykgZWxzZSAoY29udGFjdFhsb29wID0gKGNvbnRhY3RYbG9vcCArIHZpYTFXaWR0aCArIGRyblZpYUdhdGVTcGFjZSArIGV4dHJhRHJuU3BhY2UgKyBsICsgZXh0cmFTcmNTcGFjZSArIHNyY1ZpYUdhdGVTcGFjZSArIHZpYTFXaWR0aCArIHNyY1ZpYVRvU3JjVGFwU3BhY2UgKyB0YXBXaWR0aCkpIChyZHZ4byA9IChjb250YWN0WGxvb3AgKyBzcmNWaWFUb1NyY1RhcFNwYWNlKSkgKHJkdnhlID0gKHJkdnhvICsgdmlhMVdpZHRoKSkgaWYoKHRhcFdpZHRoID4gKHZpYTFXaWR0aCArICgyLjAgKiB0YXBFbmNWaWExKSkpIHRoZW4gKHR2eG8gPSAoKChyZHZ4byAtICgwLjUgKiAodGFwV2lkdGggLSB2aWExV2lkdGgpKSkgLSB2aWExV2lkdGgpIC0gc3JjVmlhVGFwU3BhY2UpKSAodHZ4byA9IChyb3VuZCgoKHR2eG8gLyB2aWExZ3JpZCkgKyAwLjAwMSkpICogdmlhMWdyaWQpKSBlbHNlICh0dnhvID0gKHJkdnhvICsgKC0gdmlhMVBpdGNoKSkpKSAodHZ4ZSA9ICh0dnhvICsgdmlhMVdpZHRoKSkgKGxkdnhvID0gbWluKCh0dnhvICsgKC0gdmlhMVBpdGNoKSkgKGNvbnRhY3RYbG9vcCArICgtIHRhcFdpZHRoKSArICgtIHZpYTFXaWR0aCkgKyAoLSBzcmNWaWFUYXBTcGFjZSkpKSkgKGxkdnhlID0gKGxkdnhvICsgdmlhMVdpZHRoKSkpIGZvcihyb3cgMSByb3dzT2ZDb250YWN0cyB3aGVuKCFzcGxpdFNvdXJjZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodHZ4bzp2aWExWWxvb3ApICh0dnhlOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgocmR2eG86dmlhMVlsb29wKSAocmR2eGU6KHZpYTFZbG9vcCArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKGxkdnhvOnZpYTFZbG9vcCkgKGxkdnhlOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpICh2aWExWWxvb3AgPSAodmlhMVlsb29wICsgdmlhMVBpdGNoKSkpIHdoZW4oc3BsaXRTb3VyY2UgKHZpYTFZbG9vcFQgPSAodmlhMVlvZmZzZXQgKyB2aWExVGFwWTApKSBmb3Iocm93IDEgdmlhMVRhcFJvd3MgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHR2eG86dmlhMVlsb29wVCkgKHR2eGU6KHZpYTFZbG9vcFQgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpICh2aWExWWxvb3BUID0gKHZpYTFZbG9vcFQgKyB2aWExUGl0Y2gpKSkpIGlmKHNwbGl0U291cmNlIHRoZW4gaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGxheWVyMlkwZCA9IChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybFMpKSkgKGxheWVyMlkxZCA9IGxheWVyMllvcmlnaW4pIChsYXllcjJZMmQgPSAodmlhMVlsb29wICsgKC0gdmlhMVNwYWNlKSArIGxheWVyMkVuY1ZpYTEpKSAobGF5ZXIyWTNkID0gKHZpYTFZbG9vcCArICgtIHZpYTFTcGFjZSkgKyBsYXllcjJFbmNWaWExICsgbDJidmxDbnRybFMpKSAobGF5ZXIyWTRkID0gKHZpYTFZbG9vcCArICgtIHZpYTFTcGFjZSkgKyBsYXllcjJFbmNWaWExICsgbDJidmxDbnRybFMpKSAobGF5ZXIyWTVkID0gKHZpYTFZbG9vcCArICgtIHZpYTFTcGFjZSkgKyBsYXllcjJFbmNWaWExKSkgKGxheWVyMlk2ZCA9IGxheWVyMllvcmlnaW4pIChsYXllcjJZN2QgPSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmxTKSkpIChsYXllcjJYTGVuYyA9IHNvdXJjZUxheTJWaWExRW5jKSAobGF5ZXIyWFJlbmMgPSAobGF5ZXIyV2lkdGhTIC0gKHZpYTFXaWR0aCArIGxheWVyMlhMZW5jKSkpIChsYXllcjJYMHJkID0gKChyZHZ4byAtIGxheWVyMlhMZW5jKSArIGwyYnZsQ250cmxTKSkgKGxheWVyMlgxcmQgPSAocmR2eG8gLSBsYXllcjJYTGVuYykpIChsYXllcjJYMnJkID0gKHJkdnhvIC0gbGF5ZXIyWExlbmMpKSAobGF5ZXIyWDNyZCA9ICgocmR2eG8gLSBsYXllcjJYTGVuYykgKyBsMmJ2bENudHJsUykpIChsYXllcjJYNHJkID0gKHJkdnhlICsgbGF5ZXIyWFJlbmMgKyAoLSBsMmJ2bENudHJsUykpKSAobGF5ZXIyWDVyZCA9IChyZHZ4ZSArIGxheWVyMlhSZW5jKSkgKGxheWVyMlg2cmQgPSAocmR2eGUgKyBsYXllcjJYUmVuYykpIChsYXllcjJYN3JkID0gKHJkdnhlICsgbGF5ZXIyWFJlbmMgKyAoLSBsMmJ2bENudHJsUykpKSAobGF5ZXIyWFJlbmMgPSBzb3VyY2VMYXkyVmlhMUVuYykgKGxheWVyMlhMZW5jID0gKGxheWVyMldpZHRoUyAtICh2aWEyV2lkdGggKyBsYXllcjJYUmVuYykpKSAobGF5ZXIyWDBsZCA9ICgobGR2eG8gLSBsYXllcjJYTGVuYykgKyBsMmJ2bENudHJsUykpIChsYXllcjJYMWxkID0gKGxkdnhvIC0gbGF5ZXIyWExlbmMpKSAobGF5ZXIyWDJsZCA9IChsZHZ4byAtIGxheWVyMlhMZW5jKSkgKGxheWVyMlgzbGQgPSAoKGxkdnhvIC0gbGF5ZXIyWExlbmMpICsgbDJidmxDbnRybFMpKSAobGF5ZXIyWDRsZCA9IChsZHZ4ZSArIGxheWVyMlhSZW5jICsgKC0gbDJidmxDbnRybFMpKSkgKGxheWVyMlg1bGQgPSAobGR2eGUgKyBsYXllcjJYUmVuYykpIChsYXllcjJYNmxkID0gKGxkdnhlICsgbGF5ZXIyWFJlbmMpKSAobGF5ZXIyWDdsZCA9IChsZHZ4ZSArIGxheWVyMlhSZW5jICsgKC0gbDJidmxDbnRybFMpKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYMHJkIGxheWVyMlkwZCkgbGlzdChsYXllcjJYMXJkIGxheWVyMlkxZCkgbGlzdChsYXllcjJYMnJkIGxheWVyMlkyZCkgbGlzdChsYXllcjJYM3JkIGxheWVyMlkzZCkgbGlzdChsYXllcjJYNHJkIGxheWVyMlk0ZCkgbGlzdChsYXllcjJYNXJkIGxheWVyMlk1ZCkgbGlzdChsYXllcjJYNnJkIGxheWVyMlk2ZCkgbGlzdChsYXllcjJYN3JkIGxheWVyMlk3ZCkpKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYMGxkIGxheWVyMlkwZCkgbGlzdChsYXllcjJYMWxkIGxheWVyMlkxZCkgbGlzdChsYXllcjJYMmxkIGxheWVyMlkyZCkgbGlzdChsYXllcjJYM2xkIGxheWVyMlkzZCkgbGlzdChsYXllcjJYNGxkIGxheWVyMlk0ZCkgbGlzdChsYXllcjJYNWxkIGxheWVyMlk1ZCkgbGlzdChsYXllcjJYNmxkIGxheWVyMlk2ZCkgbGlzdChsYXllcjJYN2xkIGxheWVyMlk3ZCkpKSkgZWxzZSAobGF5ZXIyWDBsZCA9IChsZHZ4ZSArIHNvdXJjZUxheTJWaWExRW5jKSkgKGxheWVyMlgxbGQgPSAobGF5ZXIyWDBsZCAtIGxheWVyMldpZHRoUykpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QobGF5ZXIyWDFsZCBsYXllcjJZb3JpZ2luKSBsaXN0KGxheWVyMlgwbGQgbGF5ZXIyWWVuZCkpKSkgKGxheWVyMlgwcmQgPSAocmR2eG8gLSBzb3VyY2VMYXkyVmlhMUVuYykpIChsYXllcjJYMXJkID0gKGxheWVyMlgwcmQgKyBsYXllcjJXaWR0aFMpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KGxheWVyMlgwcmQgbGF5ZXIyWW9yaWdpbikgbGlzdChsYXllcjJYMXJkIGxheWVyMlllbmQpKSkpKSAobGF5ZXIyWDB0ID0gKHR2eG8gLSB0YXBMYXkyVmlhMUVuYykpIChsYXllcjJYMXQgPSAobGF5ZXIyWDB0ICsgdGFwTGF5MldpZHRoKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYMHQgbGF5ZXIyVGFwWTApIGxpc3QobGF5ZXIyWDF0IGxheWVyMlRhcFkxKSkpKSBlbHNlIGlmKChsYXllcjJXaWR0aCA+IDAuMCkgdGhlbiBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KCgobGR2eG8gLSAodmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpKSArIGwyYnZsQ250cmwpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSBsaXN0KChsZHZ4byAtICh2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikpIGxheWVyMllvcmlnaW4pIGxpc3QoKGxkdnhvIC0gKHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkgbGF5ZXIyWWVuZCkgbGlzdCgoKGxkdnhvIC0gKHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkgKyBsMmJ2bENudHJsKSAobGF5ZXIyWWVuZCArIGwyYnZsQ250cmwpKSBsaXN0KChyZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyICsgKC0gbDJidmxDbnRybCkpIChsYXllcjJZZW5kICsgbDJidmxDbnRybCkpIGxpc3QoKHJkdnhlICsgdmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpIGxheWVyMlllbmQpIGxpc3QoKHJkdnhlICsgdmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpIGxheWVyMllvcmlnaW4pIGxpc3QoKHJkdnhlICsgdmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIgKyAoLSBsMmJ2bENudHJsKSkgKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdCgobGR2eG8gLSAodmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpKSBsYXllcjJZb3JpZ2luKSBsaXN0KChyZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSBsYXllcjJZZW5kKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdCgoKGxkdnhvIC0gc3NfbGF5ZXIyRGVsdGFWaWExKTpsYXllcjJZb3JpZ2luKSAoKGxkdnhvICsgKC0gc3NfbGF5ZXIyRGVsdGFWaWExKSArIHNzX2xheWVyMkwpOmxheWVyMlllbmQpKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSBpZihzcGxpdFNvdXJjZSB0aGVuIChsZHZ4byA9IGxkdnhvKSAobGR2eGUgPSAobGR2eG8gKyB2aWEyV2lkdGgpKSAocmR2eG8gPSAocmR2eGUgLSB2aWEyV2lkdGgpKSAocmR2eGUgPSAocmR2eG8gKyB2aWEyV2lkdGgpKSAodHZ4byA9IChjb250YWN0WGxvb3AgLSAoc3RyaXBUYXBUb0RpZmZTcGFjZSArIHZpYTJXaWR0aCArIHRhcFhvZmZzZXRWMiArIHNyY1ZpYVRvRGlmZkVkZ1NwYWNlKSkpICh0dnhlID0gKHR2eG8gKyB2aWEyV2lkdGgpKSBlbHNlIGlmKCh2aWExVmlhMlNwYWNlID4gMC4wKSB0aGVuIChsZHZ4byA9IChsZHZ4byArICgtIHZpYTFWaWEyU3BhY2UpICsgKC0gdmlhMldpZHRoKSkpIGVsc2UgKGxkdnhvID0gKGxkdnhvICsgKC0gc3NfbGF5ZXIyRGVsdGFWaWExKSArIGxheWVyMkVuY1ZpYTIpKSkgKGxkdnhlID0gKGxkdnhvICsgdmlhMldpZHRoKSkgKHR2eG8gPSAobGR2eGUgKyB2aWEyU3BhY2UpKSAodHZ4ZSA9ICh0dnhvICsgdmlhMldpZHRoKSkgaWYoKHZpYTFWaWEyU3BhY2UgPiAwLjApIHRoZW4gKHJkdnhvID0gKHJkdnhlICsgdmlhMVZpYTJTcGFjZSkpIGVsc2UgKHJkdnhvID0gKHR2eGUgKyB2aWEyU3BhY2UpKSkgKHJkdnhlID0gKHJkdnhvICsgdmlhMldpZHRoKSkpICh2aWEyWWxvb3AgPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIpKSBmb3Iocm93IDEgcm93c09mQ29udGFjdHMyIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KChsZHZ4bzp2aWEyWWxvb3ApIChsZHZ4ZToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSB1bmxlc3MoKHNwbGl0U291cmNlIHx8ICh2aWExVmlhMlNwYWNlID4gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHR2eG86dmlhMllsb29wKSAodHZ4ZToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHJkdnhvOnZpYTJZbG9vcCkgKHJkdnhlOih2aWEyWWxvb3AgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpICh2aWEyWWxvb3AgPSAodmlhMllsb29wICsgdmlhMlBpdGNoKSkpIHdoZW4oc3BsaXRTb3VyY2UgKHZpYTJZbG9vcFQgPSB2aWEyVGFwWTApIGZvcihyb3cgMSB2aWEyVGFwUm93cyAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdCgodHZ4bzp2aWEyWWxvb3BUKSAodHZ4ZToodmlhMllsb29wVCArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKHZpYTJZbG9vcFQgPSAodmlhMllsb29wVCArIHZpYTJQaXRjaCkpKSkgaWYoc3BsaXRTb3VyY2UgdGhlbiBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAobGF5ZXIzWTBkID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikgKyAoLSBsM2J2bENudHJsUykpKSAobGF5ZXIzWTFkID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSAobGF5ZXIzWTJkID0gKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgKGxheWVyM1kzZCA9ICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmxTKSkgKGxheWVyM1k0ZCA9ICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmxTKSkgKGxheWVyM1k1ZCA9ICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIChsYXllcjNZNmQgPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIChsYXllcjNZN2QgPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmxTKSkpIChsYXllcjNYUmVuYyA9IHNvdXJjZUxheTNWaWEyRW5jKSAobGF5ZXIzWExlbmMgPSAobGF5ZXIzV2lkdGhTIC0gKHZpYTJXaWR0aCArIGxheWVyM1hSZW5jKSkpIChsYXllcjNYMGxkID0gKChsZHZ4byAtIGxheWVyM1hMZW5jKSArIGwzYnZsQ250cmxTKSkgKGxheWVyM1gxbGQgPSAobGR2eG8gLSBsYXllcjNYTGVuYykpIChsYXllcjNYMmxkID0gKGxkdnhvIC0gbGF5ZXIzWExlbmMpKSAobGF5ZXIzWDNsZCA9ICgobGR2eG8gLSBsYXllcjNYTGVuYykgKyBsM2J2bENudHJsUykpIChsYXllcjNYNGxkID0gKGxkdnhlICsgbGF5ZXIzWFJlbmMgKyAoLSBsM2J2bENudHJsUykpKSAobGF5ZXIzWDVsZCA9IChsZHZ4ZSArIGxheWVyM1hSZW5jKSkgKGxheWVyM1g2bGQgPSAobGR2eGUgKyBsYXllcjNYUmVuYykpIChsYXllcjNYN2xkID0gKGxkdnhlICsgbGF5ZXIzWFJlbmMgKyAoLSBsM2J2bENudHJsUykpKSAobGF5ZXIzWExlbmMgPSBzb3VyY2VMYXkzVmlhMkVuYykgKGxheWVyM1hSZW5jID0gKGxheWVyM1dpZHRoUyAtICh2aWEyV2lkdGggKyBsYXllcjNYTGVuYykpKSAobGF5ZXIzWDByZCA9ICgocmR2eG8gLSBsYXllcjNYTGVuYykgKyBsM2J2bENudHJsUykpIChsYXllcjNYMXJkID0gKHJkdnhvIC0gbGF5ZXIzWExlbmMpKSAobGF5ZXIzWDJyZCA9IChyZHZ4byAtIGxheWVyM1hMZW5jKSkgKGxheWVyM1gzcmQgPSAoKHJkdnhvIC0gbGF5ZXIzWExlbmMpICsgbDNidmxDbnRybFMpKSAobGF5ZXIzWDRyZCA9IChyZHZ4ZSArIGxheWVyM1hSZW5jICsgKC0gbDNidmxDbnRybFMpKSkgKGxheWVyM1g1cmQgPSAocmR2eGUgKyBsYXllcjNYUmVuYykpIChsYXllcjNYNnJkID0gKHJkdnhlICsgbGF5ZXIzWFJlbmMpKSAobGF5ZXIzWDdyZCA9IChyZHZ4ZSArIGxheWVyM1hSZW5jICsgKC0gbDNidmxDbnRybFMpKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdChsYXllcjNYMGxkIGxheWVyM1kwZCkgbGlzdChsYXllcjNYMWxkIGxheWVyM1kxZCkgbGlzdChsYXllcjNYMmxkIGxheWVyM1kyZCkgbGlzdChsYXllcjNYM2xkIGxheWVyM1kzZCkgbGlzdChsYXllcjNYNGxkIGxheWVyM1k0ZCkgbGlzdChsYXllcjNYNWxkIGxheWVyM1k1ZCkgbGlzdChsYXllcjNYNmxkIGxheWVyM1k2ZCkgbGlzdChsYXllcjNYN2xkIGxheWVyM1k3ZCkpKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdChsYXllcjNYMHJkIGxheWVyM1kwZCkgbGlzdChsYXllcjNYMXJkIGxheWVyM1kxZCkgbGlzdChsYXllcjNYMnJkIGxheWVyM1kyZCkgbGlzdChsYXllcjNYM3JkIGxheWVyM1kzZCkgbGlzdChsYXllcjNYNHJkIGxheWVyM1k0ZCkgbGlzdChsYXllcjNYNXJkIGxheWVyM1k1ZCkgbGlzdChsYXllcjNYNnJkIGxheWVyM1k2ZCkgbGlzdChsYXllcjNYN3JkIGxheWVyM1k3ZCkpKSkgZWxzZSAobGF5ZXIzWTBkID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSAobGF5ZXIzWTFkID0gKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgKGxheWVyM1gwbGQgPSAobGR2eGUgKyBzb3VyY2VMYXkzVmlhMkVuYykpIChsYXllcjNYMWxkID0gKGxheWVyM1gwbGQgLSBsYXllcjNXaWR0aFMpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KGxheWVyM1gxbGQgbGF5ZXIzWTBkKSBsaXN0KGxheWVyM1gwbGQgbGF5ZXIzWTFkKSkpKSAobGF5ZXIzWDByZCA9IChyZHZ4byAtIHNvdXJjZUxheTNWaWEyRW5jKSkgKGxheWVyM1gxcmQgPSAobGF5ZXIzWDByZCArIGxheWVyM1dpZHRoUykpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QobGF5ZXIzWDByZCBsYXllcjNZMGQpIGxpc3QobGF5ZXIzWDFyZCBsYXllcjNZMWQpKSkpKSAobGF5ZXIzWDB0ID0gKHR2eG8gLSB0YXBMYXkzVmlhMkVuYykpIChsYXllcjNYMXQgPSAobGF5ZXIzWDB0ICsgdGFwTGF5M1dpZHRoKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdChsYXllcjNYMHQgbGF5ZXIzVGFwWTApIGxpc3QobGF5ZXIzWDF0IGxheWVyM1RhcFkxKSkpKSBlbHNlIGlmKChsYXllcjNXaWR0aCA+IDAuMCkgdGhlbiBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KCgobGR2eG8gLSBsYXllcjNFbmNWaWEyKSArIGwzYnZsQ250cmwpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSBsaXN0KChsZHZ4byAtIGxheWVyM0VuY1ZpYTIpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgobGR2eG8gLSBsYXllcjNFbmNWaWEyKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSBsaXN0KCgobGR2eG8gLSBsYXllcjNFbmNWaWEyKSArIGwzYnZsQ250cmwpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmwpKSBsaXN0KChyZHZ4ZSArIGxheWVyM0VuY1ZpYTIgKyAoLSBsM2J2bENudHJsKSkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyICsgbDNidmxDbnRybCkpIGxpc3QoKHJkdnhlICsgbGF5ZXIzRW5jVmlhMikgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgocmR2eGUgKyBsYXllcjNFbmNWaWEyKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKHJkdnhlICsgbGF5ZXIzRW5jVmlhMiArICgtIGwzYnZsQ250cmwpKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KChsZHZ4byAtIGxheWVyM0VuY1ZpYTIpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgocmR2eGUgKyBsYXllcjNFbmNWaWEyKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdCgoKGxkdnhvIC0gbGF5ZXIzRW5jVmlhMik6KGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSAoKHJkdnhlICsgbGF5ZXIzRW5jVmlhMik6KHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBzTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIikgYWNjZXNzRGlyKSkpKSAodGFwV2lkdGhJbklSID0gbWF4KGlubmVyUmluZ1RhcFdpZHRoICh2aWExV2lkdGggKyAoMi4wICogdGFwRW5jVmlhMSkpKSkgKGlyVGFwWG9yaWdpbiA9IChkaWZmWG9yaWdpbiAtIG1pbkRpZmZUYXBSaW5nU3BhY2UgLSBleHRyYUxlZnRTcGFjZSAtIHRhcFdpZHRoSW5JUikpIGlmKChpbm5lclJpbmdNZXRhbFdpZHRoID4gMC4wKSB0aGVuIChpclZpYU9mZnNldCA9IChmaXgoKCgoKGlubmVyUmluZ01ldGFsV2lkdGggLyAyLjApIC0gKHZpYTFXaWR0aCAvIDIuMCkpIC8gdmlhMWdyaWQpICsgMC45OTkpKSAqIHZpYTFncmlkKSkgKGlyVGFwWW9yaWdpbiA9ICh2aWExWW9yaWdpbiAtIGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgLSB2aWExV2lkdGggLSBpclZpYU9mZnNldCkpIGVsc2UgKGlyVGFwWW9yaWdpbiA9ICh2aWExWW9yaWdpbiAtIGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgLSB2aWExV2lkdGggLSB0YXBFbmNWaWExKSkpIChpclRhcEwgPSAoKGRpZmZYZW5kICsgbWluRGlmZlRhcFJpbmdTcGFjZSArIGV4dHJhUmlnaHRTcGFjZSArIHRhcFdpZHRoSW5JUikgLSBpclRhcFhvcmlnaW4pKSBpZigoaW5uZXJSaW5nTWV0YWxXaWR0aCA+IDAuMCkgdGhlbiAoaXJUYXBXID0gKCh2aWExWWxvb3AgKyAoLSB2aWExU3BhY2UpICsgZHJuVmlhWXNwYWNlUmluZ1ZpYVRvcCArIHZpYTFXaWR0aCArIGlyVmlhT2Zmc2V0KSAtIGlyVGFwWW9yaWdpbikpIGVsc2UgKGlyVGFwVyA9ICgodmlhMVlsb29wICsgKC0gdmlhMVNwYWNlKSArIGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgKyB2aWExV2lkdGggKyB0YXBFbmNWaWExKSAtIGlyVGFwWW9yaWdpbikpKSBpZih0YXBFZGdlc0F0NDUgdGhlbiAoYmV2ZWxMZW5ndGggPSAoMC42ICogdGFwV2lkdGhJbklSKSkgKGJldmVsTGVuZ3RoID0gKHJvdW5kKCgoYmV2ZWxMZW5ndGggLyB0YXBHcmlkKSArIDAuMDAxKSkgKiB0YXBHcmlkKSkgKGxvd2VyTGVmdEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlckxlZnRCTCA9IGJldmVsTGVuZ3RoKSAobG93ZXJSaWdodEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlclJpZ2h0QkwgPSBiZXZlbExlbmd0aCkgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJpdHIiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlyVGFwVykgbGlzdCgibCIgImZsb2F0IiBpclRhcEwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaXJUYXBYb3JpZ2luKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIGlyVGFwWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdGFwV2lkdGhJbklSKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIHRhcEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSB3aGVuKHRhcFdlbGxJbXBsYW50IChpdHJpWG9yaWdpbiA9IChpclRhcFhvcmlnaW4gLSB0YXBXZWxsSW1wRW5jKSkgKGl0cmlZb3JpZ2luID0gKGlyVGFwWW9yaWdpbiAtIHRhcFdlbGxJbXBFbmMpKSAoaXRyaVJpbmdXaWR0aCA9ICh0YXBXaWR0aEluSVIgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChpdHJpVyA9IChpclRhcFcgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChpdHJpTCA9IChpclRhcEwgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJpdHJpIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBpdHJpVykgbGlzdCgibCIgImZsb2F0IiBpdHJpTCkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpdHJpWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpdHJpWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgdGFwV2VsbEltcGxhbnQpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpdHJpUmluZ1dpZHRoKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIG5pbCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB0YXBHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpKSAod2VsbFhvcmlnaW4gPSAoaXJUYXBYb3JpZ2luIC0gd2VsbEVuY1RhcCkpICh3ZWxsWW9yaWdpbiA9IChpclRhcFlvcmlnaW4gLSB3ZWxsRW5jVGFwKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KCh3ZWxsWG9yaWdpbjp3ZWxsWW9yaWdpbikgKCh3ZWxsWG9yaWdpbiArIGlyVGFwTCArICgyLjAgKiB3ZWxsRW5jVGFwKSk6KHdlbGxZb3JpZ2luICsgaXJUYXBXICsgKDIuMCAqIHdlbGxFbmNUYXApKSkpKSB3aGVuKG1heHZMYXllciAoaHZsbHggPSAod2VsbFhvcmlnaW4gLSBodldlbGxFbmNsb3N1cmUpKSAoaHZsbHkgPSAod2VsbFlvcmlnaW4gLSBodldlbGxFbmNsb3N1cmUpKSAoaHZ1cnggPSAod2VsbFhvcmlnaW4gKyBpclRhcEwgKyAoMi4wICogd2VsbEVuY1RhcCkgKyBodldlbGxFbmNsb3N1cmUpKSAoaHZ1cnkgPSAod2VsbFlvcmlnaW4gKyBpclRhcFcgKyAoMi4wICogd2VsbEVuY1RhcCkgKyBodldlbGxFbmNsb3N1cmUpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbWF4dkxheWVyIGxpc3QoKGh2bGx4Omh2bGx5KSAoaHZ1cng6aHZ1cnkpKSkpIGlmKChpbm5lclJpbmdNZXRhbFdpZHRoID4gMC4wKSB0aGVuICh4Q29vcmQgPSAoaXJUYXBYb3JpZ2luICsgbWF4KGlyVmlhT2Zmc2V0IHRhcEVuY1ZpYTEpKSkgKHlDb29yZCA9IChpclRhcFlvcmlnaW4gKyBtYXgoaXJWaWFPZmZzZXQgdGFwRW5jVmlhMSkpKSAobW9kVyA9IChpclRhcFcgLSAoMi4wICogbWF4KGlyVmlhT2Zmc2V0IHRhcEVuY1ZpYTEpKSkpIChtb2RMID0gKGlyVGFwTCAtICgyLjAgKiBtYXgoaXJWaWFPZmZzZXQgdGFwRW5jVmlhMSkpKSkgZWxzZSAoeENvb3JkID0gKGlyVGFwWG9yaWdpbiArIHRhcEVuY1ZpYTEpKSAoeUNvb3JkID0gKGlyVGFwWW9yaWdpbiArIHRhcEVuY1ZpYTEpKSAobW9kVyA9IChpclRhcFcgLSAoMi4wICogdGFwRW5jVmlhMSkpKSAobW9kTCA9IChpclRhcEwgLSAoMi4wICogdGFwRW5jVmlhMSkpKSkgaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gKDIuMCAqIHZpYTFTcGFjZSkpICh1cHBlckxlZnRCTCA9ICgyLjAgKiB2aWExU3BhY2UpKSAobG93ZXJSaWdodEJMID0gKDIuMCAqIHZpYTFTcGFjZSkpICh1cHBlclJpZ2h0QkwgPSAoMi4wICogdmlhMVNwYWNlKSkgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIHdoZW4oZmlsbGVkUmluZ3MgKHZpYTFFbmMgPSBtYXgobGF5ZXIyRW5jVmlhMSB0YXBFbmNWaWExKSkgKHZpYTFXaWR0aEluSVIgPSAodGFwV2lkdGhJbklSIC0gKDIuMCAqIHZpYTFFbmMpKSkgKHZpYTFYb3JpZ2luID0gKGlyVGFwWG9yaWdpbiArIHZpYTFFbmMpKSAodmlhMVlvcmlnaW4gPSAoaXJUYXBZb3JpZ2luICsgdmlhMUVuYykpKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJpdjFyIiBpZihmaWxsZWRSaW5ncyAoMDowKSAoeENvb3JkOnlDb29yZCkpICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKGlyVGFwVyAtICgyLjAgKiB2aWExRW5jKSkgbW9kVykpIGxpc3QoImwiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKGlyVGFwTCAtICgyLjAgKiB2aWExRW5jKSkgbW9kTCkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMVhvcmlnaW4gMC4wKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB2aWExWW9yaWdpbiAwLjApKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMUxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMVdpZHRoSW5JUiB2aWExV2lkdGgpKSBsaXN0KCJyaXZldFdpZHRoIiAiZmxvYXQiIHZpYTFXaWR0aCkgbGlzdCgicml2ZXRTcGFjZSIgImZsb2F0IiB2aWExU3BhY2UpIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCIgImJvb2xlYW4iICJGQUxTRSIpIGxpc3QoImdyaWQiICJmbG9hdCIgdmlhMWdyaWQpKSkgaWYoc3BsaXRTb3VyY2UgdGhlbiAoaXJMMnJpbmdXID0gaW5uZXJSaW5nTWV0YWxXaWR0aCkgKGlyTDJPZmYgPSAoaW5uZXJSaW5nVGFwV2lkdGggLSBpbm5lclJpbmdNZXRhbFdpZHRoKSkgKGlyTDJPZmYgPSAoZml4KCgoKGlyTDJPZmYgLyAyKSAvIGxheWVyMmdyaWQpICsgMWUtMDYpKSAqIGxheWVyMmdyaWQpKSAoaXJMMnhEZWx0YSA9IChpclRhcFhvcmlnaW4gKyBpckwyT2ZmKSkgKGlyTDJ5RGVsdGEgPSAoaXJUYXBZb3JpZ2luICsgaXJMMk9mZikpIChpckwydyA9IChpclRhcFcgKyAoLTIuMCAqIGlyTDJPZmYpKSkgKGlyTDJsID0gKGlyVGFwTCArICgtMi4wICogaXJMMk9mZikpKSBlbHNlIChpckwydyA9IChpclRhcFcgKyAoLTIuMCAqIHRhcEVuY1ZpYTEpICsgKDIuMCAqIGxheWVyMkVuY1ZpYTEpKSkgKGlyTDJsID0gKGlyVGFwTCArICgtMi4wICogdGFwRW5jVmlhMSkgKyAoMi4wICogbGF5ZXIyRW5jVmlhMSkpKSAoaXJMMnhEZWx0YSA9IChpclRhcFhvcmlnaW4gKyB0YXBFbmNWaWExICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSAoaXJMMnlEZWx0YSA9IChpclRhcFlvcmlnaW4gKyB0YXBFbmNWaWExICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSBpZigoaW5uZXJSaW5nTWV0YWxXaWR0aCA+IDAuMCkgdGhlbiAoaXJMMnJpbmdXID0gbWF4KCgoMi4wICogbGF5ZXIyRW5jVmlhMSkgKyB2aWExV2lkdGgpICgoMi4wICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyV2lkdGgpIGlubmVyUmluZ01ldGFsV2lkdGgpKSBlbHNlIChpckwycmluZ1cgPSBtYXgoKCgyLjAgKiBsYXllcjJFbmNWaWExKSArIHZpYTFXaWR0aCkgKCgyLjAgKiBsYXllcjJFbmNWaWEyKSArIHZpYTJXaWR0aCkpKSkpIGlmKGxheWVyMkVkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9IGlyTDJyaW5nVykgKHVwcGVyTGVmdEJMID0gaXJMMnJpbmdXKSAobG93ZXJSaWdodEJMID0gaXJMMnJpbmdXKSAodXBwZXJSaWdodEJMID0gaXJMMnJpbmdXKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgImlsMnIiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIGlyVGFwVyBpckwydykpIGxpc3QoImwiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgaXJUYXBMIGlyTDJsKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcFhvcmlnaW4gaXJMMnhEZWx0YSkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgaXJUYXBZb3JpZ2luIGlyTDJ5RGVsdGEpKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB0YXBXaWR0aEluSVIgaXJMMnJpbmdXKSkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiBsYXllcjJncmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQxID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJpZDIgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYmlkMyA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiaWQ0ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkMSBpck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDIgaXJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQzIGlyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkNCBpck5ldCkgd2hlbigobGF5ZXIzICYmIGZ1bGx5U3RyYXAgJiYgKGZ1bGx5U3RyYXAgIT0gIkZBTFNFIikpIChpdjJyRW5jID0gKChpckwycmluZ1cgLSB2aWEyV2lkdGgpIC8gMi4wKSkgKHRlbXBTaXplID0gKGl2MnJFbmMgLyB2aWEyZ3JpZCkpIChpdjJyRW5jID0gKGZpeCgodGVtcFNpemUgKyAwLjk5OSkpICogdmlhMmdyaWQpKSBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKHVwcGVyTGVmdEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpIChsb3dlclJpZ2h0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKHVwcGVyUmlnaHRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgdW5sZXNzKGZpbGxlZFJpbmdzIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIml2MnIiICgoaXJMMnhEZWx0YSArIGl2MnJFbmMpOihpckwyeURlbHRhICsgaXYyckVuYykpICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgKGlyTDJ3IC0gKDIuMCAqIGl2MnJFbmMpKSkgbGlzdCgibCIgImZsb2F0IiAoaXJMMmwgLSAoMi4wICogaXYyckVuYykpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgieU9mZnNldCIgImZsb2F0IiAwLjApIGxpc3QoInJpdmV0TGF5ZXIiICJsaXN0IiB2aWEyTGF5ZXIpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMldpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTJTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB2aWEyZ3JpZCkpKSkgd2hlbihmaWxsZWRSaW5ncyAodmlhMkVuYyA9IG1heChsYXllcjJFbmNWaWEyIGxheWVyM0VuY1ZpYTIpKSAodmlhMldpZHRoSW5JUiA9ICh0YXBXaWR0aEluSVIgLSAoMi4wICogdmlhMkVuYykpKSAodmlhMlhvcmlnaW4gPSAoaXJUYXBYb3JpZ2luICsgdmlhMkVuYykpICh2aWEyWW9yaWdpbiA9IChpclRhcFlvcmlnaW4gKyB2aWEyRW5jKSkgKHZpYTJCZXZlbCA9ICh2aWEyV2lkdGhJbklSICsgKDIuMCAqIHZpYTJFbmMpKSkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcml2ZXRlZFJpbmdJZCAiaXYyciIgKDA6MCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAoaXJUYXBXIC0gKDIuMCAqIHZpYTJFbmMpKSkgbGlzdCgibCIgImZsb2F0IiAoaXJUYXBMIC0gKDIuMCAqIHZpYTJFbmMpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiB2aWEyWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiB2aWEyWW9yaWdpbikgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTJMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHZpYTJXaWR0aEluSVIpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMldpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTJTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiB2aWEyQmV2ZWwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdmlhMkJldmVsKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIHZpYTJCZXZlbCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB2aWEyQmV2ZWwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTJncmlkKSkpKSBpZigoaW5uZXJSaW5nTWV0YWxXaWR0aCA+IDAuMCkgdGhlbiAoaXJMM3cgPSBpckwydykgKGlyTDNsID0gaXJMMmwpIChpckwzeERlbHRhID0gaXJMMnhEZWx0YSkgKGlyTDN5RGVsdGEgPSBpckwyeURlbHRhKSAoaXJMM3JpbmdXID0gbWF4KCgoMi4wICogaXJMYXllcjNFbmNWaWEyKSArIHZpYTJXaWR0aCkgaW5uZXJSaW5nTWV0YWxXaWR0aCkpIGVsc2UgKGlyTDN3ID0gKGlyTDJ3ICsgKC0yLjAgKiBpdjJyRW5jKSArICgyLjAgKiBpckxheWVyM0VuY1ZpYTIpKSkgKGlyTDNsID0gKGlyTDJsICsgKC0yLjAgKiBpdjJyRW5jKSArICgyLjAgKiBpckxheWVyM0VuY1ZpYTIpKSkgKGlyTDN4RGVsdGEgPSAoaXJMMnhEZWx0YSArIGl2MnJFbmMgKyAoLSBpckxheWVyM0VuY1ZpYTIpKSkgKGlyTDN5RGVsdGEgPSAoaXJMMnlEZWx0YSArIGl2MnJFbmMgKyAoLSBpckxheWVyM0VuY1ZpYTIpKSkgKGlyTDNyaW5nVyA9ICgoMi4wICogaXJMYXllcjNFbmNWaWEyKSArIHZpYTJXaWR0aCkpKSAodG9wTGF5ZXIgPSBsYXllcjMpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9IGlyTDNyaW5nVykgKHVwcGVyTGVmdEJMID0gaXJMM3JpbmdXKSAobG93ZXJSaWdodEJMID0gaXJMM3JpbmdXKSAodXBwZXJSaWdodEJMID0gaXJMM3JpbmdXKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgImlsM3IiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIGlyVGFwVyBpckwzdykpIGxpc3QoImwiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgaXJUYXBMIGlyTDNsKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcFhvcmlnaW4gaXJMM3hEZWx0YSkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgaXJUYXBZb3JpZ2luIGlyTDN5RGVsdGEpKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB0YXBXaWR0aEluSVIgaXJMM3JpbmdXKSkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiBpckxheWVyM0FkZFdpZHRoQnZsKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHRhcFdpZHRoSW5JUiBsb3dlckxlZnRCTCkpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdGFwV2lkdGhJbklSIHVwcGVyTGVmdEJMKSkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB0YXBXaWR0aEluSVIgbG93ZXJSaWdodEJMKSkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB0YXBXaWR0aEluSVIgdXBwZXJSaWdodEJMKSkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiBsYXllcjNncmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiB0KSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChkYmlkMSA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiaWQyID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJpZDMgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYmlkNCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZDEgaXJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQyIGlyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMyBpck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDQgaXJOZXQpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gaXJOZXQgZGJpZDEpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gaXJOZXQgZGJpZDIpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gaXJOZXQgZGJpZDMpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gaXJOZXQgZGJpZDQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAodGFwV2lkdGhJbk9SID0gbWF4KG91dGVyUmluZ1RhcFdpZHRoICgoMi4wICogdGFwRW5jVmlhMSkgKyB2aWExV2lkdGgpKSkgKG91dGVyVGFwRGVsdGEgPSAod2VsbFRhcFNwYWNlICsgdGFwV2lkdGhJbk9SKSkgKG9yVGFwWG9yaWdpbiA9ICh3ZWxsWG9yaWdpbiAtIG91dGVyVGFwRGVsdGEpKSAob3JUYXBZb3JpZ2luID0gKHdlbGxZb3JpZ2luIC0gb3V0ZXJUYXBEZWx0YSkpIChvclRhcFcgPSAoaXJUYXBXICsgKDIuMCAqIChvdXRlclRhcERlbHRhICsgd2VsbEVuY1RhcCkpKSkgKG9yVGFwTCA9IChpclRhcEwgKyAoMi4wICogKG91dGVyVGFwRGVsdGEgKyB3ZWxsRW5jVGFwKSkpKSB3aGVuKChsYXllcjMgJiYgZnVsbHlTdHJhcCAmJiAoZnVsbHlTdHJhcCAhPSAiRkFMU0UiKSkgKG9yTGF5ZXIzWG9yaWdpbkEgPSAoaXJMM3hEZWx0YSAtIG9yaXJMYXllcjNTcGFjZSAtIG9yTGF5ZXIzV2lkdGgpKSAob3JMYXllcjNYb3JpZ2luQiA9IChvclRhcFhvcmlnaW4gKyAodGFwV2lkdGhJbk9SIC8gMi4wKSArIChvckxheWVyM1dpZHRoIC8gLTIuMCkpKSB3aGVuKChvckxheWVyM1hvcmlnaW5BIDwgb3JMYXllcjNYb3JpZ2luQikgKGV4dHJhU3BhY2UgPSAob3JMYXllcjNYb3JpZ2luQiAtIG9yTGF5ZXIzWG9yaWdpbkEpKSAodGVtcFNpemUgPSAoZXh0cmFTcGFjZSAvIHRhcEdyaWQpKSAoZXh0cmFTcGFjZSA9IChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIHRhcEdyaWQpKSAob3JUYXBYb3JpZ2luID0gKG9yVGFwWG9yaWdpbiAtIGV4dHJhU3BhY2UpKSAob3JUYXBZb3JpZ2luID0gKG9yVGFwWW9yaWdpbiAtIGV4dHJhU3BhY2UpKSAob3JUYXBXID0gKG9yVGFwVyArICgyLjAgKiBleHRyYVNwYWNlKSkpIChvclRhcEwgPSAob3JUYXBMICsgKDIuMCAqIGV4dHJhU3BhY2UpKSkpKSBpZih0YXBFZGdlc0F0NDUgdGhlbiAoYmV2ZWxMZW5ndGggPSAoMC42ICogdGFwV2lkdGhJbk9SKSkgKGJldmVsTGVuZ3RoID0gKHJvdW5kKCgoYmV2ZWxMZW5ndGggLyB0YXBHcmlkKSArIDAuMDAxKSkgKiB0YXBHcmlkKSkgKGxvd2VyTGVmdEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlckxlZnRCTCA9IGJldmVsTGVuZ3RoKSAobG93ZXJSaWdodEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlclJpZ2h0QkwgPSBiZXZlbExlbmd0aCkgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJvdHIiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIG9yVGFwVykgbGlzdCgibCIgImZsb2F0IiBvclRhcEwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgb3JUYXBYb3JpZ2luKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIG9yVGFwWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdGFwV2lkdGhJbk9SKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIHRhcEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG9yTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG9yTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG9yTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG9yTmV0KSB3aGVuKHRhcFN1YkltcGxhbnQgKG90cmlYb3JpZ2luID0gKG9yVGFwWG9yaWdpbiAtIHRhcFN1YkltcEVuYykpIChvdHJpWW9yaWdpbiA9IChvclRhcFlvcmlnaW4gLSB0YXBTdWJJbXBFbmMpKSAob3RyaVJpbmdXaWR0aCA9ICh0YXBXaWR0aEluT1IgKyB0YXBTdWJJbXBFbmMgKyB0YXBTdWJJbXBFbmMpKSAob3RyaVcgPSAob3JUYXBXICsgdGFwU3ViSW1wRW5jICsgdGFwU3ViSW1wRW5jKSkgKG90cmlMID0gKG9yVGFwTCArIHRhcFN1YkltcEVuYyArIHRhcFN1YkltcEVuYykpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJvdHJpIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBvdHJpVykgbGlzdCgibCIgImZsb2F0IiBvdHJpTCkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBvdHJpWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiBvdHJpWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgdGFwU3ViSW1wbGFudCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIG90cmlSaW5nV2lkdGgpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgbmlsKSBsaXN0KCJncmlkIiAiZmxvYXQiIHRhcEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkpIChvclZpYU9mZnNldCA9IChmaXgoKCgoKHRhcFdpZHRoSW5PUiAvIDIuMCkgLSAodmlhMVdpZHRoIC8gMi4wKSkgLyB2aWExZ3JpZCkgKyAwLjk5OSkpICogdmlhMWdyaWQpKSAoeENvb3JkID0gKG9yVGFwWG9yaWdpbiArIG1heChvclZpYU9mZnNldCB0YXBFbmNWaWExKSkpICh5Q29vcmQgPSAob3JUYXBZb3JpZ2luICsgbWF4KG9yVmlhT2Zmc2V0IHRhcEVuY1ZpYTEpKSkgKGxvd2VyTGVmdEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpICh1cHBlckxlZnRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAobG93ZXJSaWdodEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpICh1cHBlclJpZ2h0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgd2hlbihmaWxsZWRSaW5ncyAob3JUYXBFbmNWaWExID0gKHRhcFdpZHRoSW5PUiAtIG9yTGF5ZXIzV2lkdGgpKSAodmlhMVdpZHRoSW5PUiA9IChvckxheWVyM1dpZHRoIC0gKDIuMCAqIHZpYTFFbmMpKSkpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIm92MXIiIGlmKGZpbGxlZFJpbmdzIChvclRhcFhvcmlnaW46b3JUYXBZb3JpZ2luKSAoeENvb3JkOnlDb29yZCkpICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwVyAtICgyLjAgKiAob3JUYXBFbmNWaWExICsgdmlhMUVuYykpKSAob3JUYXBXIC0gKDIuMCAqIG1heChvclZpYU9mZnNldCB0YXBFbmNWaWExKSkpKSkgbGlzdCgibCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBMIC0gKDIuMCAqIChvclRhcEVuY1ZpYTEgKyB2aWExRW5jKSkpIChvclRhcEwgLSAoMi4wICogbWF4KG9yVmlhT2Zmc2V0IHRhcEVuY1ZpYTEpKSkpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcEVuY1ZpYTEgKyB2aWExRW5jKSAwLjApKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcEVuY1ZpYTEgKyB2aWExRW5jKSAwLjApKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMUxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMVdpZHRoSW5PUiB2aWExV2lkdGgpKSBsaXN0KCJyaXZldFdpZHRoIiAiZmxvYXQiIHZpYTFXaWR0aCkgbGlzdCgicml2ZXRTcGFjZSIgImZsb2F0IiB2aWExU3BhY2UpIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgMC4wIGxvd2VyTGVmdEJMKSkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAwLjAgdXBwZXJMZWZ0QkwpKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIDAuMCBsb3dlclJpZ2h0QkwpKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIDAuMCB1cHBlclJpZ2h0QkwpKSBsaXN0KCJhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB2aWExZ3JpZCkpKSB1bmxlc3MoKGZpbGxlZFJpbmdzIHx8IGxheWVyMkVkZ2VzQXQ0NSB8fCB0YXBFZGdlc0F0NDUpIChleHRyYVZpYTFSaWdodE9yaWdpbiA9ICh4Q29vcmQgKyAob3JUYXBMIC0gKDIuMCAqIG1heChvclZpYU9mZnNldCB0YXBFbmNWaWExKSkpICsgKC0gdmlhMVdpZHRoKSkpIChleHRyYVZpYTFUb3BPcmlnaW4gPSAoeUNvb3JkICsgKG9yVGFwVyAtICgyLjAgKiBtYXgob3JWaWFPZmZzZXQgdGFwRW5jVmlhMSkpKSArICgtIHZpYTFXaWR0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdCh4Q29vcmQgeUNvb3JkKSBsaXN0KCh4Q29vcmQgKyB2aWExV2lkdGgpICh5Q29vcmQgKyB2aWExV2lkdGgpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdChsaXN0KGV4dHJhVmlhMVJpZ2h0T3JpZ2luIHlDb29yZCkgbGlzdCgoZXh0cmFWaWExUmlnaHRPcmlnaW4gKyB2aWExV2lkdGgpICh5Q29vcmQgKyB2aWExV2lkdGgpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdChsaXN0KHhDb29yZCBleHRyYVZpYTFUb3BPcmlnaW4pIGxpc3QoKHhDb29yZCArIHZpYTFXaWR0aCkgKGV4dHJhVmlhMVRvcE9yaWdpbiArIHZpYTFXaWR0aCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QoZXh0cmFWaWExUmlnaHRPcmlnaW4gZXh0cmFWaWExVG9wT3JpZ2luKSBsaXN0KChleHRyYVZpYTFSaWdodE9yaWdpbiArIHZpYTFXaWR0aCkgKGV4dHJhVmlhMVRvcE9yaWdpbiArIHZpYTFXaWR0aCkpKSkpIGlmKGxheWVyMyB0aGVuIChvckxheWVyM0VuY1ZpYTIgPSAoKG9yTGF5ZXIzV2lkdGggLSB2aWEyV2lkdGgpIC8gMi4wKSkgKHRlbXBTaXplID0gKG9yTGF5ZXIzRW5jVmlhMiAvIGxheWVyM2dyaWQpKSAob3JMYXllcjNFbmNWaWEyID0gKGZpeCgodGVtcFNpemUgKyAwLjk5OSkpICogbGF5ZXIzZ3JpZCkpIChvdXRlclJpbmdNZXRhbFdpZHRoID0gKCgyLjAgKiBvckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSkgKG9yTDJ3ID0gKG9yVGFwVyArICgtIHRhcFdpZHRoSW5PUikgKyBvdXRlclJpbmdNZXRhbFdpZHRoKSkgKG9yTDJsID0gKG9yVGFwTCArICgtIHRhcFdpZHRoSW5PUikgKyBvdXRlclJpbmdNZXRhbFdpZHRoKSkgKG9yTDJ4RGVsdGEgPSAob3JUYXBYb3JpZ2luICsgKCh0YXBXaWR0aEluT1IgKyAoLSBvdXRlclJpbmdNZXRhbFdpZHRoKSkgLyAyLjApKSkgKG9yTDJ4RGVsdGEgPSAoZml4KCgob3JMMnhEZWx0YSAvIGxheWVyMmdyaWQpICsgMC45OTkpKSAqIGxheWVyMmdyaWQpKSAob3JMMnlEZWx0YSA9IChvclRhcFlvcmlnaW4gKyAoKHRhcFdpZHRoSW5PUiArICgtIG91dGVyUmluZ01ldGFsV2lkdGgpKSAvIDIuMCkpKSAob3JMMnlEZWx0YSA9IChmaXgoKChvckwyeURlbHRhIC8gbGF5ZXIyZ3JpZCkgKyAwLjk5OSkpICogbGF5ZXIyZ3JpZCkpIChvckwycmluZ1cgPSBtYXgoKCgyLjAgKiBsYXllcjJFbmNWaWExKSArIHZpYTFXaWR0aCkgKCgyLjAgKiBsYXllcjJFbmNWaWEyKSArIHZpYTJXaWR0aCkgb3V0ZXJSaW5nTWV0YWxXaWR0aCkpIGVsc2UgKG9yTDJ3ID0gKG9yVGFwVyArICgtMi4wICogbWF4KG9yVmlhT2Zmc2V0IHRhcEVuY1ZpYTEpKSArICgyLjAgKiBsYXllcjJFbmNWaWExKSkpIChvckwybCA9IChvclRhcEwgKyAoLTIuMCAqIG1heChvclZpYU9mZnNldCB0YXBFbmNWaWExKSkgKyAoMi4wICogbGF5ZXIyRW5jVmlhMSkpKSAob3JMMnhEZWx0YSA9ICh4Q29vcmQgKyAoLSBsYXllcjJFbmNWaWExKSkpIChvckwyeURlbHRhID0gKHlDb29yZCArICgtIGxheWVyMkVuY1ZpYTEpKSkgKG9yTDJyaW5nVyA9IG1heCgoKDIuMCAqIGxheWVyMkVuY1ZpYTEpICsgdmlhMVdpZHRoKSAoKDIuMCAqIGxheWVyMkVuY1ZpYTIpICsgdmlhMldpZHRoKSkpKSBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSBvckwycmluZ1cpICh1cHBlckxlZnRCTCA9IG9yTDJyaW5nVykgKGxvd2VyUmlnaHRCTCA9IG9yTDJyaW5nVykgKHVwcGVyUmlnaHRCTCA9IG9yTDJyaW5nVykgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJvbDJyIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBXIC0gKDIuMCAqIG9yVGFwRW5jVmlhMSkpIG9yTDJ3KSkgbGlzdCgibCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBMIC0gKDIuMCAqIG9yVGFwRW5jVmlhMSkpIG9yTDJsKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBYb3JpZ2luICsgb3JUYXBFbmNWaWExKSBvckwyeERlbHRhKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBZb3JpZ2luICsgb3JUYXBFbmNWaWExKSBvckwyeURlbHRhKSkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3Mgb3JMYXllcjNXaWR0aCBvckwycmluZ1cpKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAwLjAgbG93ZXJMZWZ0QkwpKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIDAuMCB1cHBlckxlZnRCTCkpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgMC4wIGxvd2VyUmlnaHRCTCkpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgMC4wIHVwcGVyUmlnaHRCTCkpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgbGF5ZXIyZ3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgIlRSVUUiKSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChkYmlkMSA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiaWQyID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJpZDMgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYmlkNCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZDEgb3JOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQyIG9yTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMyBvck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDQgb3JOZXQpIHdoZW4oKGxheWVyMyAmJiBmdWxseVN0cmFwICYmIChmdWxseVN0cmFwICE9ICJGQUxTRSIpKSAob3YyckVuYyA9ICgob3JMMnJpbmdXIC0gdmlhMldpZHRoKSAvIDIuMCkpICh0ZW1wU2l6ZSA9IChvdjJyRW5jIC8gdmlhMmdyaWQpKSAob3YyckVuYyA9IChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIHZpYTJncmlkKSkgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpICh1cHBlckxlZnRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAobG93ZXJSaWdodEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpICh1cHBlclJpZ2h0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgZWxzZSAobG93ZXJMZWZ0QkwgPSB2aWEyU3BhY2UpICh1cHBlckxlZnRCTCA9IHZpYTJTcGFjZSkgKGxvd2VyUmlnaHRCTCA9IHZpYTJTcGFjZSkgKHVwcGVyUmlnaHRCTCA9IHZpYTJTcGFjZSkpIHdoZW4oZmlsbGVkUmluZ3MgKHZpYTJXaWR0aEluT1IgPSAob3JMYXllcjNXaWR0aCAtICgyLjAgKiB2aWEyRW5jKSkpKSB3aGVuKGZpbGxlZFJpbmdzIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIm92MnIiIChvclRhcFhvcmlnaW46b3JUYXBZb3JpZ2luKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIChvclRhcFcgLSAoMi4wICogKHZpYTJFbmMgKyBvclRhcEVuY1ZpYTEpKSkpIGxpc3QoImwiICJmbG9hdCIgKG9yVGFwTCAtICgyLjAgKiAodmlhMkVuYyArIG9yVGFwRW5jVmlhMSkpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiAob3JUYXBFbmNWaWExICsgdmlhMkVuYykpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgKG9yVGFwRW5jVmlhMSArIHZpYTJFbmMpKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMkxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdmlhMldpZHRoSW5PUikgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMlNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiICh2aWEyRW5jICsgKC0wLjUgKyBvckxheWVyM1dpZHRoKSkpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgKHZpYTJFbmMgKyAoLTAuNSArIG9yTGF5ZXIzV2lkdGgpKSkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiAodmlhMkVuYyArICgtMC41ICsgb3JMYXllcjNXaWR0aCkpKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiICh2aWEyRW5jICsgKC0wLjUgKyBvckxheWVyM1dpZHRoKSkpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTJncmlkKSkpKSB1bmxlc3MoZmlsbGVkUmluZ3MgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcml2ZXRlZFJpbmdJZCAib3YyciIgKChvckwyeERlbHRhICsgb3YyckVuYyk6KG9yTDJ5RGVsdGEgKyBvdjJyRW5jKSkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAob3JMMncgLSAoMi4wICogb3YyckVuYykpKSBsaXN0KCJsIiAiZmxvYXQiIChvckwybCAtICgyLjAgKiBvdjJyRW5jKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTJMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHZpYTJXaWR0aCkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMlNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTJncmlkKSkpKSAob3JMM3cgPSAob3JMMncgKyAoLTIuMCAqIG92MnJFbmMpICsgKDIuMCAqIG9yTGF5ZXIzRW5jVmlhMikpKSAob3JMM2wgPSAob3JMMmwgKyAoLTIuMCAqIG92MnJFbmMpICsgKDIuMCAqIG9yTGF5ZXIzRW5jVmlhMikpKSAob3JMM3hEZWx0YSA9IChvckwyeERlbHRhICsgb3YyckVuYyArICgtIG9yTGF5ZXIzRW5jVmlhMikpKSAob3JMM3lEZWx0YSA9IChvckwyeURlbHRhICsgb3YyckVuYyArICgtIG9yTGF5ZXIzRW5jVmlhMikpKSBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSAoKDIuMCAqIG9yTGF5ZXIzRW5jVmlhMikgKyB2aWEyV2lkdGgpKSAodXBwZXJMZWZ0QkwgPSAoKDIuMCAqIG9yTGF5ZXIzRW5jVmlhMikgKyB2aWEyV2lkdGgpKSAobG93ZXJSaWdodEJMID0gKCgyLjAgKiBvckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSkgKHVwcGVyUmlnaHRCTCA9ICgoMi4wICogb3JMYXllcjNFbmNWaWEyKSArIHZpYTJXaWR0aCkpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib2wzciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwVyAtICgyLjAgKiBvclRhcEVuY1ZpYTEpKSBvckwzdykpIGxpc3QoImwiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwTCAtICgyLjAgKiBvclRhcEVuY1ZpYTEpKSBvckwzbCkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwWG9yaWdpbiArIG9yVGFwRW5jVmlhMSkgb3JMM3hEZWx0YSkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwWW9yaWdpbiArIG9yVGFwRW5jVmlhMSkgb3JMM3lEZWx0YSkpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIG9yTGF5ZXIzV2lkdGggKCgyLjAgKiBvckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSkpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzICgtMC41ICsgb3JMYXllcjNXaWR0aCkgbG93ZXJMZWZ0QkwpKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzICgtMC41ICsgb3JMYXllcjNXaWR0aCkgdXBwZXJMZWZ0QkwpKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzICgtMC41ICsgb3JMYXllcjNXaWR0aCkgbG93ZXJSaWdodEJMKSkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAoLTAuNSArIG9yTGF5ZXIzV2lkdGgpIHVwcGVyUmlnaHRCTCkpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgbGF5ZXIzZ3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgdCkpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQxIG9yTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBvck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDMgb3JOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQ0IG9yTmV0KSkgKHBpbiA9IChkYkNyZWF0ZVBpbiBvck5ldCBkYmlkMSkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW4gPSAoZGJDcmVhdGVQaW4gb3JOZXQgZGJpZDIpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluID0gKGRiQ3JlYXRlUGluIG9yTmV0IGRiaWQzKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbiA9IChkYkNyZWF0ZVBpbiBvck5ldCBkYmlkNCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIHdoZW4odGhpcmRSaW5nICh0aGlyZFJpbmdUYXBFbmNWaWExID0gdGFwRW5jVmlhMSkgd2hlbigoTndlbGxjb25uZWN0VG9JT3BhZCAmJiAoTndlbGxjb25uZWN0VG9JT3BhZCAhPSAiRkFMU0UiKSkgKHRoaXJkUmluZ1RhcFdpZHRoID0gdGhpcmRSaW5nVGFwV2lkdGgyKSAodHJMYXllcjNXaWR0aCA9IHRyTGF5ZXIzV2lkdGgyKSkgKHRhcFdpZHRoSW5UUiA9IG1heCh0aGlyZFJpbmdUYXBXaWR0aCAoKDIuMCAqIHRoaXJkUmluZ1RhcEVuY1ZpYTEpICsgdmlhMVdpZHRoKSkpICh0aGlyZFRhcERlbHRhID0gKHdlbGxUYXBTcGFjZSArIHdlbGxFbmNUYXAgKyB0YXBXaWR0aEluVFIpKSAodHJUYXBYb3JpZ2luID0gKG9yVGFwWG9yaWdpbiAtIHRoaXJkVGFwRGVsdGEpKSAodHJUYXBZb3JpZ2luID0gKG9yVGFwWW9yaWdpbiAtIHRoaXJkVGFwRGVsdGEpKSAodHJUYXBXID0gKG9yVGFwVyArICgyLjAgKiB0aGlyZFRhcERlbHRhKSkpICh0clRhcEwgPSAob3JUYXBMICsgKDIuMCAqIHRoaXJkVGFwRGVsdGEpKSkgd2hlbigobGF5ZXIzICYmIGZ1bGx5U3RyYXAgJiYgKGZ1bGx5U3RyYXAgIT0gIkZBTFNFIikpICh0ckxheWVyM1hvcmlnaW5BID0gKG9yTDN4RGVsdGEgLSBvcmlyTGF5ZXIzU3BhY2UgLSB0ckxheWVyM1dpZHRoKSkgKHRyTGF5ZXIzWG9yaWdpbkIgPSAodHJUYXBYb3JpZ2luICsgKHRhcFdpZHRoSW5UUiAvIDIuMCkgKyAodHJMYXllcjNXaWR0aCAvIC0yLjApKSkgd2hlbigodHJMYXllcjNYb3JpZ2luQSA8IHRyTGF5ZXIzWG9yaWdpbkIpIChleHRyYVNwYWNlID0gKHRyTGF5ZXIzWG9yaWdpbkIgLSB0ckxheWVyM1hvcmlnaW5BKSkgKHRlbXBTaXplID0gKGV4dHJhU3BhY2UgLyB0YXBHcmlkKSkgKGV4dHJhU3BhY2UgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiB0YXBHcmlkKSkgKHRyVGFwWG9yaWdpbiA9ICh0clRhcFhvcmlnaW4gLSBleHRyYVNwYWNlKSkgKHRyVGFwWW9yaWdpbiA9ICh0clRhcFlvcmlnaW4gLSBleHRyYVNwYWNlKSkgKHRyVGFwVyA9ICh0clRhcFcgKyAoMi4wICogZXh0cmFTcGFjZSkpKSAodHJUYXBMID0gKHRyVGFwTCArICgyLjAgKiBleHRyYVNwYWNlKSkpKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgIm93ciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgKHRyVGFwVyArICgyLjAgKiB3ZWxsRW5jVGFwKSkpIGxpc3QoImwiICJmbG9hdCIgKHRyVGFwTCArICgyLjAgKiB3ZWxsRW5jVGFwKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgKHRyVGFwWG9yaWdpbiAtIHdlbGxFbmNUYXApKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiICh0clRhcFlvcmlnaW4gLSB3ZWxsRW5jVGFwKSkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgKHRhcFdpZHRoSW5UUiArICgyLjAgKiB3ZWxsRW5jVGFwKSkpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB3ZWxsR3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgIlRSVUUiKSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChkYmlkMSA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB3ZWxsTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiaWQyID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHdlbGxMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJpZDMgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgd2VsbExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYmlkNCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB3ZWxsTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgaWYodGFwRWRnZXNBdDQ1IHRoZW4gKGJldmVsTGVuZ3RoID0gKDAuNiAqIHRhcFdpZHRoSW5UUikpIChiZXZlbExlbmd0aCA9IChyb3VuZCgoKGJldmVsTGVuZ3RoIC8gdGFwR3JpZCkgKyAwLjAwMSkpICogdGFwR3JpZCkpIChsb3dlckxlZnRCTCA9IGJldmVsTGVuZ3RoKSAodXBwZXJMZWZ0QkwgPSBiZXZlbExlbmd0aCkgKGxvd2VyUmlnaHRCTCA9IGJldmVsTGVuZ3RoKSAodXBwZXJSaWdodEJMID0gYmV2ZWxMZW5ndGgpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib3RyX3RoaXJkIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiB0clRhcFcpIGxpc3QoImwiICJmbG9hdCIgdHJUYXBMKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIHRyVGFwWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiB0clRhcFlvcmlnaW4pIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHRhcFdpZHRoSW5UUikgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB0YXBHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdGFwTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0ck5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdGFwTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0ck5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdGFwTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0ck5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdGFwTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0ck5ldCkgd2hlbih0YXBXZWxsSW1wbGFudCAob3RyaVhvcmlnaW4gPSAodHJUYXBYb3JpZ2luIC0gdGFwV2VsbEltcEVuYykpIChvdHJpWW9yaWdpbiA9ICh0clRhcFlvcmlnaW4gLSB0YXBXZWxsSW1wRW5jKSkgKG90cmlSaW5nV2lkdGggPSAodGFwV2lkdGhJblRSICsgdGFwV2VsbEltcEVuYyArIHRhcFdlbGxJbXBFbmMpKSAob3RyaVcgPSAodHJUYXBXICsgdGFwV2VsbEltcEVuYyArIHRhcFdlbGxJbXBFbmMpKSAob3RyaUwgPSAodHJUYXBMICsgdGFwV2VsbEltcEVuYyArIHRhcFdlbGxJbXBFbmMpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib3RyaV90aGlyZCIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgb3RyaVcpIGxpc3QoImwiICJmbG9hdCIgb3RyaUwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgb3RyaVhvcmlnaW4pIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgb3RyaVlvcmlnaW4pIGxpc3QoInJpbmdMYXllciIgImxpc3QiIHRhcFdlbGxJbXBsYW50KSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgb3RyaVJpbmdXaWR0aCkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiBuaWwpIGxpc3QoImdyaWQiICJmbG9hdCIgdGFwR3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgIlRSVUUiKSkpKSkgKHRyVmlhT2Zmc2V0ID0gKGZpeCgoKCgodGFwV2lkdGhJblRSIC8gMi4wKSAtICh2aWExV2lkdGggLyAyLjApKSAvIHZpYTFncmlkKSArIDAuOTk5KSkgKiB2aWExZ3JpZCkpICh4Q29vcmQgPSAodHJUYXBYb3JpZ2luICsgbWF4KHRyVmlhT2Zmc2V0IHRoaXJkUmluZ1RhcEVuY1ZpYTEpKSkgKHlDb29yZCA9ICh0clRhcFlvcmlnaW4gKyBtYXgodHJWaWFPZmZzZXQgdGhpcmRSaW5nVGFwRW5jVmlhMSkpKSAobG93ZXJMZWZ0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgKHVwcGVyTGVmdEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpIChsb3dlclJpZ2h0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgKHVwcGVyUmlnaHRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJvdjFyX3RoaXJkIiAoeENvb3JkOnlDb29yZCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAodHJUYXBXIC0gKDIuMCAqIG1heCh0clZpYU9mZnNldCB0aGlyZFJpbmdUYXBFbmNWaWExKSkpKSBsaXN0KCJsIiAiZmxvYXQiICh0clRhcEwgLSAoMi4wICogbWF4KHRyVmlhT2Zmc2V0IHRoaXJkUmluZ1RhcEVuY1ZpYTEpKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTFMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHZpYTFXaWR0aCkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWExV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMVNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTFncmlkKSkpIHVubGVzcygobGF5ZXIyRWRnZXNBdDQ1IHx8IHRhcEVkZ2VzQXQ0NSkgKGV4dHJhVmlhMVJpZ2h0T3JpZ2luID0gKHhDb29yZCArICh0clRhcEwgLSAoMi4wICogbWF4KHRyVmlhT2Zmc2V0IHRoaXJkUmluZ1RhcEVuY1ZpYTEpKSkgKyAoLSB2aWExV2lkdGgpKSkgKGV4dHJhVmlhMVRvcE9yaWdpbiA9ICh5Q29vcmQgKyAodHJUYXBXIC0gKDIuMCAqIG1heCh0clZpYU9mZnNldCB0aGlyZFJpbmdUYXBFbmNWaWExKSkpICsgKC0gdmlhMVdpZHRoKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdChsaXN0KHhDb29yZCB5Q29vcmQpIGxpc3QoKHhDb29yZCArIHZpYTFXaWR0aCkgKHlDb29yZCArIHZpYTFXaWR0aCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QoZXh0cmFWaWExUmlnaHRPcmlnaW4geUNvb3JkKSBsaXN0KChleHRyYVZpYTFSaWdodE9yaWdpbiArIHZpYTFXaWR0aCkgKHlDb29yZCArIHZpYTFXaWR0aCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QoeENvb3JkIGV4dHJhVmlhMVRvcE9yaWdpbikgbGlzdCgoeENvb3JkICsgdmlhMVdpZHRoKSAoZXh0cmFWaWExVG9wT3JpZ2luICsgdmlhMVdpZHRoKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdChleHRyYVZpYTFSaWdodE9yaWdpbiBleHRyYVZpYTFUb3BPcmlnaW4pIGxpc3QoKGV4dHJhVmlhMVJpZ2h0T3JpZ2luICsgdmlhMVdpZHRoKSAoZXh0cmFWaWExVG9wT3JpZ2luICsgdmlhMVdpZHRoKSkpKSkgaWYobGF5ZXIzIHRoZW4gKHRyTGF5ZXIzRW5jVmlhMiA9ICgodHJMYXllcjNXaWR0aCAtIHZpYTJXaWR0aCkgLyAyLjApKSAodGVtcFNpemUgPSAodHJMYXllcjNFbmNWaWEyIC8gbGF5ZXIzZ3JpZCkpICh0ckxheWVyM0VuY1ZpYTIgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiBsYXllcjNncmlkKSkgKHRoaXJkUmluZ01ldGFsV2lkdGggPSAoKDIuMCAqIHRyTGF5ZXIzRW5jVmlhMikgKyB2aWEyV2lkdGgpKSAodHJMMncgPSAodHJUYXBXICsgKC0gdGFwV2lkdGhJblRSKSArIHRoaXJkUmluZ01ldGFsV2lkdGgpKSAodHJMMmwgPSAodHJUYXBMICsgKC0gdGFwV2lkdGhJblRSKSArIHRoaXJkUmluZ01ldGFsV2lkdGgpKSAodHJMMnhEZWx0YSA9ICh0clRhcFhvcmlnaW4gKyAoKHRhcFdpZHRoSW5UUiArICgtIHRoaXJkUmluZ01ldGFsV2lkdGgpKSAvIDIuMCkpKSAodHJMMnhEZWx0YSA9IChmaXgoKCh0ckwyeERlbHRhIC8gbGF5ZXIyZ3JpZCkgKyAwLjk5OSkpICogbGF5ZXIyZ3JpZCkpICh0ckwyeURlbHRhID0gKHRyVGFwWW9yaWdpbiArICgodGFwV2lkdGhJblRSICsgKC0gdGhpcmRSaW5nTWV0YWxXaWR0aCkpIC8gMi4wKSkpICh0ckwyeURlbHRhID0gKGZpeCgoKHRyTDJ5RGVsdGEgLyBsYXllcjJncmlkKSArIDAuOTk5KSkgKiBsYXllcjJncmlkKSkgKHRyTDJyaW5nVyA9IG1heCgoKDIuMCAqIGxheWVyMkVuY1ZpYTEpICsgdmlhMVdpZHRoKSAoKDIuMCAqIGxheWVyMkVuY1ZpYTIpICsgdmlhMldpZHRoKSB0ckxheWVyM1dpZHRoKSkgZWxzZSAodHJMMncgPSAodHJUYXBXICsgKC0yLjAgKiBtYXgodHJWaWFPZmZzZXQgdGhpcmRSaW5nVGFwRW5jVmlhMSkpICsgKDIuMCAqIGxheWVyMkVuY1ZpYTEpKSkgKHRyTDJsID0gKHRyVGFwTCArICgtMi4wICogbWF4KHRyVmlhT2Zmc2V0IHRoaXJkUmluZ1RhcEVuY1ZpYTEpKSArICgyLjAgKiBsYXllcjJFbmNWaWExKSkpICh0ckwyeERlbHRhID0gKHhDb29yZCArICgtIGxheWVyMkVuY1ZpYTEpKSkgKHRyTDJ5RGVsdGEgPSAoeUNvb3JkICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSAodHJMMnJpbmdXID0gbWF4KCgoMi4wICogbGF5ZXIyRW5jVmlhMSkgKyB2aWExV2lkdGgpICgoMi4wICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyV2lkdGgpKSkpIGlmKGxheWVyMkVkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9IHRyTDJyaW5nVykgKHVwcGVyTGVmdEJMID0gdHJMMnJpbmdXKSAobG93ZXJSaWdodEJMID0gdHJMMnJpbmdXKSAodXBwZXJSaWdodEJMID0gdHJMMnJpbmdXKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgIm9sMnJfdGhpcmQiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHRyTDJ3KSBsaXN0KCJsIiAiZmxvYXQiIHRyTDJsKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIHRyTDJ4RGVsdGEpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgdHJMMnlEZWx0YSkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbGF5ZXIyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdHJMMnJpbmdXKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheWVyMmdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQxIHRyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiB0ck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDMgdHJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQ0IHRyTmV0KSB3aGVuKChsYXllcjMgJiYgZnVsbHlTdHJhcCAmJiAoZnVsbHlTdHJhcCAhPSAiRkFMU0UiKSkgKHR2MnJFbmMgPSAoKHRyTDJyaW5nVyAtIHZpYTJXaWR0aCkgLyAyLjApKSAodGVtcFNpemUgPSAodHYyckVuYyAvIHZpYTJncmlkKSkgKHR2MnJFbmMgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiB2aWEyZ3JpZCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpIGVsc2UgKGxvd2VyTGVmdEJMID0gdmlhMlNwYWNlKSAodXBwZXJMZWZ0QkwgPSB2aWEyU3BhY2UpIChsb3dlclJpZ2h0QkwgPSB2aWEyU3BhY2UpICh1cHBlclJpZ2h0QkwgPSB2aWEyU3BhY2UpKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJvdjJyX3RoaXJkIiAoKHRyTDJ4RGVsdGEgKyB0djJyRW5jKToodHJMMnlEZWx0YSArIHR2MnJFbmMpKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiICh0ckwydyAtICgyLjAgKiB0djJyRW5jKSkpIGxpc3QoImwiICJmbG9hdCIgKHRyTDJsIC0gKDIuMCAqIHR2MnJFbmMpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiAwLjApIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMkxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdmlhMldpZHRoKSBsaXN0KCJyaXZldFdpZHRoIiAiZmxvYXQiIHZpYTJXaWR0aCkgbGlzdCgicml2ZXRTcGFjZSIgImZsb2F0IiB2aWEyU3BhY2UpIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCIgImJvb2xlYW4iICJGQUxTRSIpIGxpc3QoImdyaWQiICJmbG9hdCIgdmlhMmdyaWQpKSkgKHRyTDN3ID0gKHRyTDJ3ICsgKC0yLjAgKiB0djJyRW5jKSArICgyLjAgKiB0ckxheWVyM0VuY1ZpYTIpKSkgKHRyTDNsID0gKHRyTDJsICsgKC0yLjAgKiB0djJyRW5jKSArICgyLjAgKiB0ckxheWVyM0VuY1ZpYTIpKSkgKHRyTDN4RGVsdGEgPSAodHJMMnhEZWx0YSArIHR2MnJFbmMgKyAoLSB0ckxheWVyM0VuY1ZpYTIpKSkgKHRyTDN5RGVsdGEgPSAodHJMMnlEZWx0YSArIHR2MnJFbmMgKyAoLSB0ckxheWVyM0VuY1ZpYTIpKSkgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gdHJMYXllcjNXaWR0aCkgKHVwcGVyTGVmdEJMID0gdHJMYXllcjNXaWR0aCkgKGxvd2VyUmlnaHRCTCA9IHRyTGF5ZXIzV2lkdGgpICh1cHBlclJpZ2h0QkwgPSB0ckxheWVyM1dpZHRoKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgIm9sM3JfdGhpcmQiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHRyTDN3KSBsaXN0KCJsIiAiZmxvYXQiIHRyTDNsKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIHRyTDN4RGVsdGEpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgdHJMM3lEZWx0YSkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdHJMYXllcjNXaWR0aCkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiBsYXllcjNncmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiB0KSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChkYmlkMSA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiaWQyID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJpZDMgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYmlkNCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZDEgdHJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQyIHRyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMyB0ck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDQgdHJOZXQpKSAocGluID0gKGRiQ3JlYXRlUGluIHRyTmV0IGRiaWQxKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbiA9IChkYkNyZWF0ZVBpbiB0ck5ldCBkYmlkMikpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW4gPSAoZGJDcmVhdGVQaW4gdHJOZXQgZGJpZDMpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluID0gKGRiQ3JlYXRlUGluIHRyTmV0IGRiaWQ0KSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikpKQAoZGlmZkxheWVyIGdhdGVMYXllciByZ2F0ZUxheWVyIHdlbGxMYXllciB0YXBMYXllciB2aWExTGF5ZXIgbGF5ZXIyIHZpYTJMYXllciBsYXllcjMgaWRMYXllciBtYXh2TGF5ZXIgaHZXZWxsRW5jbG9zdXJlIGRpZmZJbXBsYW50IGRpZmZJbXBFbmMgZGlmZkNvcmVJbXBsYW50IGRpZmZDb3JlSW1wRW5jIHRhcFdlbGxJbXBsYW50IHRhcFdlbGxJbXBFbmMgdGFwU3ViSW1wbGFudCB0YXBTdWJJbXBFbmMgdGFwV2lkdGggc3JjVmlhR2F0ZVNwYWNlIHNyY1ZpYVRhcFNwYWNlIGRyblZpYUdhdGVTcGFjZSB2aWFFeHREaWZmIG1pbkRpZmZUYXBSaW5nU3BhY2UgZmxhcmVZYW1vdW50X2luIGZsYXJlWWFtb3VudCBmbGFyZVlleHRlbnNpb24gdmlhMVdpZHRoIHZpYTFTcGFjZSB0YXBFbmNWaWExIHdlbGxFbmNUYXAgaW5uZXJSaW5nVGFwV2lkdGggb3V0ZXJSaW5nVGFwV2lkdGggd2VsbFRhcFNwYWNlIGxheWVyMkVuY1ZpYTEgdmlhMldpZHRoIHZpYTJTcGFjZSB2aWExVmlhMlNwYWNlIGxheWVyMkVuY1ZpYTIgbGF5ZXIyV2lkdGggbGF5ZXIzRW5jVmlhMiBsYXllcjNXaWR0aCBsYXllcjNXaWR0aF9vdXRzaWRlIGlubmVyUmluZ01ldGFsV2lkdGggaXJMYXllcjNFbmNWaWEyIGlyTGF5ZXIzQWRkV2lkdGhCdmwgb3JMYXllcjNXaWR0aCBtaW5XIG1heFcgbWluVG90YWxXIGdlbmVyaWNSaW5nTmFtZSByaXZldGVkUmluZ05hbWUgZmxhcmVkR2F0ZU5hbWUgZGlmZkdyaWQgdGFwR3JpZCB3ZWxsR3JpZCBwb2x5R3JpZCB2aWExZ3JpZCBsYXllcjJncmlkIHZpYTJncmlkIGxheWVyM2dyaWQgdGFwRWRnZXNBdDQ1IGxheWVyMkVkZ2VzQXQ0NSBsYXllcjNFZGdlc0F0NDUgZW5kVGFwTWV0SW5zaWRlT3V0IHNyY1ZpYVRvRGlmZkVkZ1NwYWNlIHRoaXJkUmluZyBmbG9hdE53ZWxsIG5XZWxsU3cgdGhpcmRSaW5nVGFwV2lkdGggdHJMYXllcjNXaWR0aCB0aGlyZFJpbmdUYXBXaWR0aDIgdHJMYXllcjNXaWR0aDIgc3BsaXRTb3VyY2Ugc3RyaXBUYXBUb0RpZmZTcGFjZSBtaW5FeHRyYUxSc3BhY2UgdGFwTGF5MldpZHRoIHRhcExheTNXaWR0aCBzb3VyY2VMYXkyVmlhMUVuYyBzb3VyY2VMYXkzVmlhMkVuYyB0YXBMYXkyT2Zmc2V0WSB0YXBMYXkzT2Zmc2V0WSBsYXllcjJXaWR0aFMgbGF5ZXIyV2lkdGhEIGxheWVyM1dpZHRoUyBsYXllcjNXaWR0aEQgbW9kZWxUZXh0TGF5ZXIgbW9kZWxUZXh0TGF5ZXJTaXplIG1vZGVsVGV4dCBtb2RlbFdtYXggbW9kZWxXbWluIG1vZGVsTG1heCBtb2RlbExtaW4gZmlsbGVkUmluZ3MgdyBsIG0gZXh0cmFMZWZ0U3BhY2UgZXh0cmFSaWdodFNwYWNlIHNocmlua1BlcmNlbnQgZXh0cmFTcmNTcGFjZSBleHRyYURyblNwYWNlIE53ZWxsY29ubmVjdFRvSU9wYWQgZnVsbHlTdHJhcCBkcm5WaWFZc3BhY2VSaW5nVmlhVG9wIGRyblZpYVlzcGFjZVJpbmdWaWFCb3Qgb3JpckxheWVyM1NwYWNlIHNyY1ZpYVRvU3JjVGFwU3BhY2UgbGVmdEVuZFRhcCByaWdodEVuZFRhcCB0YXBMYXkyVmlhMUVuYyB0YXBMYXkzVmlhMkVuYyBnTmV0IHNOZXQgZE5ldCBpck5ldCBvck5ldCB0ck5ldCBzY2FsZU11bHQgdmlhMVBvbHlHcmlkIHNpemVBbmRHcmlkIHRoZVNpemUgdGhlR3JpZCB0ZW1wU2l6ZSBrbHVkZ2UgdG1wT3JMYXllcldpZHRoIHRtcE9yTGF5ZXJHcmlkIHRtcFZpYVdpZHRoIHRtcFZpYUdyaWQgdmlhMVBpdGNoIHZpYTJQaXRjaCB0YXJnZXRSb3dzIHJvd3NPZkNvbnRhY3RzIGZsYXJlZEdhdGVJZCByaW5nSWQgcml2ZXRlZFJpbmdJZCBkaWZmWG9yaWdpbiBoYWxmU3JjRGlmZkxlbmd0aCB0b3RhbERybkxlbmd0aCB0b3RhbFNyY0RpZmZMZW5ndGggaGFsZkwgZGlmZlllbmQgZGlmZllvcmlnaW4gZGlmZkltcFllbmQgZGlmZkltcFlvcmlnaW4gZGJpZFRhcEwgZGJpZCBkaWZmWGxvb3Agc2VjdGlvbiBzcmNEaWZmWGVuZCBkcm5EaWZmWGVuZCB0YXBYMCB0YXBYMSBkYmlkVGFwIGRpZmZYZW5kIGdhdGVYb2Zmc2V0IGdhdGVOdW0gaW5zdCBtYXN0ZXIgbW9kZWxUZXh0WCBtb2RlbFRleHRZIHBpbmlkIGRybl92aWExWG9yaWdpbiBkcm5fdmlhMVhlbmQgZHJuX2xheWVyMkwgZHJuX2xheWVyMkxhIGRybl9sYXllcjJEZWx0YVZpYTEgZGVsdGEgbGF5ZXIyVyBsYXllcjJXYSByb3dzT2ZDb250YWN0czIgbGF5ZXIyWURlbHRhVmlhMSBlc19kdmlhMVhvcmlnaW4gZXNfZHZpYTFYZW5kIGVzX3R2aWExWG9yaWdpbiBlc190dmlhMVhlbmQgZXNfbGF5ZXIyTCBlc19sYXllcjJMYSBlc19sYXllcjJEZWx0YVZpYTEgZXNfdHZpYTJYb3JpZ2luIGVzX3R2aWEyWGVuZCBlc19kdmlhMlhvcmlnaW4gZXNfZHZpYTJYZW5kIHNzX2xheWVyMkwgc3NfbGF5ZXIyTGEgc3NfbGF5ZXIyRGVsdGFWaWExIGNvbnRhY3RYbG9vcCB2aWExWW9yaWdpbiBsYXllcjJZb3JpZ2luIHZpYTJZb3JpZ2luIGxheWVyMlllbmQgdGFwWG9mZnNldFYxIHRhcFhvZmZzZXRWMiB2aWExVyB2aWExVGFwUm93cyB2aWExV2EgdmlhMVlPZmYgdmlhMVlvZmZzZXQgdmlhMlcgdmlhMlRhcFJvd3MgdmlhMldhIHZpYTJZT2ZmIHZpYTJZb2Zmc2V0IGxheWVyMlRhcFkwIGxheWVyMlRhcFkxIHZpYTFUYXBZMCBsYXllcjNUYXBZMCBsYXllcjNUYXBZMSB2aWEyVGFwWTAgbDJidmxDbnRybCBsMmJ2bENudHJsUyBsM2J2bENudHJsIGwzYnZsQ250cmxTIHJlZ2lvbiB2aWExWWxvb3AgZHZ4byBkdnhlIHR2eG8gdHZ4ZSByb3cgdmlhMVlsb29wVCBlbmRUYXBMYXllcjJYT2Zmc2V0IGxheWVyMlkwZCBsYXllcjJZMWQgbGF5ZXIyWTJkIGxheWVyMlkzZCBsYXllcjJZNGQgbGF5ZXIyWTVkIGxheWVyMlk2ZCBsYXllcjJZN2QgbGF5ZXIyWExlbmMgbGF5ZXIyWFJlbmMgbGF5ZXIyWDBkIGxheWVyMlgxZCBsYXllcjJYMmQgbGF5ZXIyWDNkIGxheWVyMlg0ZCBsYXllcjJYNWQgbGF5ZXIyWDZkIGxheWVyMlg3ZCBsYXllcjJYMHQgbGF5ZXIyWDF0IHZpYTJZbG9vcCB2aWEyWWxvb3BUIGxheWVyM1kwZCBsYXllcjNZMWQgbGF5ZXIzWTJkIGxheWVyM1kzZCBsYXllcjNZNGQgbGF5ZXIzWTVkIGxheWVyM1k2ZCBsYXllcjNZN2QgbGF5ZXIzWExlbmMgbGF5ZXIzWFJlbmMgbGF5ZXIzWDBkIGxheWVyM1gxZCBsYXllcjNYMmQgbGF5ZXIzWDNkIGxheWVyM1g0ZCBsYXllcjNYNWQgbGF5ZXIzWDZkIGxheWVyM1g3ZCBsYXllcjNYMHQgbGF5ZXIzWDF0IHdpZHRoVG9iZURyYXduIGVuZFRhcExheWVyM1hPZmZzZXQgbGF5ZXIyWG9yaWdpbl9kciBsYXllcjNYb3JpZ2luX2RyIGxkdnhvIGxkdnhlIHJkdnhvIHJkdnhlIGxheWVyMlgwcmQgbGF5ZXIyWDFyZCBsYXllcjJYMnJkIGxheWVyMlgzcmQgbGF5ZXIyWDRyZCBsYXllcjJYNXJkIGxheWVyMlg2cmQgbGF5ZXIyWDdyZCBsYXllcjJYMGxkIGxheWVyMlgxbGQgbGF5ZXIyWDJsZCBsYXllcjJYM2xkIGxheWVyMlg0bGQgbGF5ZXIyWDVsZCBsYXllcjJYNmxkIGxheWVyMlg3bGQgbGF5ZXIzWDBsZCBsYXllcjNYMWxkIGxheWVyM1gybGQgbGF5ZXIzWDNsZCBsYXllcjNYNGxkIGxheWVyM1g1bGQgbGF5ZXIzWDZsZCBsYXllcjNYN2xkIGxheWVyM1gwcmQgbGF5ZXIzWDFyZCBsYXllcjNYMnJkIGxheWVyM1gzcmQgbGF5ZXIzWDRyZCBsYXllcjNYNXJkIGxheWVyM1g2cmQgbGF5ZXIzWDdyZCB0YXBXaWR0aEluSVIgaXJUYXBYb3JpZ2luIGlyVmlhT2Zmc2V0IGlyVGFwWW9yaWdpbiBpclRhcEwgaXJUYXBXIGJldmVsTGVuZ3RoIGxvd2VyTGVmdEJMIHVwcGVyTGVmdEJMIGxvd2VyUmlnaHRCTCB1cHBlclJpZ2h0QkwgdGhlTWFzdGVyIGl0cmlYb3JpZ2luIGl0cmlZb3JpZ2luIGl0cmlSaW5nV2lkdGggaXRyaVcgaXRyaUwgd2VsbFhvcmlnaW4gd2VsbFlvcmlnaW4gaHZsbHggaHZsbHkgaHZ1cnggaHZ1cnkgeENvb3JkIHlDb29yZCBtb2RXIG1vZEwgdmlhMUVuYyB2aWExV2lkdGhJbklSIHZpYTFYb3JpZ2luIGlyTDJyaW5nVyBpckwyT2ZmIGlyTDJ4RGVsdGEgaXJMMnlEZWx0YSBpckwydyBpckwybCBkYmlkMSBkYmlkMiBkYmlkMyBkYmlkNCBpdjJyRW5jIHZpYTJFbmMgdmlhMldpZHRoSW5JUiB2aWEyWG9yaWdpbiB2aWEyQmV2ZWwgaXJMM3cgaXJMM2wgaXJMM3hEZWx0YSBpckwzeURlbHRhIGlyTDNyaW5nVyB0b3BMYXllciB0YXBXaWR0aEluT1Igb3V0ZXJUYXBEZWx0YSBvclRhcFhvcmlnaW4gb3JUYXBZb3JpZ2luIG9yVGFwVyBvclRhcEwgb3JMYXllcjNYb3JpZ2luQSBvckxheWVyM1hvcmlnaW5CIGV4dHJhU3BhY2Ugb3RyaVhvcmlnaW4gb3RyaVlvcmlnaW4gb3RyaVJpbmdXaWR0aCBvdHJpVyBvdHJpTCBvclZpYU9mZnNldCBvclRhcEVuY1ZpYTEgdmlhMVdpZHRoSW5PUiBleHRyYVZpYTFSaWdodE9yaWdpbiBleHRyYVZpYTFUb3BPcmlnaW4gb3JMYXllcjNFbmNWaWEyIG91dGVyUmluZ01ldGFsV2lkdGggb3JMMncgb3JMMmwgb3JMMnhEZWx0YSBvckwyeURlbHRhIG9yTDJyaW5nVyBvdjJyRW5jIHZpYTJXaWR0aEluT1Igb3JMM3cgb3JMM2wgb3JMM3hEZWx0YSBvckwzeURlbHRhIHBpbiB0aGlyZFJpbmdUYXBFbmNWaWExIHRhcFdpZHRoSW5UUiB0aGlyZFRhcERlbHRhIHRyVGFwWG9yaWdpbiB0clRhcFlvcmlnaW4gdHJUYXBXIHRyVGFwTCB0ckxheWVyM1hvcmlnaW5BIHRyTGF5ZXIzWG9yaWdpbkIgdHJWaWFPZmZzZXQgdHJMYXllcjNFbmNWaWEyIHRoaXJkUmluZ01ldGFsV2lkdGggdHJMMncgdHJMMmwgdHJMMnhEZWx0YSB0ckwyeURlbHRhIHRyTDJyaW5nVyB0djJyRW5jIHRyTDN3IHRyTDNsIHRyTDN4RGVsdGEgdHJMM3lEZWx0YSkAKCh3IDAuMCkgKGwgMC4wKSAobSAwKSAoZXh0cmFMZWZ0U3BhY2UgMC4wKSAoZXh0cmFSaWdodFNwYWNlIDAuMCkgKHNocmlua1BlcmNlbnQgMC4wKSAoZXh0cmFTcmNTcGFjZSAwLjApIChleHRyYURyblNwYWNlIDAuMCkgKE53ZWxsY29ubmVjdFRvSU9wYWQgIkZBTFNFIikgKGZ1bGx5U3RyYXAgIkZBTFNFIikgKGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgMC4wKSAoZHJuVmlhWXNwYWNlUmluZ1ZpYUJvdCAwLjApIChvcmlyTGF5ZXIzU3BhY2UgMC4wKSkAKChkaWZmTGF5ZXIgInkwIikgKGdhdGVMYXllciAieTEiKSAocmdhdGVMYXllciAieTIiKSAod2VsbExheWVyICJ5MyIpICh0YXBMYXllciAieTQiKSAodmlhMUxheWVyICJ5NSIpIChsYXllcjIgInk2IikgKHZpYTJMYXllciAieTciKSAobGF5ZXIzICJ5OCIpIChpZExheWVyICJ5OSIpIChtYXh2TGF5ZXIgbmlsKSAoaHZXZWxsRW5jbG9zdXJlIDAuMCkgKGRpZmZJbXBsYW50IG5pbCkgKGRpZmZJbXBFbmMgMC4wKSAoZGlmZkNvcmVJbXBsYW50IG5pbCkgKGRpZmZDb3JlSW1wRW5jIDAuMCkgKHRhcFdlbGxJbXBsYW50IG5pbCkgKHRhcFdlbGxJbXBFbmMgMC4wKSAodGFwU3ViSW1wbGFudCBuaWwpICh0YXBTdWJJbXBFbmMgMC4wKSAodGFwV2lkdGggMC4wKSAoc3JjVmlhR2F0ZVNwYWNlIDAuMCkgKHNyY1ZpYVRhcFNwYWNlIDAuMCkgKGRyblZpYUdhdGVTcGFjZSAwLjApICh2aWFFeHREaWZmIDAuMCkgKG1pbkRpZmZUYXBSaW5nU3BhY2UgMC4wKSAoZmxhcmVZYW1vdW50X2luIDAuMCkgKGZsYXJlWWFtb3VudCAwLjApIChmbGFyZVlleHRlbnNpb24gMC4wKSAodmlhMVdpZHRoIDAuMCkgKHZpYTFTcGFjZSAwLjApICh0YXBFbmNWaWExIDAuMCkgKHdlbGxFbmNUYXAgMC4wKSAoaW5uZXJSaW5nVGFwV2lkdGggMC4wKSAob3V0ZXJSaW5nVGFwV2lkdGggMC4wKSAod2VsbFRhcFNwYWNlIDAuMCkgKGxheWVyMkVuY1ZpYTEgMC4wKSAodmlhMldpZHRoIDAuMCkgKHZpYTJTcGFjZSAwLjApICh2aWExVmlhMlNwYWNlIDAuMCkgKGxheWVyMkVuY1ZpYTIgMC4wKSAobGF5ZXIyV2lkdGggMC4wKSAobGF5ZXIzRW5jVmlhMiAwLjApIChsYXllcjNXaWR0aCAwLjApIChsYXllcjNXaWR0aF9vdXRzaWRlIDAuMCkgKGlubmVyUmluZ01ldGFsV2lkdGggMC4wKSAoaXJMYXllcjNFbmNWaWEyIDAuMCkgKGlyTGF5ZXIzQWRkV2lkdGhCdmwgMC4wKSAob3JMYXllcjNXaWR0aCAwLjApIChtaW5XIDAuMCkgKG1heFcgMC4wKSAobWluVG90YWxXIDAuMCkgKGdlbmVyaWNSaW5nTmFtZSAicmluZyIpIChyaXZldGVkUmluZ05hbWUgInJpdmV0UmluZyIpIChmbGFyZWRHYXRlTmFtZSAiZmxhcmVkR2F0ZSIpIChkaWZmR3JpZCAwLjApICh0YXBHcmlkIDAuMCkgKHdlbGxHcmlkIDAuMCkgKHBvbHlHcmlkIDAuMCkgKHZpYTFncmlkIDAuMCkgKGxheWVyMmdyaWQgMC4wKSAodmlhMmdyaWQgMC4wKSAobGF5ZXIzZ3JpZCAwLjApICh0YXBFZGdlc0F0NDUgbmlsKSAobGF5ZXIyRWRnZXNBdDQ1IG5pbCkgKGxheWVyM0VkZ2VzQXQ0NSBuaWwpIChlbmRUYXBNZXRJbnNpZGVPdXQgbmlsKSAoc3JjVmlhVG9EaWZmRWRnU3BhY2UgMC4wKSAodGhpcmRSaW5nIG5pbCkgKGZsb2F0TndlbGwgbmlsKSAobldlbGxTdyBuaWwpICh0aGlyZFJpbmdUYXBXaWR0aCAwLjApICh0ckxheWVyM1dpZHRoIDAuMCkgKHRoaXJkUmluZ1RhcFdpZHRoMiAwLjApICh0ckxheWVyM1dpZHRoMiAwLjApIChzcGxpdFNvdXJjZSBuaWwpIChzdHJpcFRhcFRvRGlmZlNwYWNlIDAuMCkgKG1pbkV4dHJhTFJzcGFjZSAwLjApICh0YXBMYXkyV2lkdGggMC4wKSAodGFwTGF5M1dpZHRoIDAuMCkgKHNvdXJjZUxheTJWaWExRW5jIDAuMCkgKHNvdXJjZUxheTNWaWEyRW5jIDAuMCkgKHRhcExheTJPZmZzZXRZIDAuMCkgKHRhcExheTNPZmZzZXRZIDAuMCkgKGxheWVyMldpZHRoUyAwLjApIChsYXllcjJXaWR0aEQgMC4wKSAobGF5ZXIzV2lkdGhTIDAuMCkgKGxheWVyM1dpZHRoRCAwLjApIChtb2RlbFRleHRMYXllciBsaXN0KCJoaWxpdGUiICJkcmF3aW5nIikpIChtb2RlbFRleHRMYXllclNpemUgMC4yKSAobW9kZWxUZXh0ICIiKSAobW9kZWxXbWF4IDAuMCkgKG1vZGVsV21pbiAwLjApIChtb2RlbExtYXggMC4wKSAobW9kZWxMbWluIDAuMCkgKGZpbGxlZFJpbmdzIG5pbCkpACgoeE9yaWdpbiA9IHdpZHRoKSAoeU9yaWdpbiA9ICh3aWR0aCArIGxlZ0xlbmd0aCkpIChjcm9zc1BvaW50cyA9IGxpc3QoKHhPcmlnaW46eU9yaWdpbikgKHhPcmlnaW46KHlPcmlnaW4gKyBsZWdXaWR0aCkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCk6KHlPcmlnaW4gKyBsZWdXaWR0aCkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCk6KHlPcmlnaW4gKyBsZWdXaWR0aCArIGxlZ0xlbmd0aCkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoKTooeU9yaWdpbiArIGxlZ1dpZHRoICsgbGVnTGVuZ3RoKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoICsgbGVnV2lkdGgpOih5T3JpZ2luICsgbGVnV2lkdGgpKSAoKHhPcmlnaW4gKyBsZWdMZW5ndGggKyBsZWdXaWR0aCArIGxlZ0xlbmd0aCk6KHlPcmlnaW4gKyBsZWdXaWR0aCkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgbGVnTGVuZ3RoKTp5T3JpZ2luKSAoKHhPcmlnaW4gKyBsZWdMZW5ndGggKyBsZWdXaWR0aCk6eU9yaWdpbikgKCh4T3JpZ2luICsgbGVnTGVuZ3RoICsgbGVnV2lkdGgpOih5T3JpZ2luICsgKC0gbGVnTGVuZ3RoKSkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCk6KHlPcmlnaW4gKyAoLSBsZWdMZW5ndGgpKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoKTp5T3JpZ2luKSkpIChyZXZlcnNlTGVuZ3RoID0gKGxlZ1dpZHRoICsgKDIuMCAqICh3aWR0aCArIGxlZ0xlbmd0aCkpKSkgKHJldmVyc2VTaWRlID0gKHJldmVyc2VMZW5ndGggLSAoMi4wICogY3V0T2Zmc2V0KSkpIChyZXZlcnNlUG9pbnRzID0gbGlzdCgoMC4wOmN1dE9mZnNldCkgKGN1dE9mZnNldDowLjApICgoY3V0T2Zmc2V0ICsgcmV2ZXJzZVNpZGUpOjAuMCkgKHJldmVyc2VMZW5ndGg6Y3V0T2Zmc2V0KSAocmV2ZXJzZUxlbmd0aDooY3V0T2Zmc2V0ICsgcmV2ZXJzZVNpZGUpKSAoKGN1dE9mZnNldCArIHJldmVyc2VTaWRlKTpyZXZlcnNlTGVuZ3RoKSAoY3V0T2Zmc2V0OnJldmVyc2VMZW5ndGgpICgwLjA6KGN1dE9mZnNldCArIHJldmVyc2VTaWRlKSkgKDAuMDp5T3JpZ2luKSkpIHdoZW4ob3V0ZXJSaW5nTGF5ZXJzIChzMiA9IHNxcnQoMi4wKSkgKGV4dHJhT2Zmc2V0ID0gKChvdXRlclJpbmdFeHRlbnNpb24gKiAoMi4wIC0gczIpKSAvIG91dGVyR3JpZCkpIChleHRyYU9mZnNldCA9IChvdXRlckdyaWQgKiAoLTEgKyBmaXgoKGV4dHJhT2Zmc2V0ICsgMC45OTkpKSkpKSAob3V0ZXJDdXRPZmZzZXQgPSAoZXh0cmFPZmZzZXQgKyBjdXRPZmZzZXQpKSAob3V0ZXJSaW5nTGVuZ3RoID0gKHJldmVyc2VMZW5ndGggKyAoMi4wICogb3V0ZXJSaW5nRXh0ZW5zaW9uKSkpIChvdXRlclNpZGUgPSAob3V0ZXJSaW5nTGVuZ3RoIC0gKDIuMCAqIG91dGVyQ3V0T2Zmc2V0KSkpIChvdXRlck91dHNpZGVQb2ludHMgPSBsaXN0KCgoLSBvdXRlclJpbmdFeHRlbnNpb24pOihvdXRlckN1dE9mZnNldCArICgtIG91dGVyUmluZ0V4dGVuc2lvbikpKSAoKG91dGVyQ3V0T2Zmc2V0ICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSk6KC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSkgKChvdXRlckN1dE9mZnNldCArICgtIG91dGVyUmluZ0V4dGVuc2lvbikgKyBvdXRlclNpZGUpOigtIG91dGVyUmluZ0V4dGVuc2lvbikpICgob3V0ZXJSaW5nTGVuZ3RoICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSk6KG91dGVyQ3V0T2Zmc2V0ICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSkpICgob3V0ZXJSaW5nTGVuZ3RoICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSk6KG91dGVyQ3V0T2Zmc2V0ICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSArIG91dGVyU2lkZSkpICgob3V0ZXJDdXRPZmZzZXQgKyAoLSBvdXRlclJpbmdFeHRlbnNpb24pICsgb3V0ZXJTaWRlKToob3V0ZXJSaW5nTGVuZ3RoICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSkpICgob3V0ZXJDdXRPZmZzZXQgKyAoLSBvdXRlclJpbmdFeHRlbnNpb24pKToob3V0ZXJSaW5nTGVuZ3RoICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSkpICgoLSBvdXRlclJpbmdFeHRlbnNpb24pOihvdXRlckN1dE9mZnNldCArICgtIG91dGVyUmluZ0V4dGVuc2lvbikgKyBvdXRlclNpZGUpKSAoKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKTp5T3JpZ2luKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAib3V0ZXJPdXRsaW5lUG9pbnRzIiAibGlzdCIgb3V0ZXJPdXRzaWRlUG9pbnRzKSAoaW5zaWRlT2Zmc2V0ID0gKChvdXRlclJpbmdXaWR0aCAqIChzMiAtIDEuMCkpIC8gb3V0ZXJHcmlkKSkgKGluc2lkZU9mZnNldCA9IChmaXgoKDAuOTk5ICsgaW5zaWRlT2Zmc2V0KSkgKiBvdXRlckdyaWQpKSAob3V0ZXJJbnNpZGVQb2ludHMgPSBsaXN0KCgoKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSArIG91dGVyUmluZ1dpZHRoKTp5T3JpZ2luKSAoKCgtIG91dGVyUmluZ0V4dGVuc2lvbikgKyBvdXRlclJpbmdXaWR0aCk6KG91dGVyQ3V0T2Zmc2V0ICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSArIG91dGVyU2lkZSArICgtIGluc2lkZU9mZnNldCkpKSAoKG91dGVyQ3V0T2Zmc2V0ICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSArIGluc2lkZU9mZnNldCk6KG91dGVyUmluZ0xlbmd0aCArICgtIG91dGVyUmluZ0V4dGVuc2lvbikgKyAoLSBvdXRlclJpbmdXaWR0aCkpKSAoKG91dGVyQ3V0T2Zmc2V0ICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSArIG91dGVyU2lkZSArICgtIGluc2lkZU9mZnNldCkpOihvdXRlclJpbmdMZW5ndGggKyAoLSBvdXRlclJpbmdFeHRlbnNpb24pICsgKC0gb3V0ZXJSaW5nV2lkdGgpKSkgKChvdXRlclJpbmdMZW5ndGggKyAoLSBvdXRlclJpbmdFeHRlbnNpb24pICsgKC0gb3V0ZXJSaW5nV2lkdGgpKToob3V0ZXJDdXRPZmZzZXQgKyAoLSBvdXRlclJpbmdFeHRlbnNpb24pICsgb3V0ZXJTaWRlICsgKC0gaW5zaWRlT2Zmc2V0KSkpICgob3V0ZXJSaW5nTGVuZ3RoICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSArICgtIG91dGVyUmluZ1dpZHRoKSk6KG91dGVyQ3V0T2Zmc2V0ICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSArIGluc2lkZU9mZnNldCkpICgob3V0ZXJDdXRPZmZzZXQgKyAoLSBvdXRlclJpbmdFeHRlbnNpb24pICsgb3V0ZXJTaWRlICsgKC0gaW5zaWRlT2Zmc2V0KSk6KCgtIG91dGVyUmluZ0V4dGVuc2lvbikgKyBvdXRlclJpbmdXaWR0aCkpICgob3V0ZXJDdXRPZmZzZXQgKyAoLSBvdXRlclJpbmdFeHRlbnNpb24pICsgaW5zaWRlT2Zmc2V0KTooKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSArIG91dGVyUmluZ1dpZHRoKSkgKCgoLSBvdXRlclJpbmdFeHRlbnNpb24pICsgb3V0ZXJSaW5nV2lkdGgpOihvdXRlckN1dE9mZnNldCArICgtIG91dGVyUmluZ0V4dGVuc2lvbikgKyBpbnNpZGVPZmZzZXQpKSAoKCgtIG91dGVyUmluZ0V4dGVuc2lvbikgKyBvdXRlclJpbmdXaWR0aCk6eU9yaWdpbikpKSAob3V0ZXJSaW5nUG9pbnRzID0gYXBwZW5kKG91dGVyT3V0c2lkZVBvaW50cyBvdXRlckluc2lkZVBvaW50cykpIChvdXRlclJpbmdQb2ludHMgPSBjb25zKCgoLSBvdXRlclJpbmdFeHRlbnNpb24pOnlPcmlnaW4pIG91dGVyUmluZ1BvaW50cykpIGZvcmVhY2gobGF5ZXIgb3V0ZXJSaW5nTGF5ZXJzIChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllciBvdXRlclJpbmdQb2ludHMpKSkgdW5sZXNzKG91dGVyUmluZ0xheWVycyAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgIm91dGVyT3V0bGluZVBvaW50cyIgImxpc3QiIHJldmVyc2VQb2ludHMpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgIm91dGxpbmVQb2ludHMiICJsaXN0IiByZXZlcnNlUG9pbnRzKSAocmV2ZXJzZVBvaW50cyA9IGFwcGVuZChyZXZlcnNlUG9pbnRzIGNyb3NzUG9pbnRzKSkgKHJldmVyc2VQb2ludHMgPSBjb25zKCgwLjA6eU9yaWdpbikgcmV2ZXJzZVBvaW50cykpIGZvcmVhY2gobGF5ZXIgdGhlTGF5ZXJzIGNvbmQoKGNhZHIobGF5ZXIpIGNvbmQoKGNhZGRyKGxheWVyKSAobGF5ZXJPZmZzZXQgPSAoKGNhZGRyKGxheWVyKSAtICgoMi4wICogbGVnTGVuZ3RoKSArIGxlZ1dpZHRoKSkgLyAyLjApKSAoeE9yaWdpbiA9ICh3aWR0aCAtIGxheWVyT2Zmc2V0KSkgKHlPcmlnaW4gPSAod2lkdGggKyAobGVnTGVuZ3RoIC0gbGF5ZXJPZmZzZXQpKSkgKGNyb3NzUG9pbnRzT2ZmID0gbGlzdCgoeE9yaWdpbjp5T3JpZ2luKSAoeE9yaWdpbjooeU9yaWdpbiArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldCkpKSAoKHhPcmlnaW4gKyBsZWdMZW5ndGgpOih5T3JpZ2luICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0KSkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCk6KHlPcmlnaW4gKyBsZWdXaWR0aCArIGxlZ0xlbmd0aCArICgyICogbGF5ZXJPZmZzZXQpKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0KSk6KHlPcmlnaW4gKyBsZWdXaWR0aCArIGxlZ0xlbmd0aCArICgyICogbGF5ZXJPZmZzZXQpKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0KSk6KHlPcmlnaW4gKyBsZWdXaWR0aCArICgyICogbGF5ZXJPZmZzZXQpKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoICsgbGVnV2lkdGggKyBsZWdMZW5ndGggKyAoMiAqIGxheWVyT2Zmc2V0KSk6KHlPcmlnaW4gKyBsZWdXaWR0aCArICgyICogbGF5ZXJPZmZzZXQpKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoICsgbGVnV2lkdGggKyBsZWdMZW5ndGggKyAoMiAqIGxheWVyT2Zmc2V0KSk6eU9yaWdpbikgKCh4T3JpZ2luICsgbGVnTGVuZ3RoICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0KSk6eU9yaWdpbikgKCh4T3JpZ2luICsgbGVnTGVuZ3RoICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0KSk6KHlPcmlnaW4gKyAoLSBsZWdMZW5ndGgpKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoKTooeU9yaWdpbiArICgtIGxlZ0xlbmd0aCkpKSAoKHhPcmlnaW4gKyBsZWdMZW5ndGgpOnlPcmlnaW4pKSkgY29uZCgoY2FkZGRyKGxheWVyKSAobGF5ZXJPZmZzZXQyID0gKChjYWRkZHIobGF5ZXIpIC0gKCgyLjAgKiBsZWdMZW5ndGgpICsgbGVnV2lkdGgpKSAvIDIuMCkpICh4T3JpZ2luMiA9ICh3aWR0aCAtIGxheWVyT2Zmc2V0MikpICh5T3JpZ2luMiA9ICh3aWR0aCArIChsZWdMZW5ndGggLSBsYXllck9mZnNldDIpKSkgKGNyb3NzUG9pbnRzT2ZmMiA9IGxpc3QoKHhPcmlnaW4yOnlPcmlnaW4yKSAoeE9yaWdpbjI6KHlPcmlnaW4yICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0MikpKSAoKHhPcmlnaW4yICsgbGVnTGVuZ3RoKTooeU9yaWdpbjIgKyBsZWdXaWR0aCArICgyICogbGF5ZXJPZmZzZXQyKSkpICgoeE9yaWdpbjIgKyBsZWdMZW5ndGgpOih5T3JpZ2luMiArIGxlZ1dpZHRoICsgbGVnTGVuZ3RoICsgKDIgKiBsYXllck9mZnNldDIpKSkgKCh4T3JpZ2luMiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldDIpKTooeU9yaWdpbjIgKyBsZWdXaWR0aCArIGxlZ0xlbmd0aCArICgyICogbGF5ZXJPZmZzZXQyKSkpICgoeE9yaWdpbjIgKyBsZWdMZW5ndGggKyBsZWdXaWR0aCArICgyICogbGF5ZXJPZmZzZXQyKSk6KHlPcmlnaW4yICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0MikpKSAoKHhPcmlnaW4yICsgbGVnTGVuZ3RoICsgbGVnV2lkdGggKyBsZWdMZW5ndGggKyAoMiAqIGxheWVyT2Zmc2V0MikpOih5T3JpZ2luMiArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldDIpKSkgKCh4T3JpZ2luMiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgbGVnTGVuZ3RoICsgKDIgKiBsYXllck9mZnNldDIpKTp5T3JpZ2luMikgKCh4T3JpZ2luMiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldDIpKTp5T3JpZ2luMikgKCh4T3JpZ2luMiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldDIpKTooeU9yaWdpbjIgKyAoLSBsZWdMZW5ndGgpKSkgKCh4T3JpZ2luMiArIGxlZ0xlbmd0aCk6KHlPcmlnaW4yICsgKC0gbGVnTGVuZ3RoKSkpICgoeE9yaWdpbjIgKyBsZWdMZW5ndGgpOnlPcmlnaW4yKSkpIChjcm9zc1BvaW50c09mZjIgPSByZXZlcnNlKGNyb3NzUG9pbnRzT2ZmMikpIChjcm9zc1BvaW50c09mZiA9IGNkcihjcm9zc1BvaW50c09mZikpIChjcm9zc1BvaW50c09mZiA9IGFwcGVuZChjcm9zc1BvaW50c09mZiBsaXN0KCh4T3JpZ2luOnlPcmlnaW4pICh4T3JpZ2luOnlPcmlnaW4yKSkpKSAoY3Jvc3NQb2ludHNPZmYgPSBhcHBlbmQobGlzdCgoeE9yaWdpbjp5T3JpZ2luMikpIGNyb3NzUG9pbnRzT2ZmKSkgKGNyb3NzUG9pbnRzT2ZmID0gYXBwZW5kKGNyb3NzUG9pbnRzT2ZmIGNyb3NzUG9pbnRzT2ZmMikpIChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBjYXIobGF5ZXIpIGNyb3NzUG9pbnRzT2ZmKSkgKHQgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgY3Jvc3NQb2ludHNPZmYpKSkpICh0IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBjYXIobGF5ZXIpIGNyb3NzUG9pbnRzKSkpKSAodCBjb25kKChjYWRkcihsYXllcikgKGxheWVyT2Zmc2V0ID0gKChjYWRkcihsYXllcikgLSAoKDIuMCAqIGxlZ0xlbmd0aCkgKyBsZWdXaWR0aCkpIC8gMi4wKSkgKHhPcmlnaW4gPSAod2lkdGggLSBsYXllck9mZnNldCkpICh5T3JpZ2luID0gKHdpZHRoICsgKGxlZ0xlbmd0aCAtIGxheWVyT2Zmc2V0KSkpIChjcm9zc1BvaW50c09mZiA9IGxpc3QoKHhPcmlnaW46eU9yaWdpbikgKHhPcmlnaW46KHlPcmlnaW4gKyBsZWdXaWR0aCArICgyICogbGF5ZXJPZmZzZXQpKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoKTooeU9yaWdpbiArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldCkpKSAoKHhPcmlnaW4gKyBsZWdMZW5ndGgpOih5T3JpZ2luICsgbGVnV2lkdGggKyBsZWdMZW5ndGggKyAoMiAqIGxheWVyT2Zmc2V0KSkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldCkpOih5T3JpZ2luICsgbGVnV2lkdGggKyBsZWdMZW5ndGggKyAoMiAqIGxheWVyT2Zmc2V0KSkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldCkpOih5T3JpZ2luICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0KSkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgbGVnTGVuZ3RoICsgKDIgKiBsYXllck9mZnNldCkpOih5T3JpZ2luICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0KSkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgbGVnTGVuZ3RoICsgKDIgKiBsYXllck9mZnNldCkpOnlPcmlnaW4pICgoeE9yaWdpbiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldCkpOnlPcmlnaW4pICgoeE9yaWdpbiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldCkpOih5T3JpZ2luICsgKC0gbGVnTGVuZ3RoKSkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCk6KHlPcmlnaW4gKyAoLSBsZWdMZW5ndGgpKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoKTp5T3JpZ2luKSkpIChyZXZlcnNlUG9pbnRzT2ZmID0gbGlzdCgoMC4wOmN1dE9mZnNldCkgKGN1dE9mZnNldDowLjApICgoY3V0T2Zmc2V0ICsgcmV2ZXJzZVNpZGUpOjAuMCkgKHJldmVyc2VMZW5ndGg6Y3V0T2Zmc2V0KSAocmV2ZXJzZUxlbmd0aDooY3V0T2Zmc2V0ICsgcmV2ZXJzZVNpZGUpKSAoKGN1dE9mZnNldCArIHJldmVyc2VTaWRlKTpyZXZlcnNlTGVuZ3RoKSAoY3V0T2Zmc2V0OnJldmVyc2VMZW5ndGgpICgwLjA6KGN1dE9mZnNldCArIHJldmVyc2VTaWRlKSkgKDAuMDp5T3JpZ2luKSkpIChyZXZlcnNlUG9pbnRzT2ZmID0gYXBwZW5kKHJldmVyc2VQb2ludHNPZmYgY3Jvc3NQb2ludHNPZmYpKSAocmV2ZXJzZVBvaW50c09mZiA9IGNvbnMoKDAuMDp5T3JpZ2luKSByZXZlcnNlUG9pbnRzT2ZmKSkgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgcmV2ZXJzZVBvaW50c09mZikpICh0IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBjYXIobGF5ZXIpIHJldmVyc2VQb2ludHMpKSkpKSkpAChsZWdXaWR0aCBsZWdMZW5ndGggd2lkdGggY3V0T2Zmc2V0IHRoZUxheWVycyBvdXRlclJpbmdMYXllcnMgb3V0ZXJSaW5nRXh0ZW5zaW9uIG91dGVyUmluZ1dpZHRoIG91dGVyR3JpZCB4T3JpZ2luIHlPcmlnaW4gY3Jvc3NQb2ludHMgcmV2ZXJzZUxlbmd0aCByZXZlcnNlU2lkZSByZXZlcnNlUG9pbnRzIHMyIGV4dHJhT2Zmc2V0IG91dGVyQ3V0T2Zmc2V0IG91dGVyUmluZ0xlbmd0aCBvdXRlclNpZGUgb3V0ZXJPdXRzaWRlUG9pbnRzIGluc2lkZU9mZnNldCBvdXRlckluc2lkZVBvaW50cyBvdXRlclJpbmdQb2ludHMgbGF5ZXIgbGF5ZXJPZmZzZXQgY3Jvc3NQb2ludHNPZmYgbGF5ZXJPZmZzZXQyIHhPcmlnaW4yIHlPcmlnaW4yIGNyb3NzUG9pbnRzT2ZmMiByZXZlcnNlUG9pbnRzT2ZmKQAoKGxlZ1dpZHRoIDAuMCkgKGxlZ0xlbmd0aCAwLjApICh3aWR0aCAwLjApIChjdXRPZmZzZXQgMC4wKSAodGhlTGF5ZXJzICcoJygoImNud20iICJtYXNrIikgbmlsKSAnKCgiY2ZvbSIgIm1hc2siKSB0KSAnKCgiY3AxbSIgIm1hc2siKSB0IG5pbCkpKSAob3V0ZXJSaW5nTGF5ZXJzIG5pbCkgKG91dGVyUmluZ0V4dGVuc2lvbiAwLjApIChvdXRlclJpbmdXaWR0aCAwLjApIChvdXRlckdyaWQgMC4wKSkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoaWYoKHcgPiBtb2RlbFdtYXgpIHRoZW4gZXJyb3IoIiVmIGlzIGdyZWF0ZXIgdGhhbiBhbGxvd2FibGUgbWF4aW11bSB3aWR0aCAlZiBmb3IgbW9kZWwgJUwiIHcgbW9kZWxXbWF4IG1vZGVsVGV4dCkpIGlmKCh3IDwgbW9kZWxXbWluKSB0aGVuIGVycm9yKCIlZiBpcyBsZXNzIHRoYW4gYWxsb3dhYmxlIG1pbmltdW0gd2lkdGggJWYgZm9yIG1vZGVsICVMIiB3IG1vZGVsV21pbiBtb2RlbFRleHQpKSBpZigobCA+IG1vZGVsTG1heCkgdGhlbiBlcnJvcigiJWYgaXMgZ3JlYXRlciB0aGFuIGFsbG93YWJsZSBsZW5ndGggJWYgZm9yIG1vZGVsICVMIiBsIG1vZGVsTG1heCBtb2RlbFRleHQpKSBpZigobCA8IG1vZGVsTG1pbikgdGhlbiBlcnJvcigiJWYgaXMgbGVzcyB0aGFuIGFsbG93YWJsZSBtaW5pbXVtIGxlbmd0aCAlZiBmb3IgbW9kZWwgJUwiIGwgbW9kZWxMbWluIG1vZGVsVGV4dCkpIChnTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImciKSkgKGRiQ3JlYXRlVGVybSBnTmV0ICJnIiAiaW5wdXQiKSAoc05ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJzIikpIChkYkNyZWF0ZVRlcm0gc05ldCAicyIgImlucHV0T3V0cHV0IikgKGROZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiZCIpKSAoZGJDcmVhdGVUZXJtIGROZXQgImQiICJpbnB1dE91dHB1dCIpIChpck5ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJpciIpKSAoZGJDcmVhdGVUZXJtIGlyTmV0ICJpciIgImlucHV0T3V0cHV0IikgKG9yTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgIm9yIikpIChkYkNyZWF0ZVRlcm0gb3JOZXQgIm9yIiAiaW5wdXRPdXRwdXQiKSB3aGVuKChmbGFyZVlhbW91bnRfaW4gPT0gMC4wKSAoZmxhcmVZYW1vdW50X2luID0gZmxhcmVZYW1vdW50KSkgY29uZCgoKHNocmlua1BlcmNlbnQgPT0gMC4wKSAoc2NhbGVNdWx0ID0gMS4wKSkgKHQgKHNjYWxlTXVsdCA9ICgxMDAuMCAvICgxMDAuMCAtIHNocmlua1BlcmNlbnQpKSkgKHZpYTFQb2x5R3JpZCA9IG1heCh2aWExZ3JpZCBwb2x5R3JpZCkpIGZvcmVhY2goc2l6ZUFuZEdyaWQgbGlzdChsaXN0KCdzcmNWaWFHYXRlU3BhY2UgdmlhMVBvbHlHcmlkKSBsaXN0KCdkcm5WaWFHYXRlU3BhY2UgdmlhMVBvbHlHcmlkKSBsaXN0KCdkcm5WaWFZc3BhY2VSaW5nVmlhVG9wIHZpYTFncmlkKSBsaXN0KCdkcm5WaWFZc3BhY2VSaW5nVmlhQm90IHZpYTFncmlkKSBsaXN0KCdFU0Rud0VuY1ZpYTEgdGFwR3JpZCkgbGlzdCgnRVNEbndHYXRlU3AgdGFwR3JpZCkgbGlzdCgnaW5uZXJSaW5nVGFwV2lkdGggdGFwR3JpZCkgbGlzdCgnb3V0ZXJSaW5nVGFwV2lkdGggdGFwR3JpZCkgbGlzdCgnaW5uZXJSaW5nTWV0YWxXaWR0aCBsYXllcjJncmlkKSBsaXN0KCd2aWExVmlhMlNwYWNlIHZpYTFncmlkKSBsaXN0KCdsYXllcjJXaWR0aCBsYXllcjJncmlkKSBsaXN0KCdsYXllcjNXaWR0aCBsYXllcjNncmlkKSBsaXN0KCdvckxheWVyM1dpZHRoIGxheWVyM2dyaWQpIGxpc3QoJ21pblcgZGlmZkdyaWQpIGxpc3QoJ21heFcgZGlmZkdyaWQpIGxpc3QoJ21pblRvdGFsVyBkaWZmR3JpZCkgbGlzdCgndmlhRXh0RGlmZlkgZGlmZkdyaWQpKSAodGhlU2l6ZSA9IGNhcihzaXplQW5kR3JpZCkpICh0aGVHcmlkID0gY2FkcihzaXplQW5kR3JpZCkpICh0ZW1wU2l6ZSA9ICgoZXZhbCh0aGVTaXplKSAqIHNjYWxlTXVsdCkgLyB0aGVHcmlkKSkgc2V0KHRoZVNpemUgKGZpeCgodGVtcFNpemUgKyAwLjk5OSkpICogdGhlR3JpZCkpKSkpIGZvcmVhY2goa2x1ZGdlIGxpc3QobGlzdCgnb3JMYXllcjNXaWR0aCBsYXllcjNncmlkIHZpYTJXaWR0aCB2aWEyZ3JpZCkgbGlzdCgnb3V0ZXJSaW5nVGFwV2lkdGggdGFwR3JpZCB2aWExV2lkdGggdmlhMWdyaWQpKSAodG1wT3JMYXllcldpZHRoID0gbnRoKDAga2x1ZGdlKSkgKHRtcE9yTGF5ZXJHcmlkID0gbnRoKDEga2x1ZGdlKSkgKHRtcFZpYVdpZHRoID0gbnRoKDIga2x1ZGdlKSkgKHRtcFZpYUdyaWQgPSBudGgoMyBrbHVkZ2UpKSAodGVtcFNpemUgPSAodG1wVmlhV2lkdGggLyB0bXBWaWFHcmlkKSkgY29uZCgob2RkcChmaXgoKHRlbXBTaXplICsgMC45OTkpKSkgKHRlbXBTaXplID0gKGV2YWwodG1wT3JMYXllcldpZHRoKSAvIHRtcE9yTGF5ZXJHcmlkKSkgd2hlbihldmVucChmaXgoKHRlbXBTaXplICsgMC45OTkpKSkgc2V0KHRtcE9yTGF5ZXJXaWR0aCAoZXZhbCh0bXBPckxheWVyV2lkdGgpICsgbGF5ZXIzZ3JpZCkpKSkgKHQgKHRlbXBTaXplID0gKGV2YWwodG1wT3JMYXllcldpZHRoKSAvIHRtcE9yTGF5ZXJHcmlkKSkgd2hlbihvZGRwKGZpeCgodGVtcFNpemUgKyAwLjk5OSkpKSBzZXQodG1wT3JMYXllcldpZHRoIChldmFsKHRtcE9yTGF5ZXJXaWR0aCkgKyBsYXllcjNncmlkKSkpKSkpICh2aWExUGl0Y2ggPSAodmlhMVdpZHRoICsgdmlhMVNwYWNlKSkgKHRhcmdldFJvd3MgPSAoKHcgKyAoLTIuMCAqIHZpYUV4dERpZmZZKSArIHZpYTFTcGFjZSkgLyB2aWExUGl0Y2gpKSAocm93c09mQ29udGFjdHMgPSBmaXgoKDAuOTk5ICsgdGFyZ2V0Um93cykpKSB3aGVuKChhYnMoKHJvd3NPZkNvbnRhY3RzIC0gdGFyZ2V0Um93cykpID4gMC4wMDAxKSBlcnJvcigibkVzZFRyYW5JbXBDbGFzczogdyAoJWYpIGRvZXMgbm90IHNhdGlzZnkgdmlhIHBpdGNoIHJlcXVpcmVtZW50cy4gIFRyeSBlaXRoZXIgJWYgb3IgJWZcbiIgdyAoKHJvd3NPZkNvbnRhY3RzICogdmlhMVBpdGNoKSArICgtIHZpYTFTcGFjZSkgKyAoMi4wICogdmlhRXh0RGlmZlkpKSAoKChyb3dzT2ZDb250YWN0cyAtIDEpICogdmlhMVBpdGNoKSArICgtIHZpYTFTcGFjZSkgKyAoMi4wICogdmlhRXh0RGlmZlkpKSkpIHdoZW4oKCh3IC0gMWUtMDYpIDwgbWluVykgZXJyb3IoIm5Fc2RUcmFuSW1wQ2xhc3M6ICB3ICglZikgaXMgbGVzcyB0aGFuIG1pbmltdW0gYWxsb3dhYmxlIHdpZHRoIHBlciBsZWcgKCVmKVxuIiB3IG1pblcpKSB3aGVuKCgodyAtIDFlLTA2KSA+IG1heFcpIGVycm9yKCJuRXNkVHJhbkltcENsYXNzOiAgdyAoJWYpIGlzIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIGFsbG93YWJsZSB3aWR0aCBwZXIgbGVnICglZilcbiIgdyBtYXhXKSkgd2hlbigoKHcgKiBtKSA8IG1pblRvdGFsVykgZXJyb3IoIm5Fc2RUcmFuSW1wQ2xhc3M6ICB0b3RhbCB3ICglZikgaXMgbGVzcyB0aGFuIHRoZSBtaW5pbXVtIHRvdGFsIHdpZHRoICglZilcbiIgKHcgKiBtKSBtaW5Ub3RhbFcpKSB3aGVuKChkcm5WaWFZc3BhY2VSaW5nVmlhVG9wIDwgKHNyY1ZpYUdhdGVTcGFjZSArIGRyblZpYUdhdGVTcGFjZSArIGwgKyBleHRyYURyblNwYWNlICsgZXh0cmFTcmNTcGFjZSkpIGVycm9yKCJuRXNkVHJhbkltcENsYXNzOiAgZHJuVmlhWXNwYWNlUmluZ1ZpYVRvcCAoJWYpIGlzIGxlc3MgdGhhbiBtaW5pbXVtIGFsbG93YWJsZSAoJWYpXG4iIGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgKHNyY1ZpYUdhdGVTcGFjZSArIGRyblZpYUdhdGVTcGFjZSArIGwgKyBleHRyYURyblNwYWNlICsgZXh0cmFTcmNTcGFjZSkpKSB3aGVuKChkcm5WaWFZc3BhY2VSaW5nVmlhQm90IDwgKHNyY1ZpYUdhdGVTcGFjZSArIGRyblZpYUdhdGVTcGFjZSArIGwgKyBleHRyYURyblNwYWNlICsgZXh0cmFTcmNTcGFjZSkpIGVycm9yKCJuRXNkVHJhbkltcENsYXNzOiAgZHJuVmlhWXNwYWNlUmluZ1ZpYUJvdCAoJWYpIGlzIGxlc3MgdGhhbiBtaW5pbXVtIGFsbG93YWJsZSAoJWYpXG4iIGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgKHNyY1ZpYUdhdGVTcGFjZSArIGRyblZpYUdhdGVTcGFjZSArIGwgKyBleHRyYURyblNwYWNlICsgZXh0cmFTcmNTcGFjZSkpKSB1bmxlc3MoKCFmbG9hdHAobSkgJiYgbnVtYmVycChtKSkgZXJyb3IoIm5Fc2RUcmFuSW1wQ2xhc3M6ICBtIG11c3QgYmUgYW4gZXZlbiBpbnRlZ2VyLCBub3QgYSBmbG9hdFxuIikpIHdoZW4ob2RkcChtKSBlcnJvcigibkVzZFRyYW5JbXBDbGFzczogIG0gKG51bWJlciBvZiBsZWdzKSBtdXN0IGJlIGFuIGV2ZW4gaW50ZWdlclxuIikpIChmbGFyZWRHYXRlSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZmxhcmVkR2F0ZU5hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhmbGFyZWRHYXRlSWQgZXJyb3IoIm5Fc2RUcmFuSW1wQ2xhc3M6ICBDYW5ub3QgZmluZC9vcGVuIGZsYXJlZCBnYXRlICVzXG4iIGZsYXJlZEdhdGVOYW1lKSkgdW5sZXNzKChmbGFyZWRHYXRlSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigibkVzZFRyYW5JbXBDbGFzczogIEZsYXJlZCBnYXRlICVzIGlzIG5vdCBhIHBjZWxsXG4iIGZsYXJlZEdhdGVOYW1lKSkgKHJpbmdJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBnZW5lcmljUmluZ05hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhyaW5nSWQgZXJyb3IoIm5Fc2RUcmFuSW1wQ2xhc3M6ICBDYW5ub3QgZmluZC9vcGVuIHJpbmcgJXNcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgdW5sZXNzKChyaW5nSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigibkVzZFRyYW5JbXBDbGFzczogIFJpbmcgJXMgaXMgbm90IGEgcGNlbGxcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgKHJpdmV0ZWRSaW5nSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgcml2ZXRlZFJpbmdOYW1lICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3Mocml2ZXRlZFJpbmdJZCBlcnJvcigibkVzZFRyYW5JbXBDbGFzczogIENhbm5vdCBmaW5kL29wZW4gcml2ZXRlZCByaW5nICVzXG4iIHJpdmV0ZWRSaW5nTmFtZSkpIHVubGVzcygocml2ZXRlZFJpbmdJZH4+aXNQYXJhbUNlbGwpIGVycm9yKCJuRXNkVHJhbkltcENsYXNzOiAgUml2ZXRlZCByaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIHJpdmV0ZWRSaW5nTmFtZSkpIChkaWZmWG9yaWdpbiA9ICgoLSB2aWFFeHREaWZmWCkgKyAoLSB2aWExV2lkdGgpICsgKC0gc3JjVmlhR2F0ZVNwYWNlKSArICgtIGV4dHJhU3JjU3BhY2UpKSkgKGRpZmZZb3JpZ2luID0gMC4wKSAodG90YWxEcm5MZW5ndGggPSAoKDIuMCAqIChkcm5WaWFHYXRlU3BhY2UgKyBleHRyYURyblNwYWNlKSkgKyB2aWExV2lkdGgpKSAodG90YWxTcmNMZW5ndGggPSAoKDIuMCAqIChzcmNWaWFHYXRlU3BhY2UgKyBleHRyYVNyY1NwYWNlKSkgKyB2aWExV2lkdGgpKSAoZGlmZlhlbmQgPSAoZGlmZlhvcmlnaW4gKyAoLTIuMCAqIGRpZmZYb3JpZ2luKSArIChsICogbSkgKyAoKG0gLyAyKSAqIHRvdGFsRHJuTGVuZ3RoKSArICgoKG0gLyAyKSAtIDEpICogdG90YWxTcmNMZW5ndGgpKSkgKGRpZmZZZW5kID0gdykgd2hlbigoKEVTRG53RW5jVmlhMSA+IDAuMCkgJiYgKEVTRG53R2F0ZVNwID4gMC4wKSkgKEVTRG53VFdpZHRoRHJuID0gKCgoMi4wICogZHJuVmlhR2F0ZVNwYWNlKSArIHZpYTFXaWR0aCkgLSAoMi4wICogRVNEbndHYXRlU3ApKSkgKEVTRG53VFdpZHRoU3JjID0gKCgoMi4wICogc3JjVmlhR2F0ZVNwYWNlKSArIHZpYTFXaWR0aCkgLSAoMi4wICogRVNEbndHYXRlU3ApKSkgKEVTRG53VFhvcmlnaW4gPSAoKC0gRVNEbndHYXRlU3ApICsgKC0gRVNEbndUV2lkdGhTcmMpKSkgKEVTRG53VFlvcmlnaW4gPSAodmlhRXh0RGlmZlkgLSBFU0Rud0VuY1ZpYTEpKSAoRVNEbndUWWVuZCA9ICh2aWFFeHREaWZmWSArIChyb3dzT2ZDb250YWN0cyAqIHZpYTFXaWR0aCkgKyAoKHJvd3NPZkNvbnRhY3RzIC0gMSkgKiB2aWExU3BhY2UpICsgRVNEbndFbmNWaWExKSkpIGlmKCgoRVNEbndFbmNWaWExID4gMC4wKSAmJiAoRVNEbndHYXRlU3AgPiAwLjApKSB0aGVuIChkaWZmWGxvb3AgPSAobCAvIDIuMCkpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KChkaWZmWG9yaWdpbjpkaWZmWW9yaWdpbikgKGRpZmZYb3JpZ2luOmRpZmZZZW5kKSAoZGlmZlhsb29wOmRpZmZZZW5kKSAoZGlmZlhsb29wOkVTRG53VFllbmQpICgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpKTpFU0Rud1RZZW5kKSAoKEVTRG53VFhvcmlnaW4gKyAoLSBleHRyYVNyY1NwYWNlKSk6ZGlmZllvcmlnaW4pKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKChFU0Rud1RYb3JpZ2luICsgKC0gZXh0cmFTcmNTcGFjZSkpOmRpZmZZb3JpZ2luKSAoZGlmZlhsb29wOmRpZmZZb3JpZ2luKSAoZGlmZlhsb29wOkVTRG53VFllbmQpICgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpICgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpKTpFU0Rud1RZb3JpZ2luKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGxpc3QoKChFU0Rud1RYb3JpZ2luICsgKC0gZXh0cmFTcmNTcGFjZSkpOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgd2VsbExheWVyIGxpc3QoKChFU0Rud1RYb3JpZ2luICsgKC0gZXh0cmFTcmNTcGFjZSkpOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpKSkpIChFU0Rud1RYb3JpZ2luID0gKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyArICgyLjAgKiBFU0Rud0dhdGVTcCkgKyBsICsgZXh0cmFEcm5TcGFjZSkpIGZvcihzZWN0aW9uIDEgKG0gLyAyKSAoZHJuRGlmZlhlbmQgPSAoZGlmZlhsb29wICsgdG90YWxEcm5MZW5ndGggKyBsKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKGRpZmZYbG9vcDpkaWZmWW9yaWdpbikgKGRpZmZYbG9vcDpkaWZmWWVuZCkgKGRybkRpZmZYZW5kOmRpZmZZZW5kKSAoZHJuRGlmZlhlbmQ6RVNEbndUWWVuZCkgKEVTRG53VFhvcmlnaW46RVNEbndUWWVuZCkgKEVTRG53VFhvcmlnaW46ZGlmZllvcmlnaW4pKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKEVTRG53VFhvcmlnaW46ZGlmZllvcmlnaW4pIChkcm5EaWZmWGVuZDpkaWZmWW9yaWdpbikgKGRybkRpZmZYZW5kOkVTRG53VFllbmQpICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoRHJuKTpFU0Rud1RZZW5kKSAoKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aERybik6RVNEbndUWW9yaWdpbikgKEVTRG53VFhvcmlnaW46RVNEbndUWW9yaWdpbikpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBkTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBMYXllciBsaXN0KChFU0Rud1RYb3JpZ2luOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoRHJuKTpFU0Rud1RZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGROZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KChFU0Rud1RYb3JpZ2luOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoRHJuKTpFU0Rud1RZZW5kKSkpKSAoRVNEbndUWG9yaWdpbiA9IChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhEcm4gKyAoMi4wICogRVNEbndHYXRlU3ApICsgbCArIGV4dHJhU3JjU3BhY2UgKyBleHRyYURyblNwYWNlKSkgKGRpZmZYbG9vcCA9IGRybkRpZmZYZW5kKSB1bmxlc3MoKHNlY3Rpb24gPT0gKG0gLyAyKSkgKHNyY0RpZmZYZW5kID0gKGRpZmZYbG9vcCArIHRvdGFsU3JjTGVuZ3RoICsgbCkpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KChkaWZmWGxvb3A6ZGlmZllvcmlnaW4pIChkaWZmWGxvb3A6ZGlmZlllbmQpIChzcmNEaWZmWGVuZDpkaWZmWWVuZCkgKHNyY0RpZmZYZW5kOkVTRG53VFllbmQpIChFU0Rud1RYb3JpZ2luOkVTRG53VFllbmQpIChFU0Rud1RYb3JpZ2luOmRpZmZZb3JpZ2luKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KChFU0Rud1RYb3JpZ2luOmRpZmZZb3JpZ2luKSAoc3JjRGlmZlhlbmQ6ZGlmZllvcmlnaW4pIChzcmNEaWZmWGVuZDpFU0Rud1RZZW5kKSAoKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyk6RVNEbndUWWVuZCkgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFlvcmlnaW4pIChFU0Rud1RYb3JpZ2luOkVTRG53VFlvcmlnaW4pKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwTGF5ZXIgbGlzdCgoRVNEbndUWG9yaWdpbjpFU0Rud1RZb3JpZ2luKSAoKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyk6RVNEbndUWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgbGlzdCgoRVNEbndUWG9yaWdpbjpFU0Rud1RZb3JpZ2luKSAoKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyk6RVNEbndUWWVuZCkpKSkgKEVTRG53VFhvcmlnaW4gPSAoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjICsgZXh0cmFTcmNTcGFjZSArICgyLjAgKiBFU0Rud0dhdGVTcCkgKyBsICsgZXh0cmFEcm5TcGFjZSkpIChkaWZmWGxvb3AgPSBzcmNEaWZmWGVuZCkpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhsb29wOmRpZmZZb3JpZ2luKSAoZGlmZlhsb29wOmRpZmZZZW5kKSAoZGlmZlhlbmQ6ZGlmZlllbmQpIChkaWZmWGVuZDpFU0Rud1RZZW5kKSAoRVNEbndUWG9yaWdpbjpFU0Rud1RZZW5kKSAoRVNEbndUWG9yaWdpbjpkaWZmWW9yaWdpbikpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoRVNEbndUWG9yaWdpbjpkaWZmWW9yaWdpbikgKGRpZmZYZW5kOmRpZmZZb3JpZ2luKSAoZGlmZlhlbmQ6RVNEbndUWWVuZCkgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZb3JpZ2luKSAoRVNEbndUWG9yaWdpbjpFU0Rud1RZb3JpZ2luKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGxpc3QoKEVTRG53VFhvcmlnaW46RVNEbndUWW9yaWdpbikgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgd2VsbExheWVyIGxpc3QoKEVTRG53VFhvcmlnaW46RVNEbndUWW9yaWdpbikgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpKSkpIChFU0Rud1RYb3JpZ2luID0gKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyArICgyLjAgKiBFU0Rud0dhdGVTcCkgKyBsKSkgZWxzZSAoZGlmZlhsb29wID0gKGwgLyAyLjApKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhvcmlnaW46ZGlmZllvcmlnaW4pIChkaWZmWGxvb3A6ZGlmZlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgZm9yKHNlY3Rpb24gMSAobSAvIDIpIChkcm5EaWZmWGVuZCA9IChkaWZmWGxvb3AgKyB0b3RhbERybkxlbmd0aCArIGwpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhsb29wOmRpZmZZb3JpZ2luKSAoZHJuRGlmZlhlbmQ6ZGlmZlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgKGRpZmZYbG9vcCA9IGRybkRpZmZYZW5kKSB1bmxlc3MoKHNlY3Rpb24gPT0gKG0gLyAyKSkgKHNyY0RpZmZYZW5kID0gKGRpZmZYbG9vcCArIHRvdGFsU3JjTGVuZ3RoICsgbCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KChkaWZmWGxvb3A6ZGlmZllvcmlnaW4pIChzcmNEaWZmWGVuZDpkaWZmWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGlmZlhsb29wID0gc3JjRGlmZlhlbmQpKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKGRpZmZYbG9vcDpkaWZmWW9yaWdpbikgKGRpZmZYZW5kOmRpZmZZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaWRMYXllciBsaXN0KChkaWZmWG9yaWdpbjpkaWZmWW9yaWdpbikgKGRpZmZYZW5kOmRpZmZZZW5kKSkpIHdoZW4oZGlmZkltcGxhbnQgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoZGlmZlhvcmlnaW4gLSBkaWZmSW1wRW5jKSAoZGlmZllvcmlnaW4gLSBkaWZmSW1wRW5jKSkgbGlzdCgoZGlmZlhlbmQgKyBkaWZmSW1wRW5jKSAoZGlmZlllbmQgKyBkaWZmSW1wRW5jKSkpKSkgd2hlbihkaWZmQ29yZUltcGxhbnQgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKGRpZmZYb3JpZ2luIC0gZGlmZkNvcmVJbXBFbmMpIChkaWZmWW9yaWdpbiAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgoZGlmZlhlbmQgKyBkaWZmQ29yZUltcEVuYykgKGRpZmZZZW5kICsgZGlmZkNvcmVJbXBFbmMpKSkpKSB3aGVuKG1heHZMYXllciAoaHZsbHggPSAoZGlmZlhvcmlnaW4gLSBodkRpZmZFbmNsb3N1cmUpKSAoaHZsbHkgPSAoZGlmZllvcmlnaW4gLSBodkRpZmZFbmNsb3N1cmUpKSAoaHZ1cnggPSAoZGlmZlhlbmQgKyBodkRpZmZFbmNsb3N1cmUpKSAoaHZ1cnkgPSAoZGlmZlllbmQgKyBodkRpZmZFbmNsb3N1cmUpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbWF4dkxheWVyIGxpc3QoKGh2bGx4Omh2bGx5KSAoaHZ1cng6aHZ1cnkpKSkpIChnYXRlWG9mZnNldCA9IDAuMCkgZm9yKGdhdGVOdW0gMSBtIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgZmxhcmVkR2F0ZUlkIHNwcmludGYobmlsICJnJWQiIGdhdGVOdW0pICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJnYXRlTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoImdhdGVSZWNvZ25pdGlvbkxheWVyIiAibGlzdCIgcmdhdGVMYXllcikgbGlzdCgidyIgImZsb2F0IiB3KSBsaXN0KCJsIiAiZmxvYXQiIGwpIGxpc3QoImZsYXJlQW1vdW50X2luIiAiZmxvYXQiIGZsYXJlWWFtb3VudF9pbikgbGlzdCgiZmxhcmVBbW91bnQiICJmbG9hdCIgZmxhcmVZYW1vdW50KSBsaXN0KCJmbGFyZUV4dGVuc2lvbiIgImZsb2F0IiBmbGFyZVlleHRlbnNpb24pIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgZ2F0ZVhvZmZzZXQpKSkpIHVubGVzcyhpbnN0IGVycm9yKCJuRXNkVHJhbkltcENsYXNzOiAgRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBmbGFyZWQgZ2F0ZSAlcyIgZmxhcmVkR2F0ZU5hbWUpKSAobWFzdGVyID0gKGluc3R+Pm1hc3RlcikpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciAobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZ05ldCkgKG1vZGVsVGV4dFggPSAoZ2F0ZVhvZmZzZXQgKyAoKGNhYWRyKChtYXN0ZXJ+Pm5vZmxhcmVQb2ludHMpKSAtIGNhYXIoKG1hc3Rlcn4+bm9mbGFyZVBvaW50cykpKSAvIDIpKSkgKG1vZGVsVGV4dFkgPSAoKGNhZGFkcigobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkgLSBjYWRhcigobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkpIC8gMikpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbW9kZWxUZXh0TGF5ZXIgbGlzdChtb2RlbFRleHRYIG1vZGVsVGV4dFkpIG1vZGVsVGV4dCAiY2VudGVyQ2VudGVyIiAiUjAiICJzdGljayIgbW9kZWxUZXh0TGF5ZXJTaXplKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBnYXRlTGF5ZXIgKG1hc3Rlcn4+dG9wRmxhcmVQb2ludHMpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGdOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiKSBhY2Nlc3NEaXIpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGdhdGVMYXllciAobWFzdGVyfj5ib3R0b21GbGFyZVBvaW50cykpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoImJvdHRvbSIpIGFjY2Vzc0RpcikgY29uZCgob2RkcChnYXRlTnVtKSAoZ2F0ZVhvZmZzZXQgPSAoZ2F0ZVhvZmZzZXQgKyBsICsgdG90YWxEcm5MZW5ndGgpKSkgKHQgKGdhdGVYb2Zmc2V0ID0gKGdhdGVYb2Zmc2V0ICsgbCArIHRvdGFsU3JjTGVuZ3RoKSkpKSkgKHZpYTFYb3JpZ2luID0gKCgtIHNyY1ZpYUdhdGVTcGFjZSkgKyAoLSBleHRyYVNyY1NwYWNlKSArICgtIHZpYTFXaWR0aCkpKSAodmlhMVlvcmlnaW4gPSB2aWFFeHREaWZmWSkgKHZpYTFYZGVsdGEgPSAodmlhMVdpZHRoICsgZXh0cmFTcmNTcGFjZSArIHNyY1ZpYUdhdGVTcGFjZSArIGwgKyBkcm5WaWFHYXRlU3BhY2UgKyBleHRyYURyblNwYWNlKSkgKHRoZU5ldCA9IHNOZXQpIGNvbmQoKCgobGF5ZXIyTCA9IChsYXllcjJFbmNWaWExICsgdmlhMVdpZHRoICsgbGF5ZXIyRW5jVmlhMSkpID4gKGxheWVyMkxhID0gKGxheWVyMkVuY1ZpYTIgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkpIChsYXllcjJEZWx0YVZpYTEgPSBsYXllcjJFbmNWaWExKSkgKHQgKGRlbHRhID0gKChsYXllcjJMYSAtIGxheWVyMkwpIC8gMi4wKSkgKGxheWVyMkRlbHRhVmlhMSA9IChsYXllcjJFbmNWaWExICsgKGZpeCgoMC45OTkgKyAoZGVsdGEgLyBsYXllcjJncmlkKSkpICogbGF5ZXIyZ3JpZCkpKSAobGF5ZXIyTCA9IGxheWVyMkxhKSkpICh2aWEyUGl0Y2ggPSAodmlhMldpZHRoICsgdmlhMlNwYWNlKSkgKGxheWVyMlcgPSAoKDIuMCAqIGxheWVyMkVuY1ZpYTEpICsgKHJvd3NPZkNvbnRhY3RzICogdmlhMVBpdGNoKSArICgtIHZpYTFTcGFjZSkpKSAobGF5ZXIyV2EgPSAoKDIuMCAqIGxheWVyMkVuY1ZpYTIpIC0gdmlhMlNwYWNlKSkgKHJvd3NPZkNvbnRhY3RzMiA9IDApIHdoaWxlKCgobGF5ZXIyV2EgLSAxZS0wNSkgPCBsYXllcjJXKSAobGF5ZXIyV2EgPSAobGF5ZXIyV2EgKyB2aWEyUGl0Y2gpKSAocm93c09mQ29udGFjdHMyID0gKHJvd3NPZkNvbnRhY3RzMiArIDEpKSkgKGxheWVyMldhID0gKGxheWVyMldhIC0gdmlhMlBpdGNoKSkgKHJvd3NPZkNvbnRhY3RzMiA9IChyb3dzT2ZDb250YWN0czIgLSAxKSkgKGxheWVyMllEZWx0YVZpYTEgPSBsYXllcjJFbmNWaWExKSBmb3IoY29sdW1uIDAgbSBjb25kKChldmVucChjb2x1bW4pICh0aGVOZXQgPSBzTmV0KSkgKHQgKHRoZU5ldCA9IGROZXQpKSkgKHZpYTFYZW5kID0gKHZpYTFYb3JpZ2luICsgdmlhMVdpZHRoKSkgKHZpYTFZbG9vcCA9IHZpYTFZb3JpZ2luKSBmb3Iocm93IDEgcm93c09mQ29udGFjdHMgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHZpYTFYb3JpZ2luOnZpYTFZbG9vcCkgKHZpYTFYZW5kOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkgKHZpYTFZbG9vcCA9ICh2aWExWWxvb3AgKyB2aWExUGl0Y2gpKSkgaWYoKGxheWVyMldpZHRoID4gMC4wKSB0aGVuIChsYXllcjJYb3JpZ2luID0gbWluKCgodmlhMVhvcmlnaW4gLSAoMC41ICogbGF5ZXIyV2lkdGgpKSArICgwLjUgKiB2aWExV2lkdGgpKSAodmlhMVhvcmlnaW4gKyAoLSB2aWExVmlhMlNwYWNlKSArICgtIHZpYTJXaWR0aCkgKyAoLSBsYXllcjJFbmNWaWEyKSkpKSAobGF5ZXIyWG9yaWdpbiA9IChyb3VuZCgoKGxheWVyMlhvcmlnaW4gLyBsYXllcjJncmlkKSArIDAuMDAxKSkgKiBsYXllcjJncmlkKSkgZWxzZSAobGF5ZXIyWG9yaWdpbiA9ICh2aWExWG9yaWdpbiAtIGxheWVyMkRlbHRhVmlhMSkpKSAobGF5ZXIyWW9yaWdpbiA9ICh2aWExWW9yaWdpbiAtIGxheWVyMllEZWx0YVZpYTEpKSAobGF5ZXIyWWVuZCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyVykpIGlmKChsYXllcjJXaWR0aCA+IDAuMCkgdGhlbiBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAobDJidmxDbnRybCA9IChsYXllcjJXaWR0aCAvIDMuMCkpIChsMmJ2bENudHJsID0gKHJvdW5kKCgobDJidmxDbnRybCAvIGxheWVyMmdyaWQpICsgMC4wMDEpKSAqIGxheWVyMmdyaWQpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KChsYXllcjJYb3JpZ2luICsgbDJidmxDbnRybCkgKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsKSkpIGxpc3QobGF5ZXIyWG9yaWdpbiBsYXllcjJZb3JpZ2luKSBsaXN0KGxheWVyMlhvcmlnaW4gbGF5ZXIyWWVuZCkgbGlzdCgobGF5ZXIyWG9yaWdpbiArIGwyYnZsQ250cmwpIChsYXllcjJZZW5kICsgbDJidmxDbnRybCkpIGxpc3QoKGxheWVyMlhvcmlnaW4gKyBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWEyV2lkdGgpICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgdmlhMVdpZHRoICsgKDIuMCAqIGxheWVyMkVuY1ZpYTIpKSkgKyAoLSBsMmJ2bENudHJsKSkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgobGF5ZXIyWG9yaWdpbiArIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTJXaWR0aCkgKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyB2aWExV2lkdGggKyAoMi4wICogbGF5ZXIyRW5jVmlhMikpKSkgbGF5ZXIyWWVuZCkgbGlzdCgobGF5ZXIyWG9yaWdpbiArIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTJXaWR0aCkgKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyB2aWExV2lkdGggKyAoMi4wICogbGF5ZXIyRW5jVmlhMikpKSkgbGF5ZXIyWW9yaWdpbikgbGlzdCgobGF5ZXIyWG9yaWdpbiArIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTJXaWR0aCkgKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyB2aWExV2lkdGggKyAoMi4wICogbGF5ZXIyRW5jVmlhMikpKSArICgtIGwyYnZsQ250cmwpKSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmwpKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0aGVOZXQpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYb3JpZ2luIGxheWVyMllvcmlnaW4pIGxpc3QoKGxheWVyMlhvcmlnaW4gKyBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWEyV2lkdGgpICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgdmlhMVdpZHRoICsgKDIuMCAqIGxheWVyMkVuY1ZpYTIpKSkpIGxheWVyMlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgdGhlTmV0KSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdCgobGF5ZXIyWG9yaWdpbjpsYXllcjJZb3JpZ2luKSAoKGxheWVyMlhvcmlnaW4gKyBsYXllcjJMKTpsYXllcjJZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkpIGlmKCh2aWExVmlhMlNwYWNlID4gMC4wKSB0aGVuICh2aWEyWG9yaWdpbiA9ICh2aWExWG9yaWdpbiArIHZpYTFXaWR0aCArIHZpYTFWaWEyU3BhY2UpKSBlbHNlICh2aWEyWG9yaWdpbiA9IChsYXllcjJYb3JpZ2luICsgbGF5ZXIyRW5jVmlhMikpKSAodmlhMlhlbmQgPSAodmlhMlhvcmlnaW4gKyB2aWEyV2lkdGgpKSAodmlhMllvcmlnaW4gPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIpKSAodmlhMllsb29wID0gdmlhMllvcmlnaW4pIGZvcihyb3cgMSByb3dzT2ZDb250YWN0czIgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHZpYTJYb3JpZ2luOnZpYTJZbG9vcCkgKHZpYTJYZW5kOih2aWEyWWxvb3AgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkgd2hlbigodmlhMVZpYTJTcGFjZSA+IDAuMCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKCh2aWExWG9yaWdpbiArICgtIHZpYTFWaWEyU3BhY2UpICsgKC0gdmlhMldpZHRoKSk6dmlhMllsb29wKSAoKHZpYTFYb3JpZ2luICsgKC0gdmlhMVZpYTJTcGFjZSkpOih2aWEyWWxvb3AgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkpICh2aWEyWWxvb3AgPSAodmlhMllsb29wICsgdmlhMlBpdGNoKSkpIGlmKChsYXllcjNXaWR0aCA+IDAuMCkgdGhlbiAobGF5ZXIzWG9yaWdpbiA9ICgodmlhMVhvcmlnaW4gLSAoMC41ICogbGF5ZXIzV2lkdGgpKSArICgwLjUgKiB2aWExV2lkdGgpKSkgKGxheWVyM1hvcmlnaW4gPSAocm91bmQoKChsYXllcjNYb3JpZ2luIC8gbGF5ZXIzZ3JpZCkgKyAwLjAwMSkpICogbGF5ZXIzZ3JpZCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsM2J2bENudHJsID0gKGxheWVyM1dpZHRoIC8gMy4wKSkgKGwzYnZsQ250cmwgPSAocm91bmQoKChsM2J2bENudHJsIC8gbGF5ZXIyZ3JpZCkgKyAwLjAwMSkpICogbGF5ZXIyZ3JpZCkpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKGxheWVyM1hvcmlnaW4gKyBsM2J2bENudHJsKSAodmlhMllvcmlnaW4gKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkgbGlzdChsYXllcjNYb3JpZ2luICh2aWEyWW9yaWdpbiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdChsYXllcjNYb3JpZ2luICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKGxheWVyM1hvcmlnaW4gKyBsM2J2bENudHJsKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgobGF5ZXIzWG9yaWdpbiArIGxheWVyM1dpZHRoICsgKC0gbDNidmxDbnRybCkpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmwpKSBsaXN0KChsYXllcjNYb3JpZ2luICsgbGF5ZXIzV2lkdGgpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKGxheWVyM1hvcmlnaW4gKyBsYXllcjNXaWR0aCkgKHZpYTJZb3JpZ2luICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KChsYXllcjNYb3JpZ2luICsgbGF5ZXIzV2lkdGggKyAoLSBsM2J2bENudHJsKSkgKHZpYTJZb3JpZ2luICsgKC0gbGF5ZXIzRW5jVmlhMikgKyAoLSBsM2J2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdChsYXllcjNYb3JpZ2luICh2aWEyWW9yaWdpbiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgobGF5ZXIzWG9yaWdpbiArIGxheWVyM1dpZHRoKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QoKCh2aWEyWG9yaWdpbiAtIGxheWVyM0VuY1ZpYTIpOih2aWEyWW9yaWdpbiAtIGxheWVyM0VuY1ZpYTIpKSAoKHZpYTJYZW5kICsgbGF5ZXIzRW5jVmlhMik6KHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkpKSkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiB0aGVOZXQgZGJpZCkpIGNvbmQoKChjb2x1bW4gPT0gMCkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiKSBhY2Nlc3NEaXIpKSAoKGNvbHVtbiA9PSBtKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAicmlnaHQiKSBhY2Nlc3NEaXIpKSAodCBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIikgYWNjZXNzRGlyKSkpICh2aWExWG9yaWdpbiA9ICh2aWExWG9yaWdpbiArIHZpYTFYZGVsdGEpKSkgKHRhcFdpZHRoSW5JUiA9IG1heChpbm5lclJpbmdUYXBXaWR0aCAodmlhMVdpZHRoICsgKDIuMCAqIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSkpIChpclZpYU9mZnNldCA9IChmaXgoKCgoKHRhcFdpZHRoSW5JUiAvIDIuMCkgLSAodmlhMVdpZHRoIC8gMi4wKSkgLyB2aWExZ3JpZCkgKyAwLjk5OSkpICogdmlhMWdyaWQpKSAoaXJUYXBYb3JpZ2luID0gKGRpZmZYb3JpZ2luIC0gbWluRGlmZlRhcFJpbmdTcGFjZSAtIGV4dHJhTGVmdFNwYWNlIC0gdGFwV2lkdGhJbklSKSkgKGlyVGFwWW9yaWdpbiA9ICh2aWExWW9yaWdpbiAtIGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgLSB2aWExV2lkdGggLSBtYXgoaXJWaWFPZmZzZXQgaW5uZXJSaW5nVGFwRW5jVmlhMSkpKSAoaXJUYXBMID0gKChkaWZmWGVuZCArIG1pbkRpZmZUYXBSaW5nU3BhY2UgKyBleHRyYVJpZ2h0U3BhY2UgKyB0YXBXaWR0aEluSVIpIC0gaXJUYXBYb3JpZ2luKSkgKGlyVGFwVyA9ICgodmlhMVlsb29wICsgKC0gdmlhMVNwYWNlKSArIGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgKyB2aWExV2lkdGggKyBtYXgoaXJWaWFPZmZzZXQgaW5uZXJSaW5nVGFwRW5jVmlhMSkpIC0gaXJUYXBZb3JpZ2luKSkgaWYodGFwRWRnZXNBdDQ1IHRoZW4gKGJldmVsTGVuZ3RoID0gKDAuNiAqIHRhcFdpZHRoSW5JUikpIChiZXZlbExlbmd0aCA9IChyb3VuZCgoKGJldmVsTGVuZ3RoIC8gdGFwR3JpZCkgKyAwLjAwMSkpICogdGFwR3JpZCkpIChsb3dlckxlZnRCTCA9IGJldmVsTGVuZ3RoKSAodXBwZXJMZWZ0QkwgPSBiZXZlbExlbmd0aCkgKGxvd2VyUmlnaHRCTCA9IGJldmVsTGVuZ3RoKSAodXBwZXJSaWdodEJMID0gYmV2ZWxMZW5ndGgpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAiaXRyIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBpclRhcFcpIGxpc3QoImwiICJmbG9hdCIgaXJUYXBMKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlyVGFwWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpclRhcFlvcmlnaW4pIGxpc3QoInJpbmdMYXllciIgImxpc3QiIHRhcExheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdGFwV2lkdGhJbklSKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIHRhcEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSB3aGVuKHRhcFN1YkltcGxhbnQgKGl0cmlYb3JpZ2luID0gKGlyVGFwWG9yaWdpbiAtIHRhcFN1YkltcEVuYykpIChpdHJpWW9yaWdpbiA9IChpclRhcFlvcmlnaW4gLSB0YXBTdWJJbXBFbmMpKSAoaXRyaVJpbmdXaWR0aCA9ICh0YXBXaWR0aEluSVIgKyB0YXBTdWJJbXBFbmMgKyB0YXBTdWJJbXBFbmMpKSAoaXRyaVcgPSAoaXJUYXBXICsgdGFwU3ViSW1wRW5jICsgdGFwU3ViSW1wRW5jKSkgKGl0cmlMID0gKGlyVGFwTCArIHRhcFN1YkltcEVuYyArIHRhcFN1YkltcEVuYykpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAiaXRyaSIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaXRyaVcpIGxpc3QoImwiICJmbG9hdCIgaXRyaUwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaXRyaVhvcmlnaW4pIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaXRyaVlvcmlnaW4pIGxpc3QoInJpbmdMYXllciIgImxpc3QiIHRhcFN1YkltcGxhbnQpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpdHJpUmluZ1dpZHRoKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIG5pbCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB0YXBHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh4Q29vcmQgPSAoaXJUYXBYb3JpZ2luICsgbWF4KGlyVmlhT2Zmc2V0IGlubmVyUmluZ1RhcEVuY1ZpYTEpKSkgKHlDb29yZCA9IChpclRhcFlvcmlnaW4gKyBtYXgoaXJWaWFPZmZzZXQgaW5uZXJSaW5nVGFwRW5jVmlhMSkpKSBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgKHVwcGVyTGVmdEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpIChsb3dlclJpZ2h0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgKHVwcGVyUmlnaHRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgd2hlbihmaWxsZWRSaW5ncyAodmlhMVdpZHRoSW5JUiA9ICh0YXBXaWR0aEluSVIgLSBpbm5lclJpbmdUYXBFbmNWaWExKSkgKHZpYTFYb3JpZ2luID0gKGlyVGFwWG9yaWdpbiArIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSAodmlhMVlvcmlnaW4gPSAoaXJUYXBZb3JpZ2luICsgaW5uZXJSaW5nVGFwRW5jVmlhMSkpKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJpdjFyIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAoaXJUYXBXIC0gKDIuMCAqIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSAoaXJUYXBXIC0gKDIuMCAqIG1heChpclZpYU9mZnNldCBpbm5lclJpbmdUYXBFbmNWaWExKSkpKSkgbGlzdCgibCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAoaXJUYXBMIC0gKDIuMCAqIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSAoaXJUYXBMIC0gKDIuMCAqIG1heChpclZpYU9mZnNldCBpbm5lclJpbmdUYXBFbmNWaWExKSkpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB2aWExWG9yaWdpbiB4Q29vcmQpKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTFZb3JpZ2luIHlDb29yZCkpIGxpc3QoInJpdmV0TGF5ZXIiICJsaXN0IiB2aWExTGF5ZXIpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB2aWExV2lkdGhJbklSIHZpYTFXaWR0aCkpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMVdpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTFTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB2aWExZ3JpZCkpKSBpZigoaW5uZXJSaW5nTWV0YWxXaWR0aCA+IDAuMCkgdGhlbiAoaXJMMncgPSBpclRhcFcpIChpckwybCA9IGlyVGFwTCkgKGlyTDJ4RGVsdGEgPSBpclRhcFhvcmlnaW4pIChpckwyeURlbHRhID0gaXJUYXBZb3JpZ2luKSAoaXJMMnJpbmdXID0gbWF4KCgoMi4wICogbGF5ZXIyRW5jVmlhMSkgKyB2aWExV2lkdGgpICgoMi4wICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyV2lkdGgpIGlubmVyUmluZ01ldGFsV2lkdGgpKSBlbHNlIChpckwydyA9IChpclRhcFcgKyAoLTIuMCAqIG1heChpclZpYU9mZnNldCBpbm5lclJpbmdUYXBFbmNWaWExKSkgKyAoMi4wICogbGF5ZXIyRW5jVmlhMSkpKSAoaXJMMmwgPSAoaXJUYXBMICsgKC0yLjAgKiBtYXgoaXJWaWFPZmZzZXQgaW5uZXJSaW5nVGFwRW5jVmlhMSkpICsgKDIuMCAqIGxheWVyMkVuY1ZpYTEpKSkgKGlyTDJ4RGVsdGEgPSAoeENvb3JkICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSAoaXJMMnlEZWx0YSA9ICh5Q29vcmQgKyAoLSBsYXllcjJFbmNWaWExKSkpIChpckwycmluZ1cgPSBtYXgoKCgyLjAgKiBsYXllcjJFbmNWaWExKSArIHZpYTFXaWR0aCkgKCgyLjAgKiBsYXllcjJFbmNWaWEyKSArIHZpYTJXaWR0aCkpKSkgaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gaXJMMnJpbmdXKSAodXBwZXJMZWZ0QkwgPSBpckwycmluZ1cpIChsb3dlclJpZ2h0QkwgPSBpckwycmluZ1cpICh1cHBlclJpZ2h0QkwgPSBpckwycmluZ1cpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAiaWwyciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgaXJUYXBXIGlyTDJ3KSkgbGlzdCgibCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcEwgaXJMMmwpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIGlyVGFwWG9yaWdpbiBpckwyeERlbHRhKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcFlvcmlnaW4gaXJMMnlEZWx0YSkpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHRhcFdpZHRoSW5JUiBpckwycmluZ1cpKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheWVyMmdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQxIGlyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBpck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDMgaXJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQ0IGlyTmV0KSB3aGVuKChsYXllcjMgJiYgZnVsbHlTdHJhcCAmJiAoZnVsbHlTdHJhcCAhPSAiRkFMU0UiKSkgd2hlbihmaWxsZWRSaW5ncyAodmlhMkVuYyA9IG1heChsYXllcjJFbmNWaWEyIGxheWVyM0VuY1ZpYTIpKSAodmlhMldpZHRoSVIgPSAoaW5uZXJSaW5nTWV0YWxXaWR0aCAtICgyLjAgKiB2aWEyRW5jKSkpICh2aWEyQkwgPSAodmlhMldpZHRoSVIgKyB2aWEyU3BhY2UpKSkgKGl2MnJFbmMgPSAoKGlyTDJyaW5nVyAtIGlmKGZpbGxlZFJpbmdzIHZpYTJXaWR0aElSIHZpYTJXaWR0aCkpIC8gMi4wKSkgKHRlbXBTaXplID0gKGl2MnJFbmMgLyB2aWEyZ3JpZCkpIChpdjJyRW5jID0gKGZpeCgodGVtcFNpemUgKyAwLjk5OSkpICogdmlhMmdyaWQpKSBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKHVwcGVyTGVmdEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpIChsb3dlclJpZ2h0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKHVwcGVyUmlnaHRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcml2ZXRlZFJpbmdJZCAiaXYyciIgKChpckwyeERlbHRhICsgaXYyckVuYyk6KGlyTDJ5RGVsdGEgKyBpdjJyRW5jKSkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAoaXJMMncgLSAoMi4wICogaXYyckVuYykpKSBsaXN0KCJsIiAiZmxvYXQiIChpckwybCAtICgyLjAgKiBpdjJyRW5jKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTJMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTJXaWR0aElSIHZpYTJXaWR0aCkpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMldpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTJTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB2aWEyQkwgbG93ZXJMZWZ0QkwpKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTJCTCB1cHBlckxlZnRCTCkpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMkJMIGxvd2VyUmlnaHRCTCkpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMkJMIHVwcGVyUmlnaHRCTCkpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTJncmlkKSkpIGlmKChpbm5lclJpbmdNZXRhbFdpZHRoID4gMC4wKSB0aGVuIChpckwzdyA9IGlyTDJ3KSAoaXJMM2wgPSBpckwybCkgKGlyTDN4RGVsdGEgPSBpckwyeERlbHRhKSAoaXJMM3lEZWx0YSA9IGlyTDJ5RGVsdGEpIChpckwzcmluZ1cgPSBtYXgoKCgyLjAgKiBpckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSBpbm5lclJpbmdNZXRhbFdpZHRoKSkgZWxzZSAoaXJMM3cgPSAoaXJMMncgKyAoLTIuMCAqIGl2MnJFbmMpICsgKDIuMCAqIGlyTGF5ZXIzRW5jVmlhMikpKSAoaXJMM2wgPSAoaXJMMmwgKyAoLTIuMCAqIGl2MnJFbmMpICsgKDIuMCAqIGlyTGF5ZXIzRW5jVmlhMikpKSAoaXJMM3hEZWx0YSA9IChpckwyeERlbHRhICsgaXYyckVuYyArICgtIGlyTGF5ZXIzRW5jVmlhMikpKSAoaXJMM3lEZWx0YSA9IChpckwyeURlbHRhICsgaXYyckVuYyArICgtIGlyTGF5ZXIzRW5jVmlhMikpKSAoaXJMM3JpbmdXID0gKCgyLjAgKiBpckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9IGlyTDNyaW5nVykgKHVwcGVyTGVmdEJMID0gaXJMM3JpbmdXKSAobG93ZXJSaWdodEJMID0gaXJMM3JpbmdXKSAodXBwZXJSaWdodEJMID0gaXJMM3JpbmdXKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgImlsM3IiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlyTDN3KSBsaXN0KCJsIiAiZmxvYXQiIGlyTDNsKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlyTDN4RGVsdGEpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaXJMM3lEZWx0YSkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgaXJMM3JpbmdXKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheWVyM2dyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iIHQpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQxID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJpZDIgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYmlkMyA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiaWQ0ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkMSBpck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDIgaXJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQzIGlyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkNCBpck5ldCkpIChwaW4gPSAoZGJDcmVhdGVQaW4gaXJOZXQgZGJpZDEpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluID0gKGRiQ3JlYXRlUGluIGlyTmV0IGRiaWQyKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbiA9IChkYkNyZWF0ZVBpbiBpck5ldCBkYmlkMykpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW4gPSAoZGJDcmVhdGVQaW4gaXJOZXQgZGJpZDQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAodGFwV2lkdGhJbk9SID0gbWF4KG91dGVyUmluZ1RhcFdpZHRoICgoMi4wICogb3V0ZXJSaW5nVGFwRW5jVmlhMSkgKyB2aWExV2lkdGgpKSkgKG91dGVyVGFwRGVsdGEgPSAod2VsbFRhcFNwYWNlICsgd2VsbEVuY1RhcCArIHRhcFdpZHRoSW5PUikpIChvclRhcFhvcmlnaW4gPSAoaXJUYXBYb3JpZ2luIC0gb3V0ZXJUYXBEZWx0YSkpIChvclRhcFlvcmlnaW4gPSAoaXJUYXBZb3JpZ2luIC0gb3V0ZXJUYXBEZWx0YSkpIChvclRhcFcgPSAoaXJUYXBXICsgKDIuMCAqIG91dGVyVGFwRGVsdGEpKSkgKG9yVGFwTCA9IChpclRhcEwgKyAoMi4wICogb3V0ZXJUYXBEZWx0YSkpKSB3aGVuKChsYXllcjMgJiYgZnVsbHlTdHJhcCAmJiAoZnVsbHlTdHJhcCAhPSAiRkFMU0UiKSkgKG9yTGF5ZXIzWG9yaWdpbkEgPSAoaXJMM3hEZWx0YSAtIG9yaXJMYXllcjNTcGFjZSAtIG9yTGF5ZXIzV2lkdGgpKSAob3JMYXllcjNYb3JpZ2luQiA9IChvclRhcFhvcmlnaW4gKyAodGFwV2lkdGhJbk9SIC8gMi4wKSArIChvckxheWVyM1dpZHRoIC8gLTIuMCkpKSB3aGVuKChvckxheWVyM1hvcmlnaW5BIDwgb3JMYXllcjNYb3JpZ2luQikgKGV4dHJhU3BhY2UgPSAob3JMYXllcjNYb3JpZ2luQiAtIG9yTGF5ZXIzWG9yaWdpbkEpKSAodGVtcFNpemUgPSAoZXh0cmFTcGFjZSAvIHRhcEdyaWQpKSAoZXh0cmFTcGFjZSA9IChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIHRhcEdyaWQpKSAob3JUYXBYb3JpZ2luID0gKG9yVGFwWG9yaWdpbiAtIGV4dHJhU3BhY2UpKSAob3JUYXBZb3JpZ2luID0gKG9yVGFwWW9yaWdpbiAtIGV4dHJhU3BhY2UpKSAob3JUYXBXID0gKG9yVGFwVyArICgyLjAgKiBleHRyYVNwYWNlKSkpIChvclRhcEwgPSAob3JUYXBMICsgKDIuMCAqIGV4dHJhU3BhY2UpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib3dyIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAob3JUYXBXICsgKDIuMCAqIHdlbGxFbmNUYXApKSkgbGlzdCgibCIgImZsb2F0IiAob3JUYXBMICsgKDIuMCAqIHdlbGxFbmNUYXApKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiAob3JUYXBYb3JpZ2luIC0gd2VsbEVuY1RhcCkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgKG9yVGFwWW9yaWdpbiAtIHdlbGxFbmNUYXApKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiAodGFwV2lkdGhJbk9SICsgKDIuMCAqIHdlbGxFbmNUYXApKSkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIHdlbGxHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQxID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHdlbGxMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJpZDIgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgd2VsbExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYmlkMyA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB3ZWxsTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiaWQ0ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHdlbGxMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSBpZih0YXBFZGdlc0F0NDUgdGhlbiAoYmV2ZWxMZW5ndGggPSAoMC42ICogdGFwV2lkdGhJbk9SKSkgKGJldmVsTGVuZ3RoID0gKHJvdW5kKCgoYmV2ZWxMZW5ndGggLyB0YXBHcmlkKSArIDAuMDAxKSkgKiB0YXBHcmlkKSkgKGxvd2VyTGVmdEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlckxlZnRCTCA9IGJldmVsTGVuZ3RoKSAobG93ZXJSaWdodEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlclJpZ2h0QkwgPSBiZXZlbExlbmd0aCkgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJvdHIiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIG9yVGFwVykgbGlzdCgibCIgImZsb2F0IiBvclRhcEwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgb3JUYXBYb3JpZ2luKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIG9yVGFwWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdGFwV2lkdGhJbk9SKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIHRhcEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG9yTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG9yTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG9yTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG9yTmV0KSB3aGVuKHRhcFdlbGxJbXBsYW50IChvdHJpWG9yaWdpbiA9IChvclRhcFhvcmlnaW4gLSB0YXBXZWxsSW1wRW5jKSkgKG90cmlZb3JpZ2luID0gKG9yVGFwWW9yaWdpbiAtIHRhcFdlbGxJbXBFbmMpKSAob3RyaVJpbmdXaWR0aCA9ICh0YXBXaWR0aEluT1IgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChvdHJpVyA9IChvclRhcFcgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChvdHJpTCA9IChvclRhcEwgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJvdHJpIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBvdHJpVykgbGlzdCgibCIgImZsb2F0IiBvdHJpTCkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBvdHJpWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiBvdHJpWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgdGFwV2VsbEltcGxhbnQpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBvdHJpUmluZ1dpZHRoKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIG5pbCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB0YXBHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpKSAob3JWaWFPZmZzZXQgPSAoZml4KCgoKCh0YXBXaWR0aEluT1IgLyAyLjApIC0gKHZpYTFXaWR0aCAvIDIuMCkpIC8gdmlhMWdyaWQpICsgMC45OTkpKSAqIHZpYTFncmlkKSkgKHhDb29yZCA9IChvclRhcFhvcmlnaW4gKyBtYXgob3JWaWFPZmZzZXQgb3V0ZXJSaW5nVGFwRW5jVmlhMSkpKSAoeUNvb3JkID0gKG9yVGFwWW9yaWdpbiArIG1heChvclZpYU9mZnNldCBvdXRlclJpbmdUYXBFbmNWaWExKSkpIChsb3dlckxlZnRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpIHVubGVzcygoZmlsbGVkUmluZ3MgfHwgbGF5ZXIyRWRnZXNBdDQ1IHx8IHRhcEVkZ2VzQXQ0NSkgKGV4dHJhVmlhMVJpZ2h0T3JpZ2luID0gKHhDb29yZCArIChvclRhcEwgLSAoMi4wICogbWF4KG9yVmlhT2Zmc2V0IG91dGVyUmluZ1RhcEVuY1ZpYTEpKSkgKyAoLSB2aWExV2lkdGgpKSkgKGV4dHJhVmlhMVRvcE9yaWdpbiA9ICh5Q29vcmQgKyAob3JUYXBXIC0gKDIuMCAqIG1heChvclZpYU9mZnNldCBvdXRlclJpbmdUYXBFbmNWaWExKSkpICsgKC0gdmlhMVdpZHRoKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdChsaXN0KHhDb29yZCB5Q29vcmQpIGxpc3QoKHhDb29yZCArIHZpYTFXaWR0aCkgKHlDb29yZCArIHZpYTFXaWR0aCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QoZXh0cmFWaWExUmlnaHRPcmlnaW4geUNvb3JkKSBsaXN0KChleHRyYVZpYTFSaWdodE9yaWdpbiArIHZpYTFXaWR0aCkgKHlDb29yZCArIHZpYTFXaWR0aCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QoeENvb3JkIGV4dHJhVmlhMVRvcE9yaWdpbikgbGlzdCgoeENvb3JkICsgdmlhMVdpZHRoKSAoZXh0cmFWaWExVG9wT3JpZ2luICsgdmlhMVdpZHRoKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdChleHRyYVZpYTFSaWdodE9yaWdpbiBleHRyYVZpYTFUb3BPcmlnaW4pIGxpc3QoKGV4dHJhVmlhMVJpZ2h0T3JpZ2luICsgdmlhMVdpZHRoKSAoZXh0cmFWaWExVG9wT3JpZ2luICsgdmlhMVdpZHRoKSkpKSkgaWYobGF5ZXIzIHRoZW4gKG9yTGF5ZXIzRW5jVmlhMiA9ICgob3JMYXllcjNXaWR0aCAtIHZpYTJXaWR0aCkgLyAyLjApKSAodGVtcFNpemUgPSAob3JMYXllcjNFbmNWaWEyIC8gbGF5ZXIzZ3JpZCkpIChvckxheWVyM0VuY1ZpYTIgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiBsYXllcjNncmlkKSkgKG91dGVyUmluZ01ldGFsV2lkdGggPSAoKDIuMCAqIG9yTGF5ZXIzRW5jVmlhMikgKyB2aWEyV2lkdGgpKSAob3JMMncgPSAob3JUYXBXICsgKC0gdGFwV2lkdGhJbk9SKSArIG91dGVyUmluZ01ldGFsV2lkdGgpKSAob3JMMmwgPSAob3JUYXBMICsgKC0gdGFwV2lkdGhJbk9SKSArIG91dGVyUmluZ01ldGFsV2lkdGgpKSAob3JMMnhEZWx0YSA9IChvclRhcFhvcmlnaW4gKyAoKHRhcFdpZHRoSW5PUiArICgtIG91dGVyUmluZ01ldGFsV2lkdGgpKSAvIDIuMCkpKSAob3JMMnhEZWx0YSA9IChmaXgoKChvckwyeERlbHRhIC8gbGF5ZXIyZ3JpZCkgKyAwLjk5OSkpICogbGF5ZXIyZ3JpZCkpIChvckwyeURlbHRhID0gKG9yVGFwWW9yaWdpbiArICgodGFwV2lkdGhJbk9SICsgKC0gb3V0ZXJSaW5nTWV0YWxXaWR0aCkpIC8gMi4wKSkpIChvckwyeURlbHRhID0gKGZpeCgoKG9yTDJ5RGVsdGEgLyBsYXllcjJncmlkKSArIDAuOTk5KSkgKiBsYXllcjJncmlkKSkgKG9yTDJyaW5nVyA9IG1heCgoKDIuMCAqIGxheWVyMkVuY1ZpYTEpICsgdmlhMVdpZHRoKSAoKDIuMCAqIGxheWVyMkVuY1ZpYTIpICsgdmlhMldpZHRoKSBvckxheWVyM1dpZHRoKSkgZWxzZSAob3JMMncgPSAob3JUYXBXICsgKC0yLjAgKiBtYXgob3JWaWFPZmZzZXQgb3V0ZXJSaW5nVGFwRW5jVmlhMSkpICsgKDIuMCAqIGxheWVyMkVuY1ZpYTEpKSkgKG9yTDJsID0gKG9yVGFwTCArICgtMi4wICogbWF4KG9yVmlhT2Zmc2V0IG91dGVyUmluZ1RhcEVuY1ZpYTEpKSArICgyLjAgKiBsYXllcjJFbmNWaWExKSkpIChvckwyeERlbHRhID0gKHhDb29yZCArICgtIGxheWVyMkVuY1ZpYTEpKSkgKG9yTDJ5RGVsdGEgPSAoeUNvb3JkICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSAob3JMMnJpbmdXID0gbWF4KCgoMi4wICogbGF5ZXIyRW5jVmlhMSkgKyB2aWExV2lkdGgpICgoMi4wICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyV2lkdGgpKSkpIHVubGVzcyhmaWxsZWRSaW5ncyAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJvdjFyIiAoeENvb3JkOnlDb29yZCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAob3JUYXBXIC0gKDIuMCAqIG1heChvclZpYU9mZnNldCBvdXRlclJpbmdUYXBFbmNWaWExKSkpKSBsaXN0KCJsIiAiZmxvYXQiIChvclRhcEwgLSAoMi4wICogbWF4KG9yVmlhT2Zmc2V0IG91dGVyUmluZ1RhcEVuY1ZpYTEpKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTFMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHZpYTFXaWR0aCkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWExV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMVNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTFncmlkKSkpKSB3aGVuKGZpbGxlZFJpbmdzIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIm92MXIiICgwOjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgKG9yVGFwVyAtICgyLjAgKiBvdXRlclJpbmdUYXBFbmNWaWExKSAtICgyLjAgKiBpbm5lclJpbmdUYXBFbmNWaWExKSkpIGxpc3QoImwiICJmbG9hdCIgKG9yVGFwTCAtICgyLjAgKiBvdXRlclJpbmdUYXBFbmNWaWExKSAtICgyLjAgKiBpbm5lclJpbmdUYXBFbmNWaWExKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgKG9yVGFwWG9yaWdpbiArIG91dGVyUmluZ1RhcEVuY1ZpYTEgKyBpbm5lclJpbmdUYXBFbmNWaWExKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiAob3JUYXBZb3JpZ2luICsgb3V0ZXJSaW5nVGFwRW5jVmlhMSArIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMUxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgKHRhcFdpZHRoSW5PUiAtIG91dGVyUmluZ1RhcEVuY1ZpYTEgLSAoMi4wICogaW5uZXJSaW5nVGFwRW5jVmlhMSkpKSBsaXN0KCJyaXZldFdpZHRoIiAiZmxvYXQiIHZpYTFXaWR0aCkgbGlzdCgicml2ZXRTcGFjZSIgImZsb2F0IiB2aWExU3BhY2UpIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB2aWExZ3JpZCkpKSkgaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gb3JMMnJpbmdXKSAodXBwZXJMZWZ0QkwgPSBvckwycmluZ1cpIChsb3dlclJpZ2h0QkwgPSBvckwycmluZ1cpICh1cHBlclJpZ2h0QkwgPSBvckwycmluZ1cpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib2wyciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwVyAtICgyLjAgKiBvdXRlclJpbmdUYXBFbmNWaWExKSkgb3JMMncpKSBsaXN0KCJsIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcEwgLSAoMi4wICogb3V0ZXJSaW5nVGFwRW5jVmlhMSkpIG9yTDJsKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBYb3JpZ2luICsgb3V0ZXJSaW5nVGFwRW5jVmlhMSkgb3JMMnhEZWx0YSkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwWW9yaWdpbiArIG91dGVyUmluZ1RhcEVuY1ZpYTEpIG9yTDJ5RGVsdGEpKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBsYXllcjIpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAodGFwV2lkdGhJbk9SIC0gb3V0ZXJSaW5nVGFwRW5jVmlhMSkgb3JMMnJpbmdXKSkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiBsYXllcjJncmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQxID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJpZDIgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYmlkMyA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiaWQ0ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkMSBvck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDIgb3JOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQzIG9yTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkNCBvck5ldCkgd2hlbigobGF5ZXIzICYmIGZ1bGx5U3RyYXAgJiYgKGZ1bGx5U3RyYXAgIT0gIkZBTFNFIikpIChvdjJyRW5jID0gKChvckwycmluZ1cgLSB2aWEyV2lkdGgpIC8gMi4wKSkgKHRlbXBTaXplID0gKG92MnJFbmMgLyB2aWEyZ3JpZCkpIChvdjJyRW5jID0gKGZpeCgodGVtcFNpemUgKyAwLjk5OSkpICogdmlhMmdyaWQpKSBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKHVwcGVyTGVmdEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpIChsb3dlclJpZ2h0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKHVwcGVyUmlnaHRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSBlbHNlIChsb3dlckxlZnRCTCA9IHZpYTJTcGFjZSkgKHVwcGVyTGVmdEJMID0gdmlhMlNwYWNlKSAobG93ZXJSaWdodEJMID0gdmlhMlNwYWNlKSAodXBwZXJSaWdodEJMID0gdmlhMlNwYWNlKSkgd2hlbihmaWxsZWRSaW5ncyAodmlhMldpZHRoT1IgPSAob3JMYXllcjNXaWR0aCAtICgyLjAgKiB2aWEyRW5jKSkpICh2aWEyQkwgPSAodmlhMldpZHRoT1IgKyB2aWEyU3BhY2UpKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJvdjJyIiAoMDowKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIChvclRhcFcgLSAoMi4wICogKHZpYTJFbmMgKyBvdXRlclJpbmdUYXBFbmNWaWExKSkpKSBsaXN0KCJsIiAiZmxvYXQiIChvclRhcEwgLSAoMi4wICogKHZpYTJFbmMgKyBvdXRlclJpbmdUYXBFbmNWaWExKSkpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIChvclRhcFhvcmlnaW4gKyBvdXRlclJpbmdUYXBFbmNWaWExICsgdmlhMkVuYykpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgKG9yVGFwWW9yaWdpbiArIG91dGVyUmluZ1RhcEVuY1ZpYTEgKyB2aWEyRW5jKSkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTJMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHZpYTJXaWR0aE9SKSBsaXN0KCJyaXZldFdpZHRoIiAiZmxvYXQiIHZpYTJXaWR0aCkgbGlzdCgicml2ZXRTcGFjZSIgImZsb2F0IiB2aWEyU3BhY2UpIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdmlhMkJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHZpYTJCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiB2aWEyQkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdmlhMkJMKSBsaXN0KCJhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB2aWEyZ3JpZCkpKSkgdW5sZXNzKGZpbGxlZFJpbmdzIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIm92MnIiICgob3JMMnhEZWx0YSArIG92MnJFbmMpOihvckwyeURlbHRhICsgb3YyckVuYykpICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgKG9yTDJ3IC0gKDIuMCAqIG92MnJFbmMpKSkgbGlzdCgibCIgImZsb2F0IiAob3JMMmwgLSAoMi4wICogb3YyckVuYykpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgieU9mZnNldCIgImZsb2F0IiAwLjApIGxpc3QoInJpdmV0TGF5ZXIiICJsaXN0IiB2aWEyTGF5ZXIpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMldpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTJTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB2aWEyZ3JpZCkpKSkgKG9yTDN3ID0gKG9yTDJ3ICsgKC0yLjAgKiBvdjJyRW5jKSArICgyLjAgKiBvckxheWVyM0VuY1ZpYTIpKSkgKG9yTDNsID0gKG9yTDJsICsgKC0yLjAgKiBvdjJyRW5jKSArICgyLjAgKiBvckxheWVyM0VuY1ZpYTIpKSkgKG9yTDN4RGVsdGEgPSAob3JMMnhEZWx0YSArIG92MnJFbmMgKyAoLSBvckxheWVyM0VuY1ZpYTIpKSkgKG9yTDN5RGVsdGEgPSAob3JMMnlEZWx0YSArIG92MnJFbmMgKyAoLSBvckxheWVyM0VuY1ZpYTIpKSkgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gb3JMYXllcjNXaWR0aCkgKHVwcGVyTGVmdEJMID0gb3JMYXllcjNXaWR0aCkgKGxvd2VyUmlnaHRCTCA9IG9yTGF5ZXIzV2lkdGgpICh1cHBlclJpZ2h0QkwgPSBvckxheWVyM1dpZHRoKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgIm9sM3IiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcFcgLSAoMi4wICogb3V0ZXJSaW5nVGFwRW5jVmlhMSkpIG9yTDN3KSkgbGlzdCgibCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBMIC0gKDIuMCAqIG91dGVyUmluZ1RhcEVuY1ZpYTEpKSBvckwzbCkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwWG9yaWdpbiArIG91dGVyUmluZ1RhcEVuY1ZpYTEpIG9yTDN4RGVsdGEpKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcFlvcmlnaW4gKyBvdXRlclJpbmdUYXBFbmNWaWExKSBvckwzeURlbHRhKSkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgb3JMYXllcjNXaWR0aCkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiBsYXllcjNncmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiB0KSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChkYmlkMSA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiaWQyID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJpZDMgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYmlkNCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZDEgb3JOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQyIG9yTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMyBvck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDQgb3JOZXQpKSAocGluID0gKGRiQ3JlYXRlUGluIG9yTmV0IGRiaWQxKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbiA9IChkYkNyZWF0ZVBpbiBvck5ldCBkYmlkMikpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW4gPSAoZGJDcmVhdGVQaW4gb3JOZXQgZGJpZDMpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluID0gKGRiQ3JlYXRlUGluIG9yTmV0IGRiaWQ0KSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikpAChkaWZmTGF5ZXIgZ2F0ZUxheWVyIHJnYXRlTGF5ZXIgd2VsbExheWVyIHRhcExheWVyIHZpYTFMYXllciBsYXllcjIgdmlhMkxheWVyIGxheWVyMyBpZExheWVyIG1heHZMYXllciBodkRpZmZFbmNsb3N1cmUgZGlmZkltcGxhbnQgZGlmZkltcEVuYyBkaWZmQ29yZUltcGxhbnQgZGlmZkNvcmVJbXBFbmMgdGFwV2VsbEltcGxhbnQgdGFwV2VsbEltcEVuYyB0YXBTdWJJbXBsYW50IHRhcFN1YkltcEVuYyBzcmNWaWFHYXRlU3BhY2UgZHJuVmlhR2F0ZVNwYWNlIHZpYUV4dERpZmZZIG1pbkRpZmZUYXBSaW5nU3BhY2UgZmxhcmVZYW1vdW50X2luIGZsYXJlWWFtb3VudCBmbGFyZVlleHRlbnNpb24gdmlhMVdpZHRoIHZpYTFTcGFjZSB0YXBFbmNWaWExIGlubmVyUmluZ1RhcEVuY1ZpYTEgb3V0ZXJSaW5nVGFwRW5jVmlhMSB3ZWxsRW5jVGFwIEVTRG53RW5jVmlhMSBFU0Rud0dhdGVTcCBpbm5lclJpbmdUYXBXaWR0aCBvdXRlclJpbmdUYXBXaWR0aCB3ZWxsVGFwU3BhY2UgbGF5ZXIyRW5jVmlhMSB2aWEyV2lkdGggdmlhMlNwYWNlIHZpYTFWaWEyU3BhY2UgbGF5ZXIyRW5jVmlhMiBsYXllcjJXaWR0aCBsYXllcjNFbmNWaWEyIGxheWVyM1dpZHRoIGlubmVyUmluZ01ldGFsV2lkdGggaXJMYXllcjNFbmNWaWEyIG9yTGF5ZXIzV2lkdGggbWluVyBtYXhXIG1pblRvdGFsVyBnZW5lcmljUmluZ05hbWUgcml2ZXRlZFJpbmdOYW1lIGZsYXJlZEdhdGVOYW1lIGRpZmZHcmlkIHRhcEdyaWQgd2VsbEdyaWQgcG9seUdyaWQgdmlhMWdyaWQgbGF5ZXIyZ3JpZCB2aWEyZ3JpZCBsYXllcjNncmlkIHRhcEVkZ2VzQXQ0NSBsYXllcjJFZGdlc0F0NDUgbGF5ZXIzRWRnZXNBdDQ1IG1vZGVsVGV4dExheWVyIG1vZGVsVGV4dExheWVyU2l6ZSBtb2RlbFRleHQgbW9kZWxXbWF4IG1vZGVsV21pbiBtb2RlbExtYXggbW9kZWxMbWluIGZpbGxlZFJpbmdzIHcgbCBtIGV4dHJhTGVmdFNwYWNlIGV4dHJhUmlnaHRTcGFjZSBzaHJpbmtQZXJjZW50IGV4dHJhU3JjU3BhY2UgZXh0cmFEcm5TcGFjZSBmdWxseVN0cmFwIGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgZHJuVmlhWXNwYWNlUmluZ1ZpYUJvdCB2aWFFeHREaWZmWCBvcmlyTGF5ZXIzU3BhY2UgZ05ldCBzTmV0IGROZXQgaXJOZXQgb3JOZXQgc2NhbGVNdWx0IHZpYTFQb2x5R3JpZCBzaXplQW5kR3JpZCB0aGVTaXplIHRoZUdyaWQgdGVtcFNpemUga2x1ZGdlIHRtcE9yTGF5ZXJXaWR0aCB0bXBPckxheWVyR3JpZCB0bXBWaWFXaWR0aCB0bXBWaWFHcmlkIHZpYTFQaXRjaCB0YXJnZXRSb3dzIHJvd3NPZkNvbnRhY3RzIGZsYXJlZEdhdGVJZCByaW5nSWQgcml2ZXRlZFJpbmdJZCBkaWZmWG9yaWdpbiBkaWZmWW9yaWdpbiB0b3RhbERybkxlbmd0aCB0b3RhbFNyY0xlbmd0aCBkaWZmWGVuZCBkaWZmWWVuZCBFU0Rud1RXaWR0aERybiBFU0Rud1RXaWR0aFNyYyBFU0Rud1RYb3JpZ2luIEVTRG53VFlvcmlnaW4gRVNEbndUWWVuZCBkaWZmWGxvb3AgZGJpZCBzZWN0aW9uIGRybkRpZmZYZW5kIHNyY0RpZmZYZW5kIGh2bGx4IGh2bGx5IGh2dXJ4IGh2dXJ5IGdhdGVYb2Zmc2V0IGdhdGVOdW0gaW5zdCBtYXN0ZXIgbW9kZWxUZXh0WCBtb2RlbFRleHRZIHBpbmlkIHZpYTFYb3JpZ2luIHZpYTFZb3JpZ2luIHZpYTFYZGVsdGEgdGhlTmV0IGxheWVyMkwgbGF5ZXIyTGEgbGF5ZXIyRGVsdGFWaWExIGRlbHRhIHZpYTJQaXRjaCBsYXllcjJXIGxheWVyMldhIHJvd3NPZkNvbnRhY3RzMiBsYXllcjJZRGVsdGFWaWExIGNvbHVtbiB2aWExWGVuZCB2aWExWWxvb3Agcm93IGxheWVyMlhvcmlnaW4gbGF5ZXIyWW9yaWdpbiBsYXllcjJZZW5kIGwyYnZsQ250cmwgdmlhMlhvcmlnaW4gdmlhMlhlbmQgdmlhMllvcmlnaW4gdmlhMllsb29wIGxheWVyM1hvcmlnaW4gbDNidmxDbnRybCB0YXBXaWR0aEluSVIgaXJWaWFPZmZzZXQgaXJUYXBYb3JpZ2luIGlyVGFwWW9yaWdpbiBpclRhcEwgaXJUYXBXIGJldmVsTGVuZ3RoIGxvd2VyTGVmdEJMIHVwcGVyTGVmdEJMIGxvd2VyUmlnaHRCTCB1cHBlclJpZ2h0QkwgdGhlTWFzdGVyIGl0cmlYb3JpZ2luIGl0cmlZb3JpZ2luIGl0cmlSaW5nV2lkdGggaXRyaVcgaXRyaUwgeENvb3JkIHlDb29yZCB2aWExV2lkdGhJbklSIGlyTDJ3IGlyTDJsIGlyTDJ4RGVsdGEgaXJMMnlEZWx0YSBpckwycmluZ1cgZGJpZDEgZGJpZDIgZGJpZDMgZGJpZDQgdmlhMkVuYyB2aWEyV2lkdGhJUiB2aWEyQkwgaXYyckVuYyBpckwzdyBpckwzbCBpckwzeERlbHRhIGlyTDN5RGVsdGEgaXJMM3JpbmdXIHBpbiB0YXBXaWR0aEluT1Igb3V0ZXJUYXBEZWx0YSBvclRhcFhvcmlnaW4gb3JUYXBZb3JpZ2luIG9yVGFwVyBvclRhcEwgb3JMYXllcjNYb3JpZ2luQSBvckxheWVyM1hvcmlnaW5CIGV4dHJhU3BhY2Ugb3RyaVhvcmlnaW4gb3RyaVlvcmlnaW4gb3RyaVJpbmdXaWR0aCBvdHJpVyBvdHJpTCBvclZpYU9mZnNldCBleHRyYVZpYTFSaWdodE9yaWdpbiBleHRyYVZpYTFUb3BPcmlnaW4gb3JMYXllcjNFbmNWaWEyIG91dGVyUmluZ01ldGFsV2lkdGggb3JMMncgb3JMMmwgb3JMMnhEZWx0YSBvckwyeURlbHRhIG9yTDJyaW5nVyBvdjJyRW5jIHZpYTJXaWR0aE9SIG9yTDN3IG9yTDNsIG9yTDN4RGVsdGEgb3JMM3lEZWx0YSkAKCh3IDAuMCkgKGwgMC4wKSAobSAwKSAoZXh0cmFMZWZ0U3BhY2UgMC4wKSAoZXh0cmFSaWdodFNwYWNlIDAuMCkgKHNocmlua1BlcmNlbnQgMC4wKSAoZXh0cmFTcmNTcGFjZSAwLjApIChleHRyYURyblNwYWNlIDAuMCkgKGZ1bGx5U3RyYXAgIkZBTFNFIikgKGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgMC4wKSAoZHJuVmlhWXNwYWNlUmluZ1ZpYUJvdCAwLjApICh2aWFFeHREaWZmWCAwLjApIChvcmlyTGF5ZXIzU3BhY2UgMC4wKSkAKChkaWZmTGF5ZXIgInkwIikgKGdhdGVMYXllciAieTEiKSAocmdhdGVMYXllciAieTIiKSAod2VsbExheWVyICJ5MyIpICh0YXBMYXllciAieTQiKSAodmlhMUxheWVyICJ5NSIpIChsYXllcjIgInk2IikgKHZpYTJMYXllciAieTciKSAobGF5ZXIzICJ5OCIpIChpZExheWVyICJ5OSIpIChtYXh2TGF5ZXIgbmlsKSAoaHZEaWZmRW5jbG9zdXJlIDAuMCkgKGRpZmZJbXBsYW50IG5pbCkgKGRpZmZJbXBFbmMgMC4wKSAoZGlmZkNvcmVJbXBsYW50IG5pbCkgKGRpZmZDb3JlSW1wRW5jIDAuMCkgKHRhcFdlbGxJbXBsYW50IG5pbCkgKHRhcFdlbGxJbXBFbmMgMC4wKSAodGFwU3ViSW1wbGFudCBuaWwpICh0YXBTdWJJbXBFbmMgMC4wKSAoc3JjVmlhR2F0ZVNwYWNlIDAuMCkgKGRyblZpYUdhdGVTcGFjZSAwLjApICh2aWFFeHREaWZmWSAwLjApIChtaW5EaWZmVGFwUmluZ1NwYWNlIDAuMCkgKGZsYXJlWWFtb3VudF9pbiAwLjApIChmbGFyZVlhbW91bnQgMC4wKSAoZmxhcmVZZXh0ZW5zaW9uIDAuMCkgKHZpYTFXaWR0aCAwLjApICh2aWExU3BhY2UgMC4wKSAodGFwRW5jVmlhMSAwLjApIChpbm5lclJpbmdUYXBFbmNWaWExIDAuMCkgKG91dGVyUmluZ1RhcEVuY1ZpYTEgMC4wKSAod2VsbEVuY1RhcCAwLjApIChFU0Rud0VuY1ZpYTEgMC4wKSAoRVNEbndHYXRlU3AgMC4wKSAoaW5uZXJSaW5nVGFwV2lkdGggMC4wKSAob3V0ZXJSaW5nVGFwV2lkdGggMC4wKSAod2VsbFRhcFNwYWNlIDAuMCkgKGxheWVyMkVuY1ZpYTEgMC4wKSAodmlhMldpZHRoIDAuMCkgKHZpYTJTcGFjZSAwLjApICh2aWExVmlhMlNwYWNlIDAuMCkgKGxheWVyMkVuY1ZpYTIgMC4wKSAobGF5ZXIyV2lkdGggMC4wKSAobGF5ZXIzRW5jVmlhMiAwLjApIChsYXllcjNXaWR0aCAwLjApIChpbm5lclJpbmdNZXRhbFdpZHRoIDAuMCkgKGlyTGF5ZXIzRW5jVmlhMiAwLjApIChvckxheWVyM1dpZHRoIDAuMCkgKG1pblcgMC4wKSAobWF4VyAwLjApIChtaW5Ub3RhbFcgMC4wKSAoZ2VuZXJpY1JpbmdOYW1lICJyaW5nIikgKHJpdmV0ZWRSaW5nTmFtZSAicml2ZXRSaW5nIikgKGZsYXJlZEdhdGVOYW1lICJmbGFyZWRHYXRlIikgKGRpZmZHcmlkIDAuMCkgKHRhcEdyaWQgMC4wKSAod2VsbEdyaWQgMC4wKSAocG9seUdyaWQgMC4wKSAodmlhMWdyaWQgMC4wKSAobGF5ZXIyZ3JpZCAwLjApICh2aWEyZ3JpZCAwLjApIChsYXllcjNncmlkIDAuMCkgKHRhcEVkZ2VzQXQ0NSBuaWwpIChsYXllcjJFZGdlc0F0NDUgbmlsKSAobGF5ZXIzRWRnZXNBdDQ1IG5pbCkgKG1vZGVsVGV4dExheWVyIGxpc3QoImhpbGl0ZSIgImRyYXdpbmciKSkgKG1vZGVsVGV4dExheWVyU2l6ZSAwLjIpIChtb2RlbFRleHQgIiIpIChtb2RlbFdtYXggMC4wKSAobW9kZWxXbWluIDAuMCkgKG1vZGVsTG1heCAwLjApIChtb2RlbExtaW4gMC4wKSAoZmlsbGVkUmluZ3MgbmlsKSkAKChkaWZmSW1wYW50T1JsYXllciA9IGRpZmZJbXBsYW50KSAoY3JlYXRlZEltcGxhbnQxID0gbGlzdCgpKSAoY3JlYXRlZEltcGxhbnREaWZmID0gbGlzdCgpKSBpZigod2VsbExheWVyICYmIGRpZmZJbXBsYW50KSB0aGVuIChPUmxheWVyU2l6ZSA9IChkaWZmSW1wRW5jIC0gd2VsbEVuY0RpZmYpKSBlbHNlIChPUmxheWVyU2l6ZSA9IDAuMCkpICh3ZWxsRW5jWURpZmYgPSAwLjApIHdoZW4oKHdlbGxMYXllcldpZHRoICE9IDAuMCkgKHdlbGxXaWR0aCA9ICgobWF4KHdlbGxFbmNEaWZmIHdlbGxFbmNUYXApICogMikgKyB3KSkgaWYoKHdlbGxXaWR0aCA8IHdlbGxMYXllcldpZHRoKSB0aGVuICh3ZWxsRW5jWURpZmYgPSBhYnMoKG1heCh3ZWxsRW5jRGlmZiB3ZWxsRW5jVGFwKSAtICgod2VsbExheWVyV2lkdGggLSB3KSAvIDIpKSkpKSkgaWYoKChpbXBsYW50ID09IHQpIHx8IChpbXBsYW50ID09ICJUUlVFIikpIHRoZW4gKGltcGxhbnQgPSB0KSBlbHNlIChpbXBsYW50ID0gbmlsKSkgaWYoKChkcmF3SURieURlZmF1bHQgPT0gdCkgfHwgKGRyYXdJRGJ5RGVmYXVsdCA9PSAiVFJVRSIpKSB0aGVuIChkcmF3SURieURlZmF1bHQgPSB0KSBlbHNlIChkcmF3SURieURlZmF1bHQgPSBuaWwpKSBpZigoKGlkQ2hvaWNlID09IHQpIHx8IChpZENob2ljZSA9PSAiVFJVRSIpKSB0aGVuIChpZENob2ljZSA9IHQpIGVsc2UgKGlkQ2hvaWNlID0gbmlsKSkgaWYoKChub0VuZENvbkltcEVuYyA9PSB0KSB8fCAobm9FbmRDb25JbXBFbmMgPT0gIlRSVUUiKSkgdGhlbiAobm9FbmRDb25JbXBFbmMgPSB0KSBlbHNlIChub0VuZENvbkltcEVuYyA9IG5pbCkpIGlmKCghaWRMYXllciB8fCAoaWRMYXllciA9PSAibm9uZSIpIHx8IChpZExheWVyID09ICJuaWwiKSB8fCAoaWRMYXllciA9PSAiRkFMU0UiKSkgdGhlbiAoaWRMYXllciA9IG5pbCkpIGlmKCgoc291cmNlRmlyc3QgPT0gdCkgfHwgKHNvdXJjZUZpcnN0ID09ICJUUlVFIikpIHRoZW4gKHNvdXJjZUZpcnN0ID0gdCkgZWxzZSAoc291cmNlRmlyc3QgPSBuaWwpKSBpZigoKGlkRW5jRGlmZiA9PSB0KSB8fCAoaWRFbmNEaWZmID09ICJUUlVFIikpIHRoZW4gKGlkRW5jRGlmZiA9IHQpIGVsc2UgKGlkRW5jRGlmZiA9IG5pbCkpIGlmKChnYXRlRXh0IDwgMC4wKSBlcnJvcigibU5vcm1UcmFuSW1wQ2xhc3M6IGdhdGVFeHQgKCVnKSBtdXN0IGJlID4gMFxuIiBnYXRlRXh0KSkgKGdOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiZyIpKSAoZGJDcmVhdGVUZXJtIGdOZXQgImciICJpbnB1dCIpIChzTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgInMiKSkgKGRiQ3JlYXRlVGVybSBzTmV0ICJzIiAiaW5wdXRPdXRwdXQiKSAoZE5ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJkIikpIChkYkNyZWF0ZVRlcm0gZE5ldCAiZCIgImlucHV0T3V0cHV0IikgKGJOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiYiIpKSAoZGJDcmVhdGVUZXJtIGJOZXQgImIiICJpbnB1dE91dHB1dCIpIGlmKHNvdXJjZUZpcnN0IHRoZW4gKGNOZXQgPSBzTmV0KSAobmV0TCA9ICJTIikgZWxzZSAoY05ldCA9IGROZXQpIChuZXRMID0gIkQiKSkgd2hlbigobSA8IDEpIChtID0gMSkpIHdoZW4oZGlmZkltcENob2ljZXMgdW5sZXNzKChkaWZmSW1wRW5jICYmIGxpc3RwKGRpZmZJbXBFbmMpICYmIChsZW5ndGgoZGlmZkltcEVuYykgPT0gbGVuZ3RoKGRpZmZJbXBDaG9pY2VzKSkpIGVycm9yKCJkaWZmSW1wRW5jIHNob3VsZCBiZSBhIGxpc3QgbWF0Y2hpbmcgZGlmZkltcENob2ljZXMiKSkgKGkgPSBsZW5ndGgoKG1lbWJlcihkaWZmSW1wQ2hvaWNlIGRpZmZJbXBDaG9pY2VzKSB8fCBkaWZmSW1wQ2hvaWNlcykpKSAoZGlmZk1hdGNoID0gKGxlbmd0aChkaWZmSW1wQ2hvaWNlcykgLSBpKSkgKGRpZmZJbXBFbmMgPSBudGgoZGlmZk1hdGNoIGRpZmZJbXBFbmMpKSkgd2hlbih0YXBJbXBDaG9pY2VzIChpID0gbGVuZ3RoKChtZW1iZXIodGFwSW1wQ2hvaWNlIHRhcEltcENob2ljZXMpIHx8IHRhcEltcENob2ljZXMpKSkgKHRhcE1hdGNoID0gKGxlbmd0aCh0YXBJbXBDaG9pY2VzKSAtIGkpKSkgd2hlbihjb250YWN0Q2hvaWNlcyBjb25kKCgoY29udGFjdENob2ljZSA9PSAidGFwIikgKGRpZmZDb25QYXJhbSA9IGxpc3QoIm5vRGlmZkNvbnRhY3QiICJib29sZWFuIiB0KSkpICgoY29udGFjdENob2ljZSA9PSAiYm90aCIpIChkaWZmQ29uUGFyYW0gPSBsaXN0KCJub0RpZmZDb250YWN0IiAiYm9vbGVhbiIgIkZBTFNFIikpKSAodCAoZGlmZkNvblBhcmFtID0gbGlzdCgibm9EaWZmQ29udGFjdCIgImJvb2xlYW4iICJGQUxTRSIpKSkpKSAoeCA9IG5pbCkgaWYobGlzdHAoY2FyKGlkTGF5ZXJDaG9pY2VzKSkgdGhlbiBtYXBjYXIobGFtYmRhKCh4KSBpZigoY2FyKHgpID09IGlkTGF5ZXIpIHRoZW4gKGlkTGF5ZXIgPSBjYWRyKHgpKSAoaWRFbmNMaXN0ID0gY2FkZHIoeCkpIGlmKChpZEVuY0xpc3QgJiYgbGlzdHAoaWRFbmNMaXN0KSkgdGhlbiAoaWRFbmNYTCA9IG50aCgwIGlkRW5jTGlzdCkpIChpZEVuY1hSID0gbnRoKDEgaWRFbmNMaXN0KSkgKGlkRW5jWSA9IG50aCgyIGlkRW5jTGlzdCkpKSAoaWRFbmNEaWZmID0gY2FkZGRyKHgpKSkpIGlkTGF5ZXJDaG9pY2VzKSkgd2hlbigoZmlyc3RDb250YWN0ICE9ICIiKSAoY29udGFjdEYgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZmlyc3RDb250YWN0ICJzeW1ib2xpYyIgbmlsICJybiIpKSkgd2hlbigobGFzdENvbnRhY3QgIT0gIiIpIChjb250YWN0TCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBsYXN0Q29udGFjdCAic3ltYm9saWMiIG5pbCAicm4iKSkpIHdoZW4oKHNoYXJlZERyYWluICE9ICIiKSAoY29udGFjdEQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgc2hhcmVkRHJhaW4gInN5bWJvbGljIiBuaWwgInJuIikpKSB3aGVuKChzaGFyZWRTb3VyY2UgIT0gIiIpIChjb250YWN0UyA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBzaGFyZWRTb3VyY2UgInN5bWJvbGljIiBuaWwgInJuIikpKSAodmlhMVhDcmRGID0gaWYoKGNvbnRhY3RGfj5iQm94VmlhMSkgYWJzKGNhYXIoKGNvbnRhY3RGfj5iQm94VmlhMSkpKSBuaWwpKSAobGF5ZXIyWENyZEYgPSBpZigoY29udGFjdEZ+PmJCb3hMYXllcjIpIGFicyhjYWFyKChjb250YWN0Rn4+YkJveExheWVyMikpKSBuaWwpKSAodmlhMlhDcmRGID0gaWYoKGNvbnRhY3RGfj5iQm94VmlhMikgYWJzKGNhYXIoKGNvbnRhY3RGfj5iQm94VmlhMikpKSBuaWwpKSAobGF5ZXIzWENyZEYgPSBpZigoY29udGFjdEZ+PmJCb3hMYXllcjMpIGFicyhjYWFyKChjb250YWN0Rn4+YkJveExheWVyMykpKSBuaWwpKSAobGF5ZXIxWENyZEYgPSBpZigoY29udGFjdEZ+PmRpZmZMYXllckJib3gpIGFicyhjYWFyKChjb250YWN0Rn4+ZGlmZkxheWVyQmJveCkpKSBuaWwpKSAodmlhMVhDcmRMID0gaWYoKGNvbnRhY3RMfj5iQm94VmlhMSkgYWJzKGNhYXIoKGNvbnRhY3RMfj5iQm94VmlhMSkpKSBuaWwpKSAobGF5ZXIyWENyZEwgPSBpZigoY29udGFjdEx+PmJCb3hMYXllcjIpIGFicyhjYWFyKChjb250YWN0TH4+YkJveExheWVyMikpKSBuaWwpKSAodmlhMlhDcmRMID0gaWYoKGNvbnRhY3RMfj5iQm94VmlhMikgYWJzKGNhYXIoKGNvbnRhY3RMfj5iQm94VmlhMikpKSBuaWwpKSAobGF5ZXIzWENyZEwgPSBpZigoY29udGFjdEx+PmJCb3hMYXllcjMpIGFicyhjYWFyKChjb250YWN0TH4+YkJveExheWVyMykpKSBuaWwpKSAobGF5ZXIxWENyZEwgPSBpZigoY29udGFjdEx+PmRpZmZMYXllckJib3gpIGFicyhjYWFyKChjb250YWN0TH4+ZGlmZkxheWVyQmJveCkpKSBuaWwpKSAodmlhMVhDcmRTID0gaWYoKGNvbnRhY3RTfj5iQm94VmlhMSkgYWJzKGNhYXIoKGNvbnRhY3RTfj5iQm94VmlhMSkpKSBuaWwpKSAobGF5ZXIyWENyZFMgPSBpZigoY29udGFjdFN+PmJCb3hMYXllcjIpIGFicyhjYWFyKChjb250YWN0U34+YkJveExheWVyMikpKSBuaWwpKSAodmlhMlhDcmRTID0gaWYoKGNvbnRhY3RTfj5iQm94VmlhMikgYWJzKGNhYXIoKGNvbnRhY3RTfj5iQm94VmlhMikpKSBuaWwpKSAobGF5ZXIzWENyZFMgPSBpZigoY29udGFjdFN+PmJCb3hMYXllcjMpIGFicyhjYWFyKChjb250YWN0U34+YkJveExheWVyMykpKSBuaWwpKSAobGF5ZXIxWENyZFMgPSBpZigoY29udGFjdFN+PmRpZmZMYXllckJib3gpIGFicyhjYWFyKChjb250YWN0U34+ZGlmZkxheWVyQmJveCkpKSBuaWwpKSAodmlhMVhDcmREID0gaWYoKGNvbnRhY3REfj5iQm94VmlhMSkgYWJzKGNhYXIoKGNvbnRhY3REfj5iQm94VmlhMSkpKSBuaWwpKSAobGF5ZXIyWENyZEQgPSBpZigoY29udGFjdER+PmJCb3hMYXllcjIpIGFicyhjYWFyKChjb250YWN0RH4+YkJveExheWVyMikpKSBuaWwpKSAodmlhMlhDcmREID0gaWYoKGNvbnRhY3REfj5iQm94VmlhMikgYWJzKGNhYXIoKGNvbnRhY3REfj5iQm94VmlhMikpKSBuaWwpKSAobGF5ZXIzWENyZEQgPSBpZigoY29udGFjdER+PmJCb3hMYXllcjMpIGFicyhjYWFyKChjb250YWN0RH4+YkJveExheWVyMykpKSBuaWwpKSAobGF5ZXIxWENyZEQgPSBpZigoY29udGFjdER+PmRpZmZMYXllckJib3gpIGFicyhjYWFyKChjb250YWN0RH4+ZGlmZkxheWVyQmJveCkpKSBuaWwpKSBpZigobGF5ZXIxWENyZEYgJiYgdmlhMVhDcmRGKSB0aGVuICh2aWExRW5jRiA9IGFicygobGF5ZXIxWENyZEYgLSB2aWExWENyZEYpKSkpIGlmKChsYXllcjFYQ3JkRiAmJiB2aWEyWENyZEYpIHRoZW4gKHZpYTJFbmNGID0gYWJzKChsYXllcjFYQ3JkRiAtIHZpYTJYQ3JkRikpKSkgaWYoKGxheWVyMVhDcmRGICYmIGxheWVyMlhDcmRGKSB0aGVuIChsYXllcjJFbmNGID0gYWJzKChsYXllcjFYQ3JkRiAtIGxheWVyMlhDcmRGKSkpKSBpZigobGF5ZXIxWENyZEYgJiYgbGF5ZXIzWENyZEYpIHRoZW4gKGxheWVyM0VuY0YgPSBhYnMoKGxheWVyMVhDcmRGIC0gbGF5ZXIzWENyZEYpKSkpIGlmKChsYXllcjFYQ3JkTCAmJiB2aWExWENyZEwpIHRoZW4gKHZpYTFFbmNMID0gYWJzKChsYXllcjFYQ3JkTCAtIHZpYTFYQ3JkTCkpKSkgaWYoKGxheWVyMVhDcmRMICYmIHZpYTJYQ3JkTCkgdGhlbiAodmlhMkVuY0wgPSBhYnMoKGxheWVyMVhDcmRMIC0gdmlhMlhDcmRMKSkpKSBpZigobGF5ZXIxWENyZEwgJiYgbGF5ZXIyWENyZEwpIHRoZW4gKGxheWVyMkVuY0wgPSBhYnMoKGxheWVyMVhDcmRMIC0gbGF5ZXIyWENyZEwpKSkpIGlmKChsYXllcjFYQ3JkTCAmJiBsYXllcjNYQ3JkTCkgdGhlbiAobGF5ZXIzRW5jTCA9IGFicygobGF5ZXIxWENyZEwgLSBsYXllcjNYQ3JkTCkpKSkgaWYoKGxheWVyMVhDcmRTICYmIHZpYTFYQ3JkUykgdGhlbiAodmlhMUVuY1MgPSBhYnMoKGxheWVyMVhDcmRTIC0gdmlhMVhDcmRTKSkpKSBpZigobGF5ZXIxWENyZFMgJiYgdmlhMlhDcmRTKSB0aGVuICh2aWEyRW5jUyA9IGFicygobGF5ZXIxWENyZFMgLSB2aWEyWENyZFMpKSkpIGlmKChsYXllcjFYQ3JkUyAmJiBsYXllcjJYQ3JkUykgdGhlbiAobGF5ZXIyRW5jUyA9IGFicygobGF5ZXIxWENyZFMgLSBsYXllcjJYQ3JkUykpKSkgaWYoKGxheWVyMVhDcmRTICYmIGxheWVyM1hDcmRTKSB0aGVuIChsYXllcjNFbmNTID0gYWJzKChsYXllcjFYQ3JkUyAtIGxheWVyM1hDcmRTKSkpKSBpZigobGF5ZXIxWENyZEQgJiYgdmlhMVhDcmREKSB0aGVuICh2aWExRW5jRCA9IGFicygobGF5ZXIxWENyZEQgLSB2aWExWENyZEQpKSkpIGlmKChsYXllcjFYQ3JkRCAmJiB2aWEyWENyZEQpIHRoZW4gKHZpYTJFbmNEID0gYWJzKChsYXllcjFYQ3JkRCAtIHZpYTJYQ3JkRCkpKSkgaWYoKGxheWVyMVhDcmREICYmIGxheWVyMlhDcmREKSB0aGVuIChsYXllcjJFbmNEID0gYWJzKChsYXllcjFYQ3JkRCAtIGxheWVyMlhDcmREKSkpKSBpZigobGF5ZXIxWENyZEQgJiYgbGF5ZXIzWENyZEQpIHRoZW4gKGxheWVyM0VuY0QgPSBhYnMoKGxheWVyMVhDcmREIC0gbGF5ZXIzWENyZEQpKSkpIGlmKCh2aWExRW5jRiAmJiB2aWExRW5jTCkgdGhlbiAodmlhMVNwYWNlRkwgPSAodmlhMUVuY0YgKyB2aWExRW5jTCArIGwpKSAodmlhMU9mZlNldEZMID0gKHZpYTFNaW5TcGFjZSAtIHZpYTFTcGFjZUZMKSkgZWxzZSAodmlhMU9mZlNldEZMID0gMC4wKSkgaWYoKHZpYTJFbmNGICYmIHZpYTJFbmNMKSB0aGVuICh2aWEyU3BhY2VGTCA9ICh2aWEyRW5jRiArIHZpYTJFbmNMICsgbCkpICh2aWEyT2ZmU2V0RkwgPSAodmlhMk1pblNwYWNlIC0gdmlhMlNwYWNlRkwpKSBlbHNlICh2aWEyT2ZmU2V0RkwgPSAwLjApKSBpZigobGF5ZXIzRW5jRiAmJiBsYXllcjNFbmNMKSB0aGVuIChsYXllcjNTcGFjZUZMID0gKGxheWVyM0VuY0YgKyBsYXllcjNFbmNMICsgbCkpIChsYXllcjNPZmZTZXRGTCA9IChsYXllcjNNaW5TcGFjZSAtIGxheWVyM1NwYWNlRkwpKSBlbHNlIChsYXllcjNPZmZTZXRGTCA9IDAuMCkpIGlmKChsYXllcjJFbmNGICYmIGxheWVyMkVuY0wpIHRoZW4gKGxheWVyMlNwYWNlRkwgPSAobGF5ZXIyRW5jRiArIGxheWVyMkVuY0wgKyBsKSkgKGxheWVyMk9mZlNldEZMID0gKGxheWVyMk1pblNwYWNlIC0gbGF5ZXIyU3BhY2VGTCkpIGVsc2UgKGxheWVyMk9mZlNldEZMID0gMC4wKSkgaWYoKHZpYTFFbmNGICYmIHZpYTFFbmNTKSB0aGVuICh2aWExU3BhY2VGUyA9ICh2aWExRW5jRiArIHZpYTFFbmNTICsgbCkpICh2aWExT2ZmU2V0RlMgPSAodmlhMU1pblNwYWNlIC0gdmlhMVNwYWNlRlMpKSBlbHNlICh2aWExT2ZmU2V0RlMgPSAwLjApKSBpZigodmlhMkVuY0YgJiYgdmlhMkVuY1MpIHRoZW4gKHZpYTJTcGFjZUZTID0gKHZpYTJFbmNGICsgdmlhMkVuY1MgKyBsKSkgKHZpYTJPZmZTZXRGUyA9ICh2aWEyTWluU3BhY2UgLSB2aWEyU3BhY2VGUykpIGVsc2UgKHZpYTJPZmZTZXRGUyA9IDAuMCkpIGlmKChsYXllcjNFbmNGICYmIGxheWVyM0VuY1MpIHRoZW4gKGxheWVyM1NwYWNlRlMgPSAobGF5ZXIzRW5jRiArIGxheWVyM0VuY1MgKyBsKSkgKGxheWVyM09mZlNldEZTID0gKGxheWVyM01pblNwYWNlIC0gbGF5ZXIzU3BhY2VGUykpIGVsc2UgKGxheWVyM09mZlNldEZTID0gMC4wKSkgaWYoKGxheWVyMkVuY0YgJiYgbGF5ZXIyRW5jUykgdGhlbiAobGF5ZXIyU3BhY2VGUyA9IChsYXllcjJFbmNGICsgbGF5ZXIyRW5jUyArIGwpKSAobGF5ZXIyT2ZmU2V0RlMgPSAobGF5ZXIyTWluU3BhY2UgLSBsYXllcjJTcGFjZUZTKSkgZWxzZSAobGF5ZXIyT2ZmU2V0RlMgPSAwLjApKSBpZigodmlhMUVuY0YgJiYgdmlhMUVuY0QpIHRoZW4gKHZpYTFTcGFjZUZEID0gKHZpYTFFbmNGICsgdmlhMUVuY0QgKyBsKSkgKHZpYTFPZmZTZXRGRCA9ICh2aWExTWluU3BhY2UgLSB2aWExU3BhY2VGRCkpIGVsc2UgKHZpYTFPZmZTZXRGRCA9IDAuMCkpIGlmKCh2aWEyRW5jRiAmJiB2aWEyRW5jRCkgdGhlbiAodmlhMlNwYWNlRkQgPSAodmlhMkVuY0YgKyB2aWEyRW5jRCArIGwpKSAodmlhMk9mZlNldEZEID0gKHZpYTJNaW5TcGFjZSAtIHZpYTJTcGFjZUZEKSkgZWxzZSAodmlhMk9mZlNldEZEID0gMC4wKSkgaWYoKGxheWVyM0VuY0YgJiYgbGF5ZXIzRW5jRCkgdGhlbiAobGF5ZXIzU3BhY2VGRCA9IChsYXllcjNFbmNGICsgbGF5ZXIzRW5jRCArIGwpKSAobGF5ZXIzT2ZmU2V0RkQgPSAobGF5ZXIzTWluU3BhY2UgLSBsYXllcjNTcGFjZUZEKSkgZWxzZSAobGF5ZXIzT2ZmU2V0RkQgPSAwLjApKSBpZigobGF5ZXIyRW5jRiAmJiBsYXllcjJFbmNEKSB0aGVuIChsYXllcjJTcGFjZUZEID0gKGxheWVyMkVuY0YgKyBsYXllcjJFbmNEICsgbCkpIChsYXllcjJPZmZTZXRGRCA9IChsYXllcjJNaW5TcGFjZSAtIGxheWVyMlNwYWNlRkQpKSBlbHNlIChsYXllcjJPZmZTZXRGRCA9IDAuMCkpIGlmKCh2aWExRW5jTCAmJiB2aWExRW5jUykgdGhlbiAodmlhMVNwYWNlTFMgPSAodmlhMUVuY0wgKyB2aWExRW5jUyArIGwpKSAodmlhMU9mZlNldExTID0gKHZpYTFNaW5TcGFjZSAtIHZpYTFTcGFjZUxTKSkgZWxzZSAodmlhMU9mZlNldExTID0gMC4wKSkgaWYoKHZpYTJFbmNMICYmIHZpYTJFbmNTKSB0aGVuICh2aWEyU3BhY2VMUyA9ICh2aWEyRW5jTCArIHZpYTJFbmNTICsgbCkpICh2aWEyT2ZmU2V0TFMgPSAodmlhMk1pblNwYWNlIC0gdmlhMlNwYWNlTFMpKSBlbHNlICh2aWEyT2ZmU2V0TFMgPSAwLjApKSBpZigobGF5ZXIzRW5jTCAmJiBsYXllcjNFbmNTKSB0aGVuIChsYXllcjNTcGFjZUxTID0gKGxheWVyM0VuY0wgKyBsYXllcjNFbmNTICsgbCkpIChsYXllcjNPZmZTZXRMUyA9IChsYXllcjNNaW5TcGFjZSAtIGxheWVyM1NwYWNlTFMpKSBlbHNlIChsYXllcjNPZmZTZXRMUyA9IDAuMCkpIGlmKChsYXllcjJFbmNMICYmIGxheWVyMkVuY1MpIHRoZW4gKGxheWVyMlNwYWNlTFMgPSAobGF5ZXIyRW5jTCArIGxheWVyMkVuY1MgKyBsKSkgKGxheWVyMk9mZlNldExTID0gKGxheWVyMk1pblNwYWNlIC0gbGF5ZXIyU3BhY2VMUykpIGVsc2UgKGxheWVyMk9mZlNldExTID0gMC4wKSkgaWYoKHZpYTFFbmNMICYmIHZpYTFFbmNEKSB0aGVuICh2aWExU3BhY2VMRCA9ICh2aWExRW5jTCArIHZpYTFFbmNEICsgbCkpICh2aWExT2ZmU2V0TEQgPSAodmlhMU1pblNwYWNlIC0gdmlhMVNwYWNlTEQpKSBlbHNlICh2aWExT2ZmU2V0TEQgPSAwLjApKSBpZigodmlhMkVuY0wgJiYgdmlhMkVuY0QpIHRoZW4gKHZpYTJTcGFjZUxEID0gKHZpYTJFbmNMICsgdmlhMkVuY0QgKyBsKSkgKHZpYTJPZmZTZXRMRCA9ICh2aWEyTWluU3BhY2UgLSB2aWEyU3BhY2VMRCkpIGVsc2UgKHZpYTJPZmZTZXRMRCA9IDAuMCkpIGlmKChsYXllcjNFbmNMICYmIGxheWVyM0VuY0QpIHRoZW4gKGxheWVyM1NwYWNlTEQgPSAobGF5ZXIzRW5jTCArIGxheWVyM0VuY0QgKyBsKSkgKGxheWVyM09mZlNldExEID0gKGxheWVyM01pblNwYWNlIC0gbGF5ZXIzU3BhY2VMRCkpIGVsc2UgKGxheWVyM09mZlNldExEID0gMC4wKSkgaWYoKGxheWVyMkVuY0wgJiYgbGF5ZXIyRW5jRCkgdGhlbiAobGF5ZXIyU3BhY2VMRCA9IChsYXllcjJFbmNMICsgbGF5ZXIyRW5jRCArIGwpKSAobGF5ZXIyT2ZmU2V0TEQgPSAobGF5ZXIyTWluU3BhY2UgLSBsYXllcjJTcGFjZUxEKSkgZWxzZSAobGF5ZXIyT2ZmU2V0TEQgPSAwLjApKSBpZigodmlhMUVuY1MgJiYgdmlhMUVuY0QpIHRoZW4gKHZpYTFTcGFjZVNEID0gKHZpYTFFbmNTICsgdmlhMUVuY0QgKyBsKSkgKHZpYTFPZmZTZXRTRCA9ICh2aWExTWluU3BhY2UgLSB2aWExU3BhY2VTRCkpIGVsc2UgKHZpYTFPZmZTZXRTRCA9IDAuMCkpIGlmKCh2aWEyRW5jUyAmJiB2aWEyRW5jRCkgdGhlbiAodmlhMlNwYWNlU0QgPSAodmlhMkVuY1MgKyB2aWEyRW5jRCArIGwpKSAodmlhMk9mZlNldFNEID0gKHZpYTJNaW5TcGFjZSAtIHZpYTJTcGFjZVNEKSkgZWxzZSAodmlhMk9mZlNldFNEID0gMC4wKSkgaWYoKGxheWVyM0VuY1MgJiYgbGF5ZXIzRW5jRCkgdGhlbiAobGF5ZXIzU3BhY2VTRCA9IChsYXllcjNFbmNTICsgbGF5ZXIzRW5jRCArIGwpKSAobGF5ZXIzT2ZmU2V0U0QgPSAobGF5ZXIzTWluU3BhY2UgLSBsYXllcjNTcGFjZVNEKSkgZWxzZSAobGF5ZXIzT2ZmU2V0U0QgPSAwLjApKSBpZigobGF5ZXIyRW5jUyAmJiBsYXllcjJFbmNEKSB0aGVuIChsYXllcjJTcGFjZVNEID0gKGxheWVyMkVuY1MgKyBsYXllcjJFbmNEICsgbCkpIChsYXllcjJPZmZTZXRTRCA9IChsYXllcjJNaW5TcGFjZSAtIGxheWVyMlNwYWNlU0QpKSBlbHNlIChsYXllcjJPZmZTZXRTRCA9IDAuMCkpIGlmKChtID09IDEpIHRoZW4gKG1heE9mZlNldCA9IG1heCh2aWExT2ZmU2V0RkwgdmlhMk9mZlNldEZMIGxheWVyMk9mZlNldEZMIGxheWVyM09mZlNldEZMIDAuMCkpIGVsc2UgaWYoKG0gPT0gMikgdGhlbiBpZihzb3VyY2VGaXJzdCB0aGVuIChtYXhPZmZTZXQgPSBtYXgodmlhMU9mZlNldEZEIHZpYTJPZmZTZXRGRCBsYXllcjJPZmZTZXRGRCBsYXllcjNPZmZTZXRGRCB2aWExT2ZmU2V0TEQgdmlhMk9mZlNldExEIGxheWVyMk9mZlNldExEIGxheWVyM09mZlNldExEIDAuMCkpIGVsc2UgKG1heE9mZlNldCA9IG1heCh2aWExT2ZmU2V0RlMgdmlhMk9mZlNldEZTIGxheWVyMk9mZlNldEZTIGxheWVyM09mZlNldEZTIHZpYTFPZmZTZXRMUyB2aWEyT2ZmU2V0TFMgbGF5ZXIyT2ZmU2V0TFMgbGF5ZXIzT2ZmU2V0TFMgMC4wKSkpIGVsc2UgaWYoKG1vZChtIDIpID09IDApIHRoZW4gaWYoc291cmNlRmlyc3QgdGhlbiAobWF4T2ZmU2V0ID0gbWF4KHZpYTFPZmZTZXRGRCB2aWEyT2ZmU2V0RkQgbGF5ZXIyT2ZmU2V0RkQgbGF5ZXIzT2ZmU2V0RkQgdmlhMU9mZlNldFNEIHZpYTJPZmZTZXRTRCBsYXllcjJPZmZTZXRTRCBsYXllcjNPZmZTZXRTRCB2aWExT2ZmU2V0TEQgdmlhMk9mZlNldExEIGxheWVyMk9mZlNldExEIGxheWVyM09mZlNldExEIDAuMCkpIGVsc2UgKG1heE9mZlNldCA9IG1heCh2aWExT2ZmU2V0RlMgdmlhMk9mZlNldEZTIGxheWVyMk9mZlNldEZTIGxheWVyM09mZlNldEZTIHZpYTFPZmZTZXRTRCB2aWEyT2ZmU2V0U0QgbGF5ZXIyT2ZmU2V0U0QgbGF5ZXIzT2ZmU2V0U0QgdmlhMU9mZlNldExTIHZpYTJPZmZTZXRMUyBsYXllcjJPZmZTZXRMUyBsYXllcjNPZmZTZXRMUyAwLjApKSkgZWxzZSBpZihzb3VyY2VGaXJzdCB0aGVuIChtYXhPZmZTZXQgPSBtYXgodmlhMU9mZlNldEZEIHZpYTJPZmZTZXRGRCBsYXllcjJPZmZTZXRGRCBsYXllcjNPZmZTZXRGRCB2aWExT2ZmU2V0U0QgdmlhMk9mZlNldFNEIGxheWVyMk9mZlNldFNEIGxheWVyM09mZlNldFNEIHZpYTFPZmZTZXRMUyB2aWEyT2ZmU2V0TFMgbGF5ZXIyT2ZmU2V0TFMgbGF5ZXIzT2ZmU2V0TFMgMC4wKSkgZWxzZSAobWF4T2ZmU2V0ID0gbWF4KHZpYTFPZmZTZXRGUyB2aWEyT2ZmU2V0RlMgbGF5ZXIyT2ZmU2V0RlMgbGF5ZXIzT2ZmU2V0RlMgdmlhMU9mZlNldFNEIHZpYTJPZmZTZXRTRCBsYXllcjJPZmZTZXRTRCBsYXllcjNPZmZTZXRTRCB2aWExT2ZmU2V0TEQgdmlhMk9mZlNldExEIGxheWVyMk9mZlNldExEIGxheWVyM09mZlNldExEIDAuMCkpKSkpKSAob2Zmc2V0U2lkZSA9IChtYXhPZmZTZXQgLyAyLjApKSAobWluU3BhY2VPZmZTZXQgPSAoKGNlaWxpbmcgKChvZmZzZXRTaWRlIC8gc25hcEdyaWQpICsgLTFlLTA2KSkgKiBzbmFwR3JpZCkpIHdoZW4oKGxpc3RwKGlkTGF5ZXIpICYmIChjYWRyKGlkTGF5ZXIpID09ICJodiIpICYmIChodlBZTWNvblNwYWNlID4gMC4wKSkgKG1pblNwYWNlT2ZmU2V0ID0gKG1pblNwYWNlT2ZmU2V0ICsgaHZQWU1jb25TcGFjZSkpKSBpZigoYmNrQ29tcGF0aWJsZU9mZlNldCAmJiAoKHNyY09mZnNldCAhPSAwLjApIHx8IChkcm5PZmZzZXQgIT0gMC4wKSkpIHRoZW4gKG1pblNwYWNlT2ZmU2V0ID0gMC4wKSkgaWYoaW1wbGFudCB0aGVuIChjb250YWN0SW1wUGFyYW0gPSBsaXN0KCJpbXBsYW50IiAiYm9vbGVhbiIgdCkpIGVsc2UgKGNvbnRhY3RJbXBQYXJhbSA9IGxpc3QoImltcGxhbnQiICJib29sZWFuIiAiRkFMU0UiKSkpIGlmKGlkQ2hvaWNlIHRoZW4gKGlkRW5jUGFyYW0gPSBsaXN0KCJpZENob2ljZSIgImJvb2xlYW4iIHQpKSBlbHNlIChpZEVuY1BhcmFtID0gbGlzdCgiaWRDaG9pY2UiICJib29sZWFuIiAiRkFMU0UiKSkpIGlmKHdlbGxMYXllciB0aGVuIChjb250YWN0V2VsbFBhcmFtID0gbGlzdCgiaW5XZWxsIiAiYm9vbGVhbiIgdCkpIGVsc2UgKGNvbnRhY3RXZWxsUGFyYW0gPSBsaXN0KCJpbldlbGwiICJib29sZWFuIiAiRkFMU0UiKSkpIHdoZW4oZGlmZkltcENob2ljZXMgKGRpZmZJbXBDaG9pY2VQYXJhbSA9IGxpc3QoImRpZmZJbXBDaG9pY2UiICJmaXhudW0iIGRpZmZNYXRjaCkpKSB3aGVuKHRhcEltcENob2ljZXMgKHRhcEltcENob2ljZVBhcmFtID0gbGlzdCgidGFwSW1wQ2hvaWNlIiAiZml4bnVtIiB0YXBNYXRjaCkpKSAoeDFDb29yZCA9IDAuMCkgKHkxQ29vcmQgPSAwLjApIChsYXN0WDFDb29yZCA9ICgtICgyLjAgKiAoZGVwWEVuYyArIGRlcFNwYWNlKSkpKSB3aGVuKGRlcExheWVyICh5MURlcENvb3JkID0gKHkxQ29vcmQgLSBkZXBZRW5jKSkgKHkyRGVwQ29vcmQgPSAoeTFDb29yZCArIHcgKyBkZXBZRW5jKSkpIChsYXN0UFlpWDFDb29yZCA9ICgtICgyLjAgKiBwb2x5SW1wWEVuYykpKSB3aGVuKHBvbHlJbXBsYW50ICh5MVBZaUNvb3JkID0gKHkxQ29vcmQgLSBwb2x5SW1wWUVuYyAtIGdhdGVFeHQpKSAoeTJQWWlDb29yZCA9ICh5MUNvb3JkICsgdyArIHBvbHlJbXBZRW5jICsgZ2F0ZUV4dCkpKSBpZigoaWRMYXllciAmJiBsaXN0cChpZExheWVyKSAmJiAoY2FkcihpZExheWVyKSA9PSAiaHYiKSAmJiAod2VsbEVuY0h2TGF5ZXIgPiAwLjApKSB0aGVuICh3ZWxsRW5jRGlmZlkgPSAoaWRFbmNZICsgd2VsbEVuY0h2TGF5ZXIpKSAod2VsbEVuY1RhcFkgPSAoaWRFbmNZICsgd2VsbEVuY0h2TGF5ZXIpKSAod2VsbEVuY0RpZmZYID0gKG1heChpZEVuY1hMIGlkRW5jWFIpICsgd2VsbEVuY0h2TGF5ZXIpKSAod2VsbEVuY1RhcFggPSAobWF4KGlkRW5jWEwgaWRFbmNYUikgKyB3ZWxsRW5jSHZMYXllcikpIGVsc2UgKHdlbGxFbmNEaWZmWSA9IHdlbGxFbmNEaWZmKSAod2VsbEVuY1RhcFkgPSB3ZWxsRW5jVGFwKSAod2VsbEVuY0RpZmZYID0gd2VsbEVuY0RpZmYpICh3ZWxsRW5jVGFwWCA9IHdlbGxFbmNUYXApKSB3aGVuKChmaXJzdENvbnRhY3QgIT0gIiIpIChjb250YWN0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZmlyc3RDb250YWN0ICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoY29udGFjdElkIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZC9vcGVuIGZpcnN0Q29udGFjdCBjb250YWN0IGNlbGwgYCVzJyIgZmlyc3RDb250YWN0KSkpIHVubGVzcygoY29udGFjdElkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgZmlyc3RDb250YWN0KSkpIGlmKChjTmV0ID09IHNOZXQpIHRoZW4gKG9mZnNldCA9IChtaW5TcGFjZU9mZlNldCArIHNyY09mZnNldCkpIGVsc2UgKG9mZnNldCA9IChtaW5TcGFjZU9mZlNldCArIGRybk9mZnNldCkpKSAocGFyYW1zID0gKGNvbnRhY3RJZH4+cGFyYW1ldGVycykpIChpbnN0UGFyYW1zID0gbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHcpKSkgd2hlbigocGFyYW1zfj5pbXBsYW50KSAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgY29udGFjdEltcFBhcmFtKSkpIHdoZW4oKHBhcmFtc34+aWRDaG9pY2UpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBpZEVuY1BhcmFtKSkpIHdoZW4oKHBhcmFtc34+aW5XZWxsKSAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgY29udGFjdFdlbGxQYXJhbSkpKSB3aGVuKChkaWZmSW1wQ2hvaWNlcyAmJiAocGFyYW1zfj5kaWZmSW1wQ2hvaWNlKSkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIGRpZmZJbXBDaG9pY2VQYXJhbSkpKSB3aGVuKCh0YXBJbXBDaG9pY2VzICYmIChwYXJhbXN+PnRhcEltcENob2ljZSkpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyB0YXBJbXBDaG9pY2VQYXJhbSkpKSB3aGVuKChjb250YWN0Q2hvaWNlcyAmJiAocGFyYW1zfj5ub0RpZmZDb250YWN0KSkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIGRpZmZDb25QYXJhbSkpKSAoaW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGNvbnRhY3RJZCAiYzAiICgoLSBvZmZzZXQpOjApICJNWSIgMSBpbnN0UGFyYW1zKSkgdW5sZXNzKGluc3QgZXJyb3Ioc3ByaW50ZihuaWwgIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgYCVzJyIgZmlyc3RDb250YWN0KSkpIHdoZW4oZGlmZkltcGxhbnQgKGRpZmZJbXBsYW50Um9kID0gKHJvZEdldE9iaiBpbnN0KSkgKGRpZmZJbXBsYW50ZGJpZCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmSW1wYW50T1JsYXllciA/ZnJvbU9iaiBkaWZmSW1wbGFudFJvZCA/c2l6ZSBPUmxheWVyU2l6ZSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoKGRpZmZJbXBsYW50ZGJpZC0+ZGJJZCkpKSkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkIC0gb2Zmc2V0KTp5MUNvb3JkKSAoeDFDb29yZDp3KSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBvZmZzZXQpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZJbXBFbmMpKSkpKSAoY3JlYXRlZEltcGxhbnQxID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50MSBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpIChjcmVhdGVkSW1wbGFudERpZmYgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnREaWZmIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIG9mZnNldCkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIChtYXN0ZXIgPSAoaW5zdH4+bWFzdGVyKSkgdW5sZXNzKCgobWFzdGVyfj50b3BMYXllcikgJiYgKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgdG9wTGF5ZXIgYW5kL29yIHRvcExheWVyUGluQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgZmlyc3RDb250YWN0KSkpIChiQm94ID0gbGlzdChsaXN0KCgtIChvZmZzZXQgKyBjYWFyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpIGxpc3QoKC0gKG9mZnNldCArIGNhYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkgY2FkYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IChtYXN0ZXJ+PnRvcExheWVyKSBiQm94KSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IikgYWNjZXNzRGlyKSB3aGVuKGxhYmVsTGF5ZXIgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKGNhYXIoYkJveCkgKyAoKGNhYWRyKGJCb3gpIC0gY2FhcihiQm94KSkgLyAyLjApKSAoY2FkYXIoYkJveCkgKyAoKGNhZGFkcihiQm94KSAtIGNhZGFyKGJCb3gpKSAvIDIuMCkpKSBuZXRMICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiBsYWJlbFdpZHRoKSkgd2hlbigod2VsbExheWVyIHx8IGlkTGF5ZXIgfHwgaHZMYXllcikgdW5sZXNzKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBkaWZmTGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnIiBmaXJzdENvbnRhY3QpKSkgKHgxRGlmZkNvb3JkID0gY2FhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeDFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTJEaWZmQ29vcmQgPSBjYWRhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTJUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFkcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkxRGlmZkNvb3JkID0gY2FkYXIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSB3aGVuKHdlbGxMYXllciAoeDFXZWxsQ29vcmQgPSAoLSAob2Zmc2V0ICsgbWF4KCh3ZWxsRW5jRGlmZlggKyB4MURpZmZDb29yZCkgKHdlbGxFbmNUYXBYICsgeDFUYXBDb29yZCkpKSkpICh5MVdlbGxDb29yZCA9ICgtIG1heCgod2VsbEVuY0RpZmZZICsgeTFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkxVGFwQ29vcmQpKSkpICh5MldlbGxDb29yZCA9IG1heCgod2VsbEVuY0RpZmZZICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkyVGFwQ29vcmQpKSkpIHdoZW4oaHZMYXllciAoeDFIVkxheWVyQ29vcmQgPSAoLSAob2Zmc2V0ICsgbWF4KChodkVuY2xvc3VyZSArIHgxRGlmZkNvb3JkKSAoaHZFbmNsb3N1cmUgKyB4MVRhcENvb3JkKSkpKSkgKHkxSFZMYXllckNvb3JkID0gKC0gbWF4KChodkVuY2xvc3VyZSArIHkxRGlmZkNvb3JkKSAoaHZFbmNsb3N1cmUgKyB5MVRhcENvb3JkKSkpKSAoeTJIVkxheWVyQ29vcmQgPSBtYXgoKGh2RW5jbG9zdXJlICsgeTJEaWZmQ29vcmQpIChodkVuY2xvc3VyZSArIHkyVGFwQ29vcmQpKSkpIHdoZW4oKChpZExheWVyICYmIGlkQ2hvaWNlKSB8fCBkcmF3SURieURlZmF1bHQpIGlmKGlkRW5jRGlmZiB0aGVuICh4MUlkQ29vcmQgPSAoLSAob2Zmc2V0ICsgbWF4KChpZEVuY1hMICsgeDFEaWZmQ29vcmQpIChpZEVuY1hMICsgeDFUYXBDb29yZCkpKSkpICh5MUlkQ29vcmQgPSAoLSBtYXgoKGlkRW5jWSArIHkxRGlmZkNvb3JkKSAoaWRFbmNZICsgeTFUYXBDb29yZCkpKSkgKHkySWRDb29yZCA9IG1heCgoaWRFbmNZICsgeTJEaWZmQ29vcmQpIChpZEVuY1kgKyB5MlRhcENvb3JkKSkpIGVsc2UgKHgxSWRDb29yZCA9ICgtIChvZmZzZXQgKyBpZEVuY1hMKSkpICh5MUlkQ29vcmQgPSAoLSBpZEVuY1kpKSAoeTJJZENvb3JkID0gaWRFbmNZKSkpKSAoZGJDbG9zZSBjb250YWN0SWQpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKHgxQ29vcmQgLSBkaWZmRXh0KTp5MUNvb3JkKSAoeDFDb29yZDp3KSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gY05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiKSBhY2Nlc3NEaXIpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBkaWZmRXh0KSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmSW1wRW5jKSkpKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSAoY3JlYXRlZEltcGxhbnREaWZmID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50RGlmZiBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBkaWZmRXh0KSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCh4MUNvb3JkICh3ICsgZGlmZkNvcmVJbXBFbmMpKSkpKSB3aGVuKChmaXJzdENvbnRhY3QgPT0gIiIpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoLSAoeDFDb29yZCArIChkaWZmRXh0IC8gMi4wKSkpICh5MUNvb3JkICsgKHcgLyAyLjApKSkgbmV0TCAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgbGFiZWxXaWR0aCkpIHdoZW4od2VsbExheWVyICh4MVdlbGxDb29yZCA9ICgtICh4MUNvb3JkICsgZGlmZkV4dCArIHdlbGxFbmNEaWZmWCkpKSAoeTFXZWxsQ29vcmQgPSAoLSAoeTFDb29yZCArIHdlbGxFbmNEaWZmWSkpKSAoeTJXZWxsQ29vcmQgPSAoeTFDb29yZCArIHcgKyB3ZWxsRW5jRGlmZlkpKSkgd2hlbihodkxheWVyICh4MUhWTGF5ZXJDb29yZCA9ICgtICh4MUNvb3JkICsgZGlmZkV4dCArIGh2RW5jbG9zdXJlKSkpICh5MUhWTGF5ZXJDb29yZCA9ICgtICh5MUNvb3JkICsgaHZFbmNsb3N1cmUpKSkgKHkySFZMYXllckNvb3JkID0gKHkxQ29vcmQgKyB3ICsgaHZFbmNsb3N1cmUpKSkgd2hlbigoKGlkTGF5ZXIgJiYgaWRDaG9pY2UpIHx8IGRyYXdJRGJ5RGVmYXVsdCkgaWYoaWRFbmNEaWZmIHRoZW4gKHgxSWRDb29yZCA9ICgtICh4MUNvb3JkICsgZGlmZkV4dCArIGlkRW5jWEwpKSkgKHkxSWRDb29yZCA9ICgtICh5MUNvb3JkICsgaWRFbmNZKSkpICh5MklkQ29vcmQgPSAoeTFDb29yZCArIHcgKyBpZEVuY1kpKSBlbHNlICh4MUlkQ29vcmQgPSAoLSBpZEVuY1hMKSkgKHkxSWRDb29yZCA9ICgtIGlkRW5jWSkpICh5MklkQ29vcmQgPSAoeTFDb29yZCArIHcgKyBpZEVuY1kpKSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQgJiYgbm9FbmRDb25JbXBFbmMpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKCh4MUNvb3JkIC0gZGlmZkV4dCkgLSBkaWZmSW1wRW5jKSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmSW1wRW5jKSkpKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSAoY3JlYXRlZEltcGxhbnREaWZmID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50RGlmZiBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCAmJiBub0VuZENvbkltcEVuYykgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKCh4MUNvb3JkIC0gZGlmZkV4dCkgLSBkaWZmQ29yZUltcEVuYykgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHdoZW4oKG0gPiAxKSB3aGVuKChzaGFyZWRTb3VyY2UgPT0gIiIpIGVycm9yKCJNaXNzaW5nIHNoYXJlZCBzb3VyY2UgY29udGFjdCBuYW1lIHByb3BlcnR5IikpIChzaGFyZWRTcmNJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBzaGFyZWRTb3VyY2UgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhzaGFyZWRTcmNJZCBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQvb3BlbiBzaGFyZWQgc291cmNlIGNvbnRhY3QgY2VsbCBgJXMnIiBzaGFyZWRTb3VyY2UpKSkgdW5sZXNzKChzaGFyZWRTcmNJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIHNoYXJlZFNvdXJjZSkpKSB3aGVuKChzaGFyZWREcmFpbiA9PSAiIikgZXJyb3IoIk1pc3Npbmcgc2hhcmVkIGRyYWluIGNvbnRhY3QgbmFtZSBwcm9wZXJ0eSIpKSAoc2hhcmVkRHJuSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgc2hhcmVkRHJhaW4gInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhzaGFyZWREcm5JZCBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQvb3BlbiBzaGFyZWQgZHJhaW4gY29udGFjdCBjZWxsIGAlcyciIHNoYXJlZERyYWluKSkpIHVubGVzcygoc2hhcmVkRHJuSWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBzaGFyZWREcmFpbikpKSkgKGNOZXQgPSBpZigoY05ldCA9PSBzTmV0KSBkTmV0IHNOZXQpKSAobmV0TCA9IGlmKChuZXRMID09ICJTIikgIkQiICJTIikpIGZvcihuIDEgbSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBnYXRlTGF5ZXIgbGlzdCgoeDFDb29yZDooeTFDb29yZCAtIGdhdGVFeHQpKSAoKHgxQ29vcmQgKyBsKTooeTFDb29yZCArIHcgKyBnYXRlRXh0KSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBnTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBnYXRlTGF5ZXIgbGlzdCgoeDFDb29yZDooeTFDb29yZCArIHcpKSAoKHgxQ29vcmQgKyBsKTooeTFDb29yZCArIHcgKyBnYXRlRXh0KSkpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGdOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiKSBhY2Nlc3NEaXIpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciBsaXN0KCh4MUNvb3JkOih5MUNvb3JkIC0gZ2F0ZUV4dCkpICgoeDFDb29yZCArIGwpOnkxQ29vcmQpKSkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBnTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgiYm90dG9tIikgYWNjZXNzRGlyKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKCh4MUNvb3JkICsgbCk6KHkxQ29vcmQgKyB3KSkpKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoY3JlYXRlZEltcGxhbnR0bXAgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KHgxQ29vcmQgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCgoeDFDb29yZCArIGwpICgoeTFDb29yZCArIHcpICsgZGlmZkltcEVuYykpKSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkgKGNyZWF0ZWRJbXBsYW50RGlmZiA9IGFwcGVuZChjcmVhdGVkSW1wbGFudERpZmYgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KHgxQ29vcmQgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyBsKSAoKHkxQ29vcmQgKyB3KSArIGRpZmZDb3JlSW1wRW5jKSkpKSkgd2hlbihkZXBMYXllciBjb25kKCgoKHgxQ29vcmQgLSBsYXN0WDFDb29yZCAtICgyLjAgKiBkZXBYRW5jKSkgPCBkZXBTcGFjZSkgKHgxRGVwQ29vcmQgPSAobGFzdFgxQ29vcmQgKyBkZXBYRW5jKSkpICh0ICh4MURlcENvb3JkID0gKHgxQ29vcmQgLSBkZXBYRW5jKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGVwTGF5ZXIgbGlzdCgoeDFEZXBDb29yZDp5MURlcENvb3JkKSAoKHgxQ29vcmQgKyBsICsgZGVwWEVuYyk6eTJEZXBDb29yZCkpKSkgd2hlbigocG9seUltcGxhbnQgJiYgaW1wbGFudCkgKHgxUFlpQ29vcmQgPSAoeDFDb29yZCAtIHBvbHlJbXBYRW5jKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHBvbHlJbXBsYW50IGxpc3QoKHgxUFlpQ29vcmQ6eTFQWWlDb29yZCkgKCh4MUNvb3JkICsgbCArIHBvbHlJbXBYRW5jKTp5MlBZaUNvb3JkKSkpKSAoeDFDb29yZCA9ICh4MUNvb3JkICsgbCkpIHdoZW4oKG4gIT0gbSkgaWYoKGNOZXQgPT0gc05ldCkgdGhlbiAoY29udGFjdElkID0gc2hhcmVkU3JjSWQpIChvZmZzZXQgPSAobWluU3BhY2VPZmZTZXQgKyBzcmNPZmZzZXQpKSBlbHNlIChjb250YWN0SWQgPSBzaGFyZWREcm5JZCkgKG9mZnNldCA9IChtaW5TcGFjZU9mZlNldCArIGRybk9mZnNldCkpKSAocGFyYW1zID0gKGNvbnRhY3RJZH4+cGFyYW1ldGVycykpIChpbnN0UGFyYW1zID0gbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHcpKSkgd2hlbigocGFyYW1zfj5pbXBsYW50KSAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgY29udGFjdEltcFBhcmFtKSkpIHdoZW4oKHBhcmFtc34+aWRDaG9pY2UpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBpZEVuY1BhcmFtKSkpIHdoZW4oKHBhcmFtc34+aW5XZWxsKSAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgY29udGFjdFdlbGxQYXJhbSkpKSB3aGVuKChkaWZmSW1wQ2hvaWNlcyAmJiAocGFyYW1zfj5kaWZmSW1wQ2hvaWNlKSkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIGRpZmZJbXBDaG9pY2VQYXJhbSkpKSB3aGVuKCh0YXBJbXBDaG9pY2VzICYmIChwYXJhbXN+PnRhcEltcENob2ljZSkpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyB0YXBJbXBDaG9pY2VQYXJhbSkpKSB3aGVuKChjb250YWN0Q2hvaWNlcyAmJiAocGFyYW1zfj5ub0RpZmZDb250YWN0KSkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIGRpZmZDb25QYXJhbSkpKSAoaW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGNvbnRhY3RJZCBzcHJpbnRmKG5pbCAiYyVkIiBuKSAoKG9mZnNldCArIHgxQ29vcmQpOnkxQ29vcmQpICJSMCIgMSBpbnN0UGFyYW1zKSkgdW5sZXNzKGluc3QgZXJyb3Ioc3ByaW50ZihuaWwgIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgYCVzJyIgKGNvbnRhY3RJZH4+Y2VsbE5hbWUpKSkpIHdoZW4oZGlmZkltcGxhbnQgKGRpZmZJbXBsYW50Um9kID0gKHJvZEdldE9iaiBpbnN0KSkgKGRpZmZJbXBsYW50ZGJpZCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmSW1wYW50T1JsYXllciA/ZnJvbU9iaiBkaWZmSW1wbGFudFJvZCA/c2l6ZSBPUmxheWVyU2l6ZSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoKGRpZmZJbXBsYW50ZGJpZC0+ZGJJZCkpKSkpIChtYXN0ZXIgPSAoaW5zdH4+bWFzdGVyKSkgdW5sZXNzKCgobWFzdGVyfj50b3BMYXllcikgJiYgKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgdG9wTGF5ZXIgYW5kL29yIHRvcExheWVyUGluQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgKGNvbnRhY3RJZH4+Y2VsbE5hbWUpKSkpIChiQm94ID0gbGlzdChsaXN0KChjYWFyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpICsgeDFDb29yZCArIG9mZnNldCkgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpIGxpc3QoKGNhYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpICsgeDFDb29yZCArIG9mZnNldCkgY2FkYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IChtYXN0ZXJ+PnRvcExheWVyKSBiQm94KSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iKSBhY2Nlc3NEaXIpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoY2FhcihiQm94KSArICgoY2FhZHIoYkJveCkgLSBjYWFyKGJCb3gpKSAvIDIuMCkpIChjYWRhcihiQm94KSArICgoY2FkYWRyKGJCb3gpIC0gY2FkYXIoYkJveCkpIC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKChvZmZzZXQgPiAxZS0wNikgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICgob2Zmc2V0ICsgeDFDb29yZCk6KHkxQ29vcmQgKyB3KSkpKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoY3JlYXRlZEltcGxhbnR0bXAgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KHgxQ29vcmQgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCgob2Zmc2V0ICsgeDFDb29yZCkgKCh5MUNvb3JkICsgdykgKyBkaWZmSW1wRW5jKSkpKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSAoY3JlYXRlZEltcGxhbnREaWZmID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50RGlmZiBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgob2Zmc2V0ICsgeDFDb29yZCkgKCh5MUNvb3JkICsgdykgKyBkaWZmQ29yZUltcEVuYykpKSkpKSB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgZGlmZkxheWVyQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgKGNvbnRhY3RJZH4+Y2VsbE5hbWUpKSkpIChsYXN0WDFDb29yZCA9IHgxQ29vcmQpICh4MUNvb3JkID0gKCgyLjAgKiBvZmZzZXQpICsgKHgxQ29vcmQgKyAoY2FhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpIC0gY2FhcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpKSkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkIC0gb2Zmc2V0KTp5MUNvb3JkKSAoeDFDb29yZDooeTFDb29yZCArIHcpKSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBvZmZzZXQpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoeDFDb29yZCAoKHkxQ29vcmQgKyB3KSArIGRpZmZJbXBFbmMpKSkpKSAoY3JlYXRlZEltcGxhbnQxID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50MSBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpIChjcmVhdGVkSW1wbGFudERpZmYgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnREaWZmIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIG9mZnNldCkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoeDFDb29yZCAoKHkxQ29vcmQgKyB3KSArIGRpZmZDb3JlSW1wRW5jKSkpKSkpICh5MURpZmZDb29yZCA9IGNhZGFyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkxVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkyRGlmZkNvb3JkID0gY2FkYWRyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkyVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpIHdoZW4od2VsbExheWVyICh5MVdlbGxDb29yZCA9IG1pbigoLSBtYXgoKHdlbGxFbmNEaWZmWSArIHkxRGlmZkNvb3JkKSAod2VsbEVuY1RhcFkgKyB5MVRhcENvb3JkKSkpIHkxV2VsbENvb3JkKSkgKHkyV2VsbENvb3JkID0gbWF4KCh3ZWxsRW5jRGlmZlkgKyB5MkRpZmZDb29yZCkgKHdlbGxFbmNUYXBZICsgeTJUYXBDb29yZCkgeTJXZWxsQ29vcmQpKSkgd2hlbihodkxheWVyICh5MUhWTGF5ZXJDb29yZCA9IG1pbigoLSBtYXgoKGh2RW5jbG9zdXJlICsgeTFEaWZmQ29vcmQpIChodkVuY2xvc3VyZSArIHkxSFZMYXllckNvb3JkKSkpIHkxSFZMYXllckNvb3JkKSkgKHkySFZMYXllckNvb3JkID0gbWF4KChodkVuY2xvc3VyZSArIHkyRGlmZkNvb3JkKSAoaHZFbmNsb3N1cmUgKyB5MlRhcENvb3JkKSB5MkhWTGF5ZXJDb29yZCkpKSB3aGVuKCgoaWRMYXllciAmJiBpZENob2ljZSkgfHwgZHJhd0lEYnlEZWZhdWx0KSBpZihpZEVuY0RpZmYgdGhlbiAoeTFJZENvb3JkID0gbWluKCgtIG1heCgoaWRFbmNZICsgeTFEaWZmQ29vcmQpIChpZEVuY1kgKyB5MVRhcENvb3JkKSkpIHkxSWRDb29yZCkpICh5MklkQ29vcmQgPSBtYXgoKGlkRW5jWSArIHkyRGlmZkNvb3JkKSAoaWRFbmNZICsgeTJUYXBDb29yZCkgeTJJZENvb3JkKSkgZWxzZSAoeTFJZENvb3JkID0gKC0gaWRFbmNZKSkgKHkySWRDb29yZCA9IGlkRW5jWSkpKSkgKGNOZXQgPSBpZigoY05ldCA9PSBzTmV0KSBkTmV0IHNOZXQpKSAobmV0TCA9IGlmKChuZXRMID09ICJTIikgIkQiICJTIikpKSB3aGVuKChtICE9IDEpIChkYkNsb3NlIHNoYXJlZFNyY0lkKSAoZGJDbG9zZSBzaGFyZWREcm5JZCkpIChjTmV0ID0gaWYoKGNOZXQgPT0gc05ldCkgZE5ldCBzTmV0KSkgKG5ldEwgPSBpZigobmV0TCA9PSAiUyIpICJEIiAiUyIpKSB3aGVuKChsYXN0Q29udGFjdCAhPSAiIikgKGNvbnRhY3RJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBsYXN0Q29udGFjdCAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKGNvbnRhY3RJZCBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQvb3BlbiBsYXN0Q29udGFjdCBjb250YWN0IGNlbGwgYCVzJyIgbGFzdENvbnRhY3QpKSkgdW5sZXNzKChjb250YWN0SWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBsYXN0Q29udGFjdCkpKSBpZigoY05ldCA9PSBzTmV0KSB0aGVuIChvZmZzZXQgPSAobWluU3BhY2VPZmZTZXQgKyBzcmNPZmZzZXQpKSBlbHNlIChvZmZzZXQgPSAobWluU3BhY2VPZmZTZXQgKyBkcm5PZmZzZXQpKSkgKHBhcmFtcyA9IChjb250YWN0SWR+PnBhcmFtZXRlcnMpKSAoaW5zdFBhcmFtcyA9IGxpc3QobGlzdCgidyIgImZsb2F0IiB3KSkpIHdoZW4oKHBhcmFtc34+aW1wbGFudCkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIGNvbnRhY3RJbXBQYXJhbSkpKSB3aGVuKChwYXJhbXN+PmlkQ2hvaWNlKSAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgaWRFbmNQYXJhbSkpKSB3aGVuKChwYXJhbXN+PmluV2VsbCkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIGNvbnRhY3RXZWxsUGFyYW0pKSkgd2hlbigoZGlmZkltcENob2ljZXMgJiYgKHBhcmFtc34+ZGlmZkltcENob2ljZSkpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBkaWZmSW1wQ2hvaWNlUGFyYW0pKSkgd2hlbigodGFwSW1wQ2hvaWNlcyAmJiAocGFyYW1zfj50YXBJbXBDaG9pY2UpKSAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgdGFwSW1wQ2hvaWNlUGFyYW0pKSkgd2hlbigoY29udGFjdENob2ljZXMgJiYgKHBhcmFtc34+bm9EaWZmQ29udGFjdCkpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBkaWZmQ29uUGFyYW0pKSkgKGluc3QgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBjb250YWN0SWQgc3ByaW50ZihuaWwgImMlZCIgbSkgKChvZmZzZXQgKyB4MUNvb3JkKTp5MUNvb3JkKSAiUjAiIDEgaW5zdFBhcmFtcykpIHVubGVzcyhpbnN0IGVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGZpcnN0IHNvdXJjZSBjb250YWN0IikpIHdoZW4oZGlmZkltcGxhbnQgKGRpZmZJbXBsYW50Um9kID0gKHJvZEdldE9iaiBpbnN0KSkgKGRpZmZJbXBsYW50ZGJpZCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmSW1wYW50T1JsYXllciA/ZnJvbU9iaiBkaWZmSW1wbGFudFJvZCA/c2l6ZSBPUmxheWVyU2l6ZSkpIChjcmVhdGVkSW1wbGFudDEgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnQxIGxpc3QoKGRpZmZJbXBsYW50ZGJpZC0+ZGJJZCkpKSkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKChvZmZzZXQgKyB4MUNvb3JkKTooeTFDb29yZCArIHcpKSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KChvZmZzZXQgKyB4MUNvb3JkKSAoKHkxQ29vcmQgKyB3KSArIGRpZmZJbXBFbmMpKSkpKSAoY3JlYXRlZEltcGxhbnQxID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50MSBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpIChjcmVhdGVkSW1wbGFudERpZmYgPSBhcHBlbmQoY3JlYXRlZEltcGxhbnREaWZmIGxpc3QoY3JlYXRlZEltcGxhbnR0bXApKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KChvZmZzZXQgKyB4MUNvb3JkKSAoKHkxQ29vcmQgKyB3KSArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIChtYXN0ZXIgPSAoaW5zdH4+bWFzdGVyKSkgdW5sZXNzKCgobWFzdGVyfj50b3BMYXllcikgJiYgKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgdG9wTGF5ZXIgYW5kL29yIHRvcExheWVyUGluQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgbGFzdENvbnRhY3QpKSkgKGJCb3ggPSBsaXN0KGxpc3QoKGNhYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyB4MUNvb3JkICsgb2Zmc2V0KSBjYWRhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkgbGlzdCgoY2FhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyB4MUNvb3JkICsgb2Zmc2V0KSBjYWRhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgKG1hc3Rlcn4+dG9wTGF5ZXIpIGJCb3gpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gY05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgInJpZ2h0IikgYWNjZXNzRGlyKSB3aGVuKGxhYmVsTGF5ZXIgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKGNhYXIoYkJveCkgKyAoKGNhYWRyKGJCb3gpIC0gY2FhcihiQm94KSkgLyAyLjApKSAoY2FkYXIoYkJveCkgKyAoKGNhZGFkcihiQm94KSAtIGNhZGFyKGJCb3gpKSAvIDIuMCkpKSBuZXRMICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiBsYWJlbFdpZHRoKSkgKHkxRGlmZkNvb3JkID0gY2FkYXIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTJEaWZmQ29vcmQgPSBjYWRhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTJUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFkcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHgyRGlmZkNvb3JkID0gY2FhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeDJUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSB3aGVuKHdlbGxMYXllciB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGxhc3RDb250YWN0KSkpICh5MVdlbGxDb29yZCA9IG1pbigoLSBtYXgoKHdlbGxFbmNEaWZmWSArIHkxRGlmZkNvb3JkKSAod2VsbEVuY1RhcFkgKyB5MVRhcENvb3JkKSkpIHkxV2VsbENvb3JkKSkgKHkyV2VsbENvb3JkID0gbWF4KCh3ZWxsRW5jRGlmZlkgKyB5MkRpZmZDb29yZCkgKHdlbGxFbmNUYXBZICsgeTJUYXBDb29yZCkgeTJXZWxsQ29vcmQpKSAoeDJXZWxsQ29vcmQgPSAob2Zmc2V0ICsgeDFDb29yZCArIG1heCgod2VsbEVuY0RpZmZYICsgeDJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWCArIHgyVGFwQ29vcmQpKSkpKSB3aGVuKGh2TGF5ZXIgdW5sZXNzKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBkaWZmTGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnIiBsYXN0Q29udGFjdCkpKSAoeTFIVkxheWVyQ29vcmQgPSBtaW4oKC0gbWF4KChodkVuY2xvc3VyZSArIHkxRGlmZkNvb3JkKSAoaHZFbmNsb3N1cmUgKyB5MVRhcENvb3JkKSkpIHkxSFZMYXllckNvb3JkKSkgKHkySFZMYXllckNvb3JkID0gbWF4KChodkVuY2xvc3VyZSArIHkyRGlmZkNvb3JkKSAoaHZFbmNsb3N1cmUgKyB5MlRhcENvb3JkKSB5MkhWTGF5ZXJDb29yZCkpICh4MkhWTGF5ZXJDb29yZCA9IChvZmZzZXQgKyB4MUNvb3JkICsgbWF4KChodkVuY2xvc3VyZSArIHgyRGlmZkNvb3JkKSAoaHZFbmNsb3N1cmUgKyB4MlRhcENvb3JkKSkpKSkgd2hlbigoKGlkTGF5ZXIgJiYgaWRDaG9pY2UpIHx8IGRyYXdJRGJ5RGVmYXVsdCkgdW5sZXNzKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBkaWZmTGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnIiBsYXN0Q29udGFjdCkpKSBpZihpZEVuY0RpZmYgdGhlbiAoeTFJZENvb3JkID0gbWluKCgtIG1heCgoaWRFbmNZICsgeTFEaWZmQ29vcmQpIChpZEVuY1kgKyB5MVRhcENvb3JkKSkpIHkxSWRDb29yZCkpICh5MklkQ29vcmQgPSBtYXgoKGlkRW5jWSArIHkyRGlmZkNvb3JkKSAoaWRFbmNZICsgeTJUYXBDb29yZCkgeTJJZENvb3JkKSkgKHgySWRDb29yZCA9IChvZmZzZXQgKyB4MUNvb3JkICsgbWF4KChpZEVuY1hSICsgeDJEaWZmQ29vcmQpIChpZEVuY1hSICsgeDJUYXBDb29yZCkpKSkgZWxzZSAoeTFJZENvb3JkID0gKCgtIGlkRW5jWSkgKyB5MURpZmZDb29yZCkpICh5MklkQ29vcmQgPSBtYXgoKGlkRW5jWSArIHkyRGlmZkNvb3JkKSB5MlRhcENvb3JkIHkySWRDb29yZCkpICh4MklkQ29vcmQgPSAob2Zmc2V0ICsgeDFDb29yZCArIGlkRW5jWFIpKSkpIChkYkNsb3NlIGNvbnRhY3RJZCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICgoeDFDb29yZCArIGRpZmZFeHQpOih5MUNvb3JkICsgdykpKSkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBjTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAicmlnaHQiKSBhY2Nlc3NEaXIpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgZGlmZkV4dCkgKCh5MUNvb3JkICsgdykgKyBkaWZmSW1wRW5jKSkpKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSAoY3JlYXRlZEltcGxhbnREaWZmID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50RGlmZiBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgoeDFDb29yZCArIGRpZmZFeHQpICgoeTFDb29yZCArIHcpICsgZGlmZkNvcmVJbXBFbmMpKSkpKSB3aGVuKChsYXN0Q29udGFjdCA9PSAiIikgd2hlbihsYWJlbExheWVyIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KCh4MUNvb3JkICsgKGRpZmZFeHQgLyAyLjApKSAoeTFDb29yZCArICh3IC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKHdlbGxMYXllciAoeDJXZWxsQ29vcmQgPSAoeDFDb29yZCArIGRpZmZFeHQgKyB3ZWxsRW5jRGlmZlgpKSAoeTJXZWxsQ29vcmQgPSBtYXgoKHkxQ29vcmQgKyB3ICsgd2VsbEVuY0RpZmZZKSB5MldlbGxDb29yZCkpKSB3aGVuKGh2TGF5ZXIgKHgySFZMYXllckNvb3JkID0gKHgxQ29vcmQgKyBkaWZmRXh0ICsgaHZFbmNsb3N1cmUpKSAoeTJIVkxheWVyQ29vcmQgPSBtYXgoKHkxQ29vcmQgKyB3ICsgaHZFbmNsb3N1cmUpIHkySFZMYXllckNvb3JkKSkpIHdoZW4oKChpZExheWVyICYmIGlkQ2hvaWNlKSB8fCBkcmF3SURieURlZmF1bHQpIGlmKGlkRW5jRGlmZiB0aGVuICh4MklkQ29vcmQgPSAoeDFDb29yZCArIGRpZmZFeHQgKyBpZEVuY1hSKSkgKHkySWRDb29yZCA9IG1heCgoeTFDb29yZCArIHcgKyBpZEVuY1kpIHkySWRDb29yZCkpIGVsc2UgKHgySWRDb29yZCA9ICh4MUNvb3JkICsgaWRFbmNYUikpICh5MklkQ29vcmQgPSBtYXgoKHkxQ29vcmQgKyB3ICsgaWRFbmNZKSB5MklkQ29vcmQpKSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQgJiYgbm9FbmRDb25JbXBFbmMpIChjcmVhdGVkSW1wbGFudHRtcCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgKyBkaWZmRXh0KSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KCgoeDFDb29yZCArIGRpZmZFeHQpICsgZGlmZkltcEVuYykgKCh5MUNvb3JkICsgdykgKyBkaWZmSW1wRW5jKSkpKSkgKGNyZWF0ZWRJbXBsYW50MSA9IGFwcGVuZChjcmVhdGVkSW1wbGFudDEgbGlzdChjcmVhdGVkSW1wbGFudHRtcCkpKSAoY3JlYXRlZEltcGxhbnREaWZmID0gYXBwZW5kKGNyZWF0ZWRJbXBsYW50RGlmZiBsaXN0KGNyZWF0ZWRJbXBsYW50dG1wKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCAmJiBub0VuZENvbkltcEVuYykgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgKyBkaWZmRXh0KSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgoKHgxQ29vcmQgKyBkaWZmRXh0KSArIGRpZmZDb3JlSW1wRW5jKSAoKHkxQ29vcmQgKyB3KSArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChjcmVhdGVkSW1wbGFudDIgPSAoZGJMYXllck9yIHRjQ2VsbFZpZXcgImdyaWQiIGNyZWF0ZWRJbXBsYW50MSkpIChjcmVhdGVkSW1wbGFudERpZmYyID0gKGRiTGF5ZXJPciB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGNyZWF0ZWRJbXBsYW50RGlmZikpIChmaXJzdGltcGxhbnQgPSBjYXIoY3JlYXRlZEltcGxhbnQyKSkgKGRiQ3JlYXRlUGluIGJOZXQgZmlyc3RpbXBsYW50ICJiIikgZm9yZWFjaChkaWZmSW1wbGFudFNoYXBlMiBjcmVhdGVkSW1wbGFudERpZmYgKGRiRGVsZXRlT2JqZWN0IGRpZmZJbXBsYW50U2hhcGUyKSkpIHdoZW4od2VsbExheWVyICh3ZWxsTGF5ZXJfWG9yaWdpbiA9IHgxV2VsbENvb3JkKSAod2VsbExheWVyX1lvcmlnaW4gPSAoeTFXZWxsQ29vcmQgKyAoLSB3ZWxsRW5jWURpZmYpKSkgKHdlbGxMYXllcl9YZW5kID0geDJXZWxsQ29vcmQpICh3ZWxsTGF5ZXJfWWVuZCA9ICh5MldlbGxDb29yZCArIHdlbGxFbmNZRGlmZikpIHdoZW4oKCh3ZWxsTGF5ZXJfWGVuZCAtIHdlbGxMYXllcl9Yb3JpZ2luKSA8IHdlbGxtaW5XaWR0aCkgKERpZmZfd2VsbF93aWR0aCA9ICh3ZWxsbWluV2lkdGggLSAod2VsbExheWVyX1hlbmQgLSB3ZWxsTGF5ZXJfWG9yaWdpbikpKSAoeDJXZWxsQ29vcmQgPSAoeDJXZWxsQ29vcmQgKyAoRGlmZl93ZWxsX3dpZHRoIC8gMikpKSAoeDFXZWxsQ29vcmQgPSAoeDFXZWxsQ29vcmQgLSAoRGlmZl93ZWxsX3dpZHRoIC8gMikpKSkgd2hlbigoKHdlbGxMYXllcl9ZZW5kIC0gd2VsbExheWVyX1lvcmlnaW4pIDwgd2VsbG1pbldpZHRoKSAoRGlmZl93ZWxsX3dpZHRoID0gKHdlbGxtaW5XaWR0aCAtICh3ZWxsTGF5ZXJfWWVuZCAtIHdlbGxMYXllcl9Zb3JpZ2luKSkpICh5MVdlbGxDb29yZCA9ICh5MVdlbGxDb29yZCAtIChEaWZmX3dlbGxfd2lkdGggLyAyKSkpICh5MldlbGxDb29yZCA9ICh5MldlbGxDb29yZCArIChEaWZmX3dlbGxfd2lkdGggLyAyKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgd2VsbExheWVyIGxpc3QoKHgxV2VsbENvb3JkOih5MVdlbGxDb29yZCArICgtIHdlbGxFbmNZRGlmZikpKSAoeDJXZWxsQ29vcmQ6KHkyV2VsbENvb3JkICsgd2VsbEVuY1lEaWZmKSkpKSkgd2hlbigoKGlkTGF5ZXIgJiYgaWRDaG9pY2UpIHx8IGRyYXdJRGJ5RGVmYXVsdCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGlkTGF5ZXIgbGlzdChsaXN0KHgxSWRDb29yZCB5MUlkQ29vcmQpIGxpc3QoeDJJZENvb3JkIHkySWRDb29yZCkpKSkgd2hlbihodkxheWVyIHdoZW4od2VsbExheWVyIChzaWduWDEgPSAoeDFXZWxsQ29vcmQgLyBhYnMoeDFXZWxsQ29vcmQpKSkgKHNpZ25YMiA9ICh4MldlbGxDb29yZCAvIGFicyh4MldlbGxDb29yZCkpKSAoc2lnblkxID0gKHkxV2VsbENvb3JkIC8gYWJzKHkxV2VsbENvb3JkKSkpIChzaWduWTIgPSAoeTJXZWxsQ29vcmQgLyBhYnMoeTJXZWxsQ29vcmQpKSkgKHgxSFZMYXllckNvb3JkID0gKChhYnMoeDFXZWxsQ29vcmQpICsgaHZFbmNsb3N1cmUpICogc2lnblgxKSkgKHgySFZMYXllckNvb3JkID0gKChhYnMoeDJXZWxsQ29vcmQpICsgaHZFbmNsb3N1cmUpICogc2lnblgyKSkgKHkxSFZMYXllckNvb3JkID0gKChhYnMoeTFXZWxsQ29vcmQpICsgaHZFbmNsb3N1cmUpICogc2lnblkxKSkgKHkySFZMYXllckNvb3JkID0gKChhYnMoeTJXZWxsQ29vcmQpICsgaHZFbmNsb3N1cmUpICogc2lnblkyKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBodkxheWVyIGxpc3QobGlzdCh4MUhWTGF5ZXJDb29yZCB5MUhWTGF5ZXJDb29yZCkgbGlzdCh4MkhWTGF5ZXJDb29yZCB5MkhWTGF5ZXJDb29yZCkpKSkpAChkaWZmTGF5ZXIgZ2F0ZUxheWVyIHdlbGxMYXllciB3ZWxsbWluV2lkdGggaHZMYXllciBkZXBMYXllciBkaWZmRXh0IHdlbGxFbmNEaWZmIHdlbGxFbmNUYXAgd2VsbExheWVyV2lkdGggaHZFbmNsb3N1cmUgZGVwWEVuYyBkZXBZRW5jIGRlcFNwYWNlIGxhYmVsTGF5ZXIgbGFiZWxXaWR0aCBkaWZmSW1wbGFudCBkaWZmSW1wRW5jIGRpZmZDb3JlSW1wbGFudCBkaWZmQ29yZUltcEVuYyB2aWExTWluU3BhY2UgdmlhMk1pblNwYWNlIGxheWVyMk1pblNwYWNlIGxheWVyM01pblNwYWNlIG5vT2ZEZWNpbWFscyBzbmFwR3JpZCBiY2tDb21wYXRpYmxlT2ZmU2V0IHBvbHlJbXBsYW50IHBvbHlJbXBYRW5jIHBvbHlJbXBZRW5jIGh2UFlNY29uU3BhY2Ugd2VsbEVuY0h2TGF5ZXIgZHJhd0lEYnlEZWZhdWx0IHNvdXJjZUZpcnN0IHNoYXJlZERyYWluIHNoYXJlZFNvdXJjZSBsYXN0Q29udGFjdCBmaXJzdENvbnRhY3QgZ2F0ZUV4dCBpZExheWVyQ2hvaWNlcyBpZExheWVyIGlkRW5jRGlmZiBpZEVuY1hMIGlkRW5jWFIgaWRFbmNZIGRpZmZJbXBDaG9pY2VzIHRhcEltcENob2ljZXMgY29udGFjdENob2ljZXMgZGlmZkltcENob2ljZSB0YXBJbXBDaG9pY2UgY29udGFjdENob2ljZSBzcmNPZmZzZXQgZHJuT2Zmc2V0IG0gbCB3IGltcGxhbnQgbm9FbmRDb25JbXBFbmMgaWRDaG9pY2UgaWRUZXh0IGlkUmFkaW8gZGlmZkltcGFudE9SbGF5ZXIgY3JlYXRlZEltcGxhbnQxIGNyZWF0ZWRJbXBsYW50RGlmZiBPUmxheWVyU2l6ZSB3ZWxsRW5jWURpZmYgd2VsbFdpZHRoIGdOZXQgc05ldCBkTmV0IGJOZXQgY05ldCBuZXRMIGkgZGlmZk1hdGNoIHRhcE1hdGNoIGRpZmZDb25QYXJhbSB4IGlkRW5jTGlzdCBjb250YWN0RiBjb250YWN0TCBjb250YWN0RCBjb250YWN0UyB2aWExWENyZEYgbGF5ZXIyWENyZEYgdmlhMlhDcmRGIGxheWVyM1hDcmRGIGxheWVyMVhDcmRGIHZpYTFYQ3JkTCBsYXllcjJYQ3JkTCB2aWEyWENyZEwgbGF5ZXIzWENyZEwgbGF5ZXIxWENyZEwgdmlhMVhDcmRTIGxheWVyMlhDcmRTIHZpYTJYQ3JkUyBsYXllcjNYQ3JkUyBsYXllcjFYQ3JkUyB2aWExWENyZEQgbGF5ZXIyWENyZEQgdmlhMlhDcmREIGxheWVyM1hDcmREIGxheWVyMVhDcmREIHZpYTFFbmNGIHZpYTJFbmNGIGxheWVyMkVuY0YgbGF5ZXIzRW5jRiB2aWExRW5jTCB2aWEyRW5jTCBsYXllcjJFbmNMIGxheWVyM0VuY0wgdmlhMUVuY1MgdmlhMkVuY1MgbGF5ZXIyRW5jUyBsYXllcjNFbmNTIHZpYTFFbmNEIHZpYTJFbmNEIGxheWVyMkVuY0QgbGF5ZXIzRW5jRCB2aWExU3BhY2VGTCB2aWExT2ZmU2V0RkwgdmlhMlNwYWNlRkwgdmlhMk9mZlNldEZMIGxheWVyM1NwYWNlRkwgbGF5ZXIzT2ZmU2V0RkwgbGF5ZXIyU3BhY2VGTCBsYXllcjJPZmZTZXRGTCB2aWExU3BhY2VGUyB2aWExT2ZmU2V0RlMgdmlhMlNwYWNlRlMgdmlhMk9mZlNldEZTIGxheWVyM1NwYWNlRlMgbGF5ZXIzT2ZmU2V0RlMgbGF5ZXIyU3BhY2VGUyBsYXllcjJPZmZTZXRGUyB2aWExU3BhY2VGRCB2aWExT2ZmU2V0RkQgdmlhMlNwYWNlRkQgdmlhMk9mZlNldEZEIGxheWVyM1NwYWNlRkQgbGF5ZXIzT2ZmU2V0RkQgbGF5ZXIyU3BhY2VGRCBsYXllcjJPZmZTZXRGRCB2aWExU3BhY2VMUyB2aWExT2ZmU2V0TFMgdmlhMlNwYWNlTFMgdmlhMk9mZlNldExTIGxheWVyM1NwYWNlTFMgbGF5ZXIzT2ZmU2V0TFMgbGF5ZXIyU3BhY2VMUyBsYXllcjJPZmZTZXRMUyB2aWExU3BhY2VMRCB2aWExT2ZmU2V0TEQgdmlhMlNwYWNlTEQgdmlhMk9mZlNldExEIGxheWVyM1NwYWNlTEQgbGF5ZXIzT2ZmU2V0TEQgbGF5ZXIyU3BhY2VMRCBsYXllcjJPZmZTZXRMRCB2aWExU3BhY2VTRCB2aWExT2ZmU2V0U0QgdmlhMlNwYWNlU0QgdmlhMk9mZlNldFNEIGxheWVyM1NwYWNlU0QgbGF5ZXIzT2ZmU2V0U0QgbGF5ZXIyU3BhY2VTRCBsYXllcjJPZmZTZXRTRCBtYXhPZmZTZXQgb2Zmc2V0U2lkZSBtaW5TcGFjZU9mZlNldCBjb250YWN0SW1wUGFyYW0gaWRFbmNQYXJhbSBjb250YWN0V2VsbFBhcmFtIGRpZmZJbXBDaG9pY2VQYXJhbSB0YXBJbXBDaG9pY2VQYXJhbSB4MUNvb3JkIHkxQ29vcmQgbGFzdFgxQ29vcmQgeTFEZXBDb29yZCB5MkRlcENvb3JkIGxhc3RQWWlYMUNvb3JkIHkxUFlpQ29vcmQgeTJQWWlDb29yZCB3ZWxsRW5jRGlmZlkgd2VsbEVuY1RhcFkgd2VsbEVuY0RpZmZYIHdlbGxFbmNUYXBYIGNvbnRhY3RJZCBvZmZzZXQgcGFyYW1zIGluc3RQYXJhbXMgaW5zdCBkaWZmSW1wbGFudFJvZCBkaWZmSW1wbGFudGRiaWQgY3JlYXRlZEltcGxhbnR0bXAgbWFzdGVyIGJCb3ggZGJpZCBwaW5pZCB4MURpZmZDb29yZCB4MVRhcENvb3JkIHkyRGlmZkNvb3JkIHkyVGFwQ29vcmQgeTFEaWZmQ29vcmQgeTFUYXBDb29yZCB4MVdlbGxDb29yZCB5MVdlbGxDb29yZCB5MldlbGxDb29yZCB4MUhWTGF5ZXJDb29yZCB5MUhWTGF5ZXJDb29yZCB5MkhWTGF5ZXJDb29yZCB4MUlkQ29vcmQgeTFJZENvb3JkIHkySWRDb29yZCBzaGFyZWRTcmNJZCBzaGFyZWREcm5JZCBuIHgxRGVwQ29vcmQgeDFQWWlDb29yZCB4MkRpZmZDb29yZCB4MlRhcENvb3JkIHgyV2VsbENvb3JkIHgySFZMYXllckNvb3JkIHgySWRDb29yZCBjcmVhdGVkSW1wbGFudDIgY3JlYXRlZEltcGxhbnREaWZmMiBmaXJzdGltcGxhbnQgZGlmZkltcGxhbnRTaGFwZTIgd2VsbExheWVyX1hvcmlnaW4gd2VsbExheWVyX1lvcmlnaW4gd2VsbExheWVyX1hlbmQgd2VsbExheWVyX1llbmQgRGlmZl93ZWxsX3dpZHRoIHNpZ25YMSBzaWduWDIgc2lnblkxIHNpZ25ZMikAKChzb3VyY2VGaXJzdCAiVFJVRSIpIChzaGFyZWREcmFpbiAiIikgKHNoYXJlZFNvdXJjZSAiIikgKGxhc3RDb250YWN0ICIiKSAoZmlyc3RDb250YWN0ICIiKSAoZ2F0ZUV4dCAwLjApIChpZExheWVyQ2hvaWNlcyBuaWwpIChpZExheWVyIG5pbCkgKGlkRW5jRGlmZiBuaWwpIChpZEVuY1hMIDAuMCkgKGlkRW5jWFIgMC4wKSAoaWRFbmNZIDAuMCkgKGRpZmZJbXBDaG9pY2VzIG5pbCkgKHRhcEltcENob2ljZXMgbmlsKSAoY29udGFjdENob2ljZXMgbmlsKSAoZGlmZkltcENob2ljZSBuaWwpICh0YXBJbXBDaG9pY2UgbmlsKSAoY29udGFjdENob2ljZSBuaWwpIChzcmNPZmZzZXQgMC4wKSAoZHJuT2Zmc2V0IDAuMCkgKG0gMSkgKGwgMC4wKSAodyAwLjApIChpbXBsYW50IHQpIChub0VuZENvbkltcEVuYyB0KSAoaWRDaG9pY2UgbmlsKSAoaWRUZXh0ICIiKSAoaWRSYWRpbyBuaWwpKQAoKGRpZmZMYXllciAiaGlsaXRlIikgKGdhdGVMYXllciAibWFya2VyIikgKHdlbGxMYXllciBuaWwpICh3ZWxsbWluV2lkdGggMC4wKSAoaHZMYXllciBuaWwpIChkZXBMYXllciBuaWwpIChkaWZmRXh0IDAuMCkgKHdlbGxFbmNEaWZmIDAuMCkgKHdlbGxFbmNUYXAgMC4wKSAod2VsbExheWVyV2lkdGggMC4wKSAoaHZFbmNsb3N1cmUgMC4wKSAoZGVwWEVuYyAwLjApIChkZXBZRW5jIDAuMCkgKGRlcFNwYWNlIDAuMCkgKGxhYmVsTGF5ZXIgbGlzdCgidGV4dCIgImRyYXdpbmciKSkgKGxhYmVsV2lkdGggMC40KSAoZGlmZkltcGxhbnQgbmlsKSAoZGlmZkltcEVuYyAwLjApIChkaWZmQ29yZUltcGxhbnQgbmlsKSAoZGlmZkNvcmVJbXBFbmMgMC4wKSAodmlhMU1pblNwYWNlIDAuMCkgKHZpYTJNaW5TcGFjZSAwLjApIChsYXllcjJNaW5TcGFjZSAwLjApIChsYXllcjNNaW5TcGFjZSAwLjApIChub09mRGVjaW1hbHMgMykgKHNuYXBHcmlkIChURUNIZ2V0UHJvcCBzbmFwR3JpZCkpIChiY2tDb21wYXRpYmxlT2ZmU2V0IG5pbCkgKHBvbHlJbXBsYW50IG5pbCkgKHBvbHlJbXBYRW5jIDAuMCkgKHBvbHlJbXBZRW5jIDAuMCkgKGh2UFlNY29uU3BhY2UgMC4wKSAod2VsbEVuY0h2TGF5ZXIgMC4wKSAoZHJhd0lEYnlEZWZhdWx0IG5pbCkpAChpZigoKFcgPCA1KSB8fCAoTCA8IDUpKSB0aGVuIChXID0gNSkgKEwgPSA1KSkgaWYoKElubmVyUmluZyAhPSAiblRhcCIpIHRoZW4gaWYoKElubmVyUmluZyAhPSAicFRhcCIpIHRoZW4gKElubmVyUmluZyA9ICJuVGFwIikgd2FybigiSW5uZXJSaW5nIHNob3VsZCBiZSBlaXRoZXIgblRhcCBvciBwVGFwLiBEZWZhdWx0IHNldCB0byBuVGFwIikpKSAodGFwX1cgPSBtYXgoKGNvbldpZHRoICsgKHRhcENvbkVuY1ggKiAyKSkgSVJpbmdXaWR0aCkpIChUQVBfTF9JID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIHRhcF9XID9wdHMgbGlzdCgoMDowKSAoMDpXKSkgP2VuY1N1YlBhdGggbGlzdChsaXN0KD9sYXllciBNMExheWVyID9lbmNsb3N1cmUgdGFwQ29uRW5jWCA/YmVnaW5PZmZzZXQgdGFwQ29uRW5jWCA/ZW5kT2Zmc2V0IHRhcENvbkVuY1gpKSA/c3ViUmVjdCBsaXN0KGxpc3QoP2xheWVyIGNvbkxheWVyID93aWR0aCBjb25XaWR0aCA/bGVuZ3RoIGNvbkxlbmd0aCA/YmVnaW5PZmZzZXQgKC0gKHRhcEltcEVuYyArIHRhcENvbkVuY1gpKSA/ZW5kT2Zmc2V0ICgtICh0YXBJbXBFbmMgKyB0YXBDb25FbmNYKSkgP3NwYWNlIGNvblNwYWNpbmcpKSkpIChUQVBfVF9JID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIHRhcF9XID9wdHMgbGlzdCgoKCgtIHRhcF9XKSAvIDIpOihXICsgKHRhcF9XIC8gMikpKSAoKEwgKyAodGFwX1cgLyAyKSArIHRhcF9XKTooVyArICh0YXBfVyAvIDIpKSkpID9lbmNTdWJQYXRoIGxpc3QobGlzdCg/bGF5ZXIgTTBMYXllciA/ZW5jbG9zdXJlIHRhcENvbkVuY1ggP2JlZ2luT2Zmc2V0ICgtIHRhcENvbkVuY1gpID9lbmRPZmZzZXQgKC0gdGFwQ29uRW5jWCkpKSA/c3ViUmVjdCBsaXN0KGxpc3QoP2xheWVyIGNvbkxheWVyID93aWR0aCBjb25XaWR0aCA/bGVuZ3RoIGNvbkxlbmd0aCA/YmVnaW5PZmZzZXQgKC0gKE0wY29uRW5jWSArIHRhcENvbkVuY1kpKSA/ZW5kT2Zmc2V0ICgtIChNMGNvbkVuY1kgKyB0YXBDb25FbmNZKSkgP3NwYWNlIGNvblNwYWNpbmcpKSkpIChUQVBfUl9JID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIHRhcF9XID9wdHMgbGlzdCgoKEwgKyB0YXBfVyk6VykgKChMICsgdGFwX1cpOjApKSA/ZW5jU3ViUGF0aCBsaXN0KGxpc3QoP2xheWVyIE0wTGF5ZXIgP2VuY2xvc3VyZSB0YXBDb25FbmNYID9iZWdpbk9mZnNldCB0YXBDb25FbmNYID9lbmRPZmZzZXQgdGFwQ29uRW5jWCkpID9zdWJSZWN0IGxpc3QobGlzdCg/bGF5ZXIgY29uTGF5ZXIgP3dpZHRoIGNvbldpZHRoID9sZW5ndGggY29uTGVuZ3RoID9iZWdpbk9mZnNldCAoLSAodGFwSW1wRW5jICsgdGFwQ29uRW5jWCkpID9lbmRPZmZzZXQgKC0gKHRhcEltcEVuYyArIHRhcENvbkVuY1gpKSA/c3BhY2UgY29uU3BhY2luZykpKSkgKFRBUF9CX0kgPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBMYXllciA/d2lkdGggdGFwX1cgP3B0cyBsaXN0KCgoTCArIHRhcF9XICsgKHRhcF9XIC8gMikpOigoLSB0YXBfVykgLyAyKSkgKCgoLSB0YXBfVykgLyAyKTooKC0gdGFwX1cpIC8gMikpKSA/ZW5jU3ViUGF0aCBsaXN0KGxpc3QoP2xheWVyIE0wTGF5ZXIgP2VuY2xvc3VyZSB0YXBDb25FbmNYID9iZWdpbk9mZnNldCAoLSB0YXBDb25FbmNYKSA/ZW5kT2Zmc2V0ICgtIHRhcENvbkVuY1gpKSkgP3N1YlJlY3QgbGlzdChsaXN0KD9sYXllciBjb25MYXllciA/d2lkdGggY29uV2lkdGggP2xlbmd0aCBjb25MZW5ndGggP2JlZ2luT2Zmc2V0ICgtIChNMGNvbkVuY1kgKyB0YXBDb25FbmNZKSkgP2VuZE9mZnNldCAoLSAoTTBjb25FbmNZICsgdGFwQ29uRW5jWSkpID9zcGFjZSBjb25TcGFjaW5nKSkpKSBpZigoSW5uZXJSaW5nID09ICJuVGFwIikgdGhlbiBpZihEZWVwTndlbGwgdGhlbiB1bmxlc3MoRnVsbFdlbGwgKGRud0ltcEVuYyA9IChkbndXZWxsRW5jIC0gKG50YXBXZWxsU3BjICsgKHRhcF9XIC8gMikgKyB0YXBJbXBFbmMpKSkgKEROV19kdW1teSA9IChyb2RDcmVhdGVSZWN0ID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIGRud2VsbExheWVyID9sZW5ndGggVyA/d2lkdGggKEwgKyB0YXBfVykpKSAoRE5XID0gKHJvZENyZWF0ZVJlY3QgP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgZG53ZWxsTGF5ZXIgP2xlbmd0aCAoVyArIHRhcF9XICsgKGRud0ltcEVuYyAqIDIpKSA/d2lkdGggKEwgKyB0YXBfVyArIChkbndJbXBFbmMgKiAyKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIEROVyA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIEROV19kdW1teSA/cmVmSGFuZGxlICJjQyIpKSkgaWYoRnVsbFdlbGwgdGhlbiAoZG53SW1wRW5jID0gKGRud1dlbGxFbmMgLSAobnRhcFdlbGxTcGMgKyB0YXBfVyArICh0YXBJbXBFbmMgKiAyKSkpKSAoTldlbGxfZHVtbXkgPSAocm9kQ3JlYXRlUmVjdCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB3ZWxsTGF5ZXIgP2xlbmd0aCBXID93aWR0aCAoTCArIHRhcF9XKSkpIChOV2VsbCA9IChyb2RDcmVhdGVSZWN0ID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHdlbGxMYXllciA/d2lkdGggKEwgKyAodGFwX1cgKiAyKSkgP2xlbmd0aCAoVyArICh0YXBfVyAqIDIpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogTldlbGwgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBOV2VsbF9kdW1teSA/cmVmSGFuZGxlICJjQyIpKSAoSW1wbGFudF9JID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgbkltcGxhbnQgP3dpZHRoICh0YXBfVyArICh0YXBJbXBFbmMgKiAyKSkgP3B0cyBsaXN0KCgwOjApICgwOihXICsgKHRhcF9XIC8gMikpKSAoMDooVyArICh0YXBfVyAvIDIpKSkgKChMICsgdGFwX1cpOihXICsgKHRhcF9XIC8gMikpKSAoKEwgKyB0YXBfVyk6KFcgKyAodGFwX1cgLyAyKSkpICgoTCArIHRhcF9XKTowKSkpKSAoSW1wbGFudF9JQiA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIG5JbXBsYW50ID93aWR0aCAodGFwX1cgKyAodGFwSW1wRW5jICogMikpID9wdHMgbGlzdCgoKEwgKyB0YXBfVyArICh0YXBfVyAvIDIpICsgdGFwSW1wRW5jKTooKC0gdGFwX1cpIC8gMikpICgoLSAoKHRhcF9XIC8gMikgKyB0YXBJbXBFbmMpKTooKC0gdGFwX1cpIC8gMikpKSkpIChXZWxsX0lfTFQgPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB3ZWxsTGF5ZXIgP3dpZHRoICh0YXBfVyArICh0YXBJbXBFbmMgKiAyKSArIChudGFwV2VsbFNwYyAqIDIpKSA/cHRzIGxpc3QoKDA6MCkgKDA6KFcgKyAodGFwX1cgLyAyKSkpICgoTCArIHRhcF9XKTooVyArICh0YXBfVyAvIDIpKSkpKSkgKFdlbGxfSV9SQiA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHdlbGxMYXllciA/d2lkdGggKHRhcF9XICsgKHRhcEltcEVuYyAqIDIpICsgKG50YXBXZWxsU3BjICogMikpID9wdHMgbGlzdCgoKEwgKyB0YXBfVyk6KFcgKyB0YXBfVyArIHRhcEltcEVuYyArIG50YXBXZWxsU3BjKSkgKChMICsgdGFwX1cpOigoLSB0YXBfVykgLyAyKSkgKCgtICgodGFwX1cgLyAyKSArIHRhcEltcEVuYyArIG50YXBXZWxsU3BjKSk6KCgtIHRhcF9XKSAvIDIpKSkpKSBlbHNlIChJbXBsYW50X0kgPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciBwSW1wbGFudCA/d2lkdGggKHRhcF9XICsgKHRhcEltcEVuYyAqIDIpKSA/cHRzIGxpc3QoKDA6MCkgKDA6KFcgKyAodGFwX1cgLyAyKSkpICgwOihXICsgKHRhcF9XIC8gMikpKSAoKEwgKyB0YXBfVyk6KFcgKyAodGFwX1cgLyAyKSkpICgoTCArIHRhcF9XKTooVyArICh0YXBfVyAvIDIpKSkgKChMICsgdGFwX1cpOjApKSkpIChJbXBsYW50X0lCID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgcEltcGxhbnQgP3dpZHRoICh0YXBfVyArICh0YXBJbXBFbmMgKiAyKSkgP3B0cyBsaXN0KCgoTCArIHRhcF9XICsgKHRhcF9XIC8gMikgKyB0YXBJbXBFbmMpOigoLSB0YXBfVykgLyAyKSkgKCgtICgodGFwX1cgLyAyKSArIHRhcEltcEVuYykpOigoLSB0YXBfVykgLyAyKSkpKSkpIHdoZW4oKFJpbmdOdW0gPiAxKSBpZigoUmluZ051bSA+IDMpIHRoZW4gKFJpbmdOdW0gPSAzKSB3YXJuKCJNYXggUmluZ051bSBTaG91bGQgQmUgMy4gRGVmYXVsdCBzZXQgdG8gMyIpKSAodGFwX1dfTSA9IG1heCgoY29uV2lkdGggKyAodGFwQ29uRW5jWCAqIDIpKSBNUmluZ1dpZHRoKSkgKFNwYWNlMTIgPSBtYXgocHRhcFdlbGxTcGMgU3BhY2UxMikpIChNdGFwX3gwID0gKCh0YXBfVyAvIDIpICsgKHRhcEltcEVuYyAqIDIpICsgbnRhcFdlbGxTcGMgKyAodGFwX1dfTSAvIDIpICsgU3BhY2UxMikpIChNdGFwX3kwID0gKHRhcF9XICsgKHRhcEltcEVuYyAqIDIpICsgbnRhcFdlbGxTcGMgKyAodGFwX1dfTSAvIDIpICsgU3BhY2UxMikpIChNdGFwX3gxID0gKCh0YXBfVyAvIDIpICsgTCArIHRhcF9XICsgKHRhcEltcEVuYyAqIDIpICsgbnRhcFdlbGxTcGMgKyBTcGFjZTEyICsgKHRhcF9XX00gLyAyKSkpIChUQVBfTF9NID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIHRhcF9XX00gP3B0cyBsaXN0KCgoLSBNdGFwX3gwKTooLSAoTXRhcF95MCArICh0YXBfV19NIC8gMikpKSkgKCgtIE10YXBfeDApOihXICsgTXRhcF95MCArICh0YXBfV19NIC8gMikpKSkgP2VuY1N1YlBhdGggbGlzdChsaXN0KD9sYXllciBNMExheWVyID9lbmNsb3N1cmUgdGFwQ29uRW5jWCA/YmVnaW5PZmZzZXQgKC0gdGFwQ29uRW5jWCkgP2VuZE9mZnNldCAoLSB0YXBDb25FbmNYKSkpID9zdWJSZWN0IGxpc3QobGlzdCg/bGF5ZXIgY29uTGF5ZXIgP3dpZHRoIGNvbldpZHRoID9sZW5ndGggY29uTGVuZ3RoID9iZWdpbk9mZnNldCAoLSAoY29uU3BhY2luZyArIHRhcENvbkVuY1ggKyAodGFwX1dfTSAvIDIpKSkgP2VuZE9mZnNldCAoLSAoY29uU3BhY2luZyArIHRhcENvbkVuY1ggKyAodGFwX1dfTSAvIDIpKSkgP3NwYWNlIGNvblNwYWNpbmcpKSkpIChUQVBfVF9NID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIHRhcF9XX00gP3B0cyBsaXN0KCgoLSBNdGFwX3gwKTooVyArIE10YXBfeTApKSAoKE10YXBfeDEgKyAodGFwX1dfTSAvIDIpKTooVyArIE10YXBfeTApKSkgP2VuY1N1YlBhdGggbGlzdChsaXN0KD9sYXllciBNMExheWVyID9lbmNsb3N1cmUgdGFwQ29uRW5jWCA/YmVnaW5PZmZzZXQgdGFwQ29uRW5jWCA/ZW5kT2Zmc2V0ICgtIHRhcENvbkVuY1gpKSkgP3N1YlJlY3QgbGlzdChsaXN0KD9sYXllciBjb25MYXllciA/d2lkdGggY29uV2lkdGggP2xlbmd0aCBjb25MZW5ndGggP2JlZ2luT2Zmc2V0ICgtIChjb25TcGFjaW5nICsgKHRhcF9XX00gLyAyKSkpID9lbmRPZmZzZXQgKC0gKGNvblNwYWNpbmcgKyAodGFwX1dfTSAvIDIpKSkgP3NwYWNlIGNvblNwYWNpbmcpKSkpIChUQVBfUl9NID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIHRhcF9XX00gP3B0cyBsaXN0KChNdGFwX3gxOihXICsgTXRhcF95MCkpIChNdGFwX3gxOigtIE10YXBfeTApKSkgP2VuY1N1YlBhdGggbGlzdChsaXN0KD9sYXllciBNMExheWVyID9lbmNsb3N1cmUgdGFwQ29uRW5jWCA/YmVnaW5PZmZzZXQgdGFwQ29uRW5jWCA/ZW5kT2Zmc2V0IHRhcENvbkVuY1gpKSA/c3ViUmVjdCBsaXN0KGxpc3QoP2xheWVyIGNvbkxheWVyID93aWR0aCBjb25XaWR0aCA/bGVuZ3RoIGNvbkxlbmd0aCA/YmVnaW5PZmZzZXQgKC0gKGNvblNwYWNpbmcgKyAodGFwX1dfTSAvIDIpKSkgP2VuZE9mZnNldCAoLSAoY29uU3BhY2luZyArICh0YXBfV19NIC8gMikpKSA/c3BhY2UgY29uU3BhY2luZykpKSkgKFRBUF9CX00gPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBMYXllciA/d2lkdGggdGFwX1dfTSA/cHRzIGxpc3QoKChNdGFwX3gxICsgKHRhcF9XX00gLyAyKSk6KC0gTXRhcF95MCkpICgoLSAoTXRhcF94MCArICh0YXBfV19NIC8gMikpKTooLSBNdGFwX3kwKSkpID9lbmNTdWJQYXRoIGxpc3QobGlzdCg/bGF5ZXIgTTBMYXllciA/ZW5jbG9zdXJlIHRhcENvbkVuY1ggP2JlZ2luT2Zmc2V0ICgtIHRhcENvbkVuY1gpID9lbmRPZmZzZXQgKC0gdGFwQ29uRW5jWCkpKSA/c3ViUmVjdCBsaXN0KGxpc3QoP2xheWVyIGNvbkxheWVyID93aWR0aCBjb25XaWR0aCA/bGVuZ3RoIGNvbkxlbmd0aCA/YmVnaW5PZmZzZXQgKC0gKE0wY29uRW5jWSArIHRhcENvbkVuY1kpKSA/ZW5kT2Zmc2V0ICgtIChjb25TcGFjaW5nICsgdGFwQ29uRW5jWCArICh0YXBfV19NIC8gMikpKSA/c3BhY2UgY29uU3BhY2luZykpKSkgaWYoKElubmVyUmluZyA9PSAiblRhcCIpIHRoZW4gKE1pbXBsYW50ID0gcEltcGxhbnQpIGVsc2UgKE1pbXBsYW50ID0gbkltcGxhbnQpIChXZWxsX01fTFQgPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB3ZWxsTGF5ZXIgP3dpZHRoICh0YXBfV19NICsgKHRhcEltcEVuYyAqIDIpICsgKG50YXBXZWxsU3BjICogMikpID9wdHMgbGlzdCgoKC0gTXRhcF94MCk6KC0gTXRhcF95MCkpICgoLSBNdGFwX3gwKTooVyArIE10YXBfeTApKSAoTXRhcF94MTooVyArIE10YXBfeTApKSAoTXRhcF94MTooLSBNdGFwX3kwKSkpKSkgKFdlbGxfTV9SQiA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHdlbGxMYXllciA/d2lkdGggKHRhcF9XX00gKyAodGFwSW1wRW5jICogMikgKyAobnRhcFdlbGxTcGMgKiAyKSkgP3B0cyBsaXN0KCgoTXRhcF94MSArICh0YXBfV19NIC8gMikgKyB0YXBJbXBFbmMgKyBudGFwV2VsbFNwYyk6KC0gTXRhcF95MCkpICgoLSAoTXRhcF94MCArICh0YXBfV19NIC8gMikgKyB0YXBJbXBFbmMgKyBudGFwV2VsbFNwYykpOigtIE10YXBfeTApKSkpKSkgKEltcGxhbnRfTSA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIE1pbXBsYW50ID93aWR0aCAodGFwX1dfTSArICh0YXBJbXBFbmMgKiAyKSkgP3B0cyBsaXN0KCgoLSBNdGFwX3gwKTooLSBNdGFwX3kwKSkgKCgtIE10YXBfeDApOihXICsgTXRhcF95MCkpIChNdGFwX3gxOihXICsgTXRhcF95MCkpIChNdGFwX3gxOigtIE10YXBfeTApKSkpKSAoSW1wbGFudF9NQiA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIE1pbXBsYW50ID93aWR0aCAodGFwX1dfTSArICh0YXBJbXBFbmMgKiAyKSkgP3B0cyBsaXN0KCgoTXRhcF94MSArICh0YXBfV19NIC8gMikgKyB0YXBJbXBFbmMpOigtIE10YXBfeTApKSAoKC0gKE10YXBfeDAgKyAodGFwX1dfTSAvIDIpICsgdGFwSW1wRW5jKSk6KC0gTXRhcF95MCkpKSkpIHVubGVzcygoUmluZ051bSA9PSAyKSAodGFwX1dfTyA9IG1heCgoY29uV2lkdGggKyAodGFwQ29uRW5jWCAqIDIpKSBPUmluZ1dpZHRoKSkgKFNwYWNlMjMgPSBtYXgocHRhcFdlbGxTcGMgU3BhY2UyMykpIChPdGFwX3gwID0gKCh0YXBfVyAvIDIpICsgKHRhcEltcEVuYyAqIDQpICsgKG50YXBXZWxsU3BjICogMikgKyBTcGFjZTEyICsgdGFwX1dfTSArIFNwYWNlMjMgKyAodGFwX1dfTyAvIDIpKSkgKE90YXBfeTAgPSAodGFwX1cgKyAodGFwSW1wRW5jICogNCkgKyAobnRhcFdlbGxTcGMgKiAyKSArIFNwYWNlMTIgKyB0YXBfV19NICsgU3BhY2UyMyArICh0YXBfV19PIC8gMikpKSAoT3RhcF94MSA9ICgodGFwX1cgLyAyKSArIEwgKyB0YXBfVyArICh0YXBJbXBFbmMgKiA0KSArIChudGFwV2VsbFNwYyAqIDIpICsgU3BhY2UxMiArIHRhcF9XX00gKyBTcGFjZTIzICsgKHRhcF9XX08gLyAyKSkpIChUQVBfTF9PID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIHRhcF9XX08gP3B0cyBsaXN0KCgoLSBPdGFwX3gwKTooLSAoT3RhcF95MCArICh0YXBfV19PIC8gMikpKSkgKCgtIE90YXBfeDApOihXICsgT3RhcF95MCArICh0YXBfV19PIC8gMikpKSkgP2VuY1N1YlBhdGggbGlzdChsaXN0KD9sYXllciBNMExheWVyID9lbmNsb3N1cmUgdGFwQ29uRW5jWCA/YmVnaW5PZmZzZXQgKC0gdGFwQ29uRW5jWCkgP2VuZE9mZnNldCAoLSB0YXBDb25FbmNYKSkpID9zdWJSZWN0IGxpc3QobGlzdCg/bGF5ZXIgY29uTGF5ZXIgP3dpZHRoIGNvbldpZHRoID9sZW5ndGggY29uTGVuZ3RoID9iZWdpbk9mZnNldCAoLSAoY29uU3BhY2luZyArIHRhcENvbkVuY1ggKyAodGFwX1dfTyAvIDIpKSkgP2VuZE9mZnNldCAoLSAoY29uU3BhY2luZyArIHRhcENvbkVuY1ggKyAodGFwX1dfTyAvIDIpKSkgP3NwYWNlIGNvblNwYWNpbmcpKSkpIChUQVBfVF9PID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIHRhcF9XX08gP3B0cyBsaXN0KCgoLSBPdGFwX3gwKTooVyArIE90YXBfeTApKSAoKE90YXBfeDEgKyAodGFwX1dfTyAvIDIpKTooVyArIE90YXBfeTApKSkgP2VuY1N1YlBhdGggbGlzdChsaXN0KD9sYXllciBNMExheWVyID9lbmNsb3N1cmUgdGFwQ29uRW5jWCA/YmVnaW5PZmZzZXQgdGFwQ29uRW5jWCA/ZW5kT2Zmc2V0ICgtIHRhcENvbkVuY1gpKSkgP3N1YlJlY3QgbGlzdChsaXN0KD9sYXllciBjb25MYXllciA/d2lkdGggY29uV2lkdGggP2xlbmd0aCBjb25MZW5ndGggP2JlZ2luT2Zmc2V0ICgtIChjb25TcGFjaW5nICsgdGFwQ29uRW5jWCArICh0YXBfV19PIC8gMikpKSA/ZW5kT2Zmc2V0ICgtIChjb25TcGFjaW5nICsgdGFwQ29uRW5jWCArICh0YXBfV19PIC8gMikpKSA/c3BhY2UgY29uU3BhY2luZykpKSkgKFRBUF9SX08gPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBMYXllciA/d2lkdGggdGFwX1dfTyA/cHRzIGxpc3QoKE90YXBfeDE6KFcgKyBPdGFwX3kwKSkgKE90YXBfeDE6KC0gT3RhcF95MCkpKSA/ZW5jU3ViUGF0aCBsaXN0KGxpc3QoP2xheWVyIE0wTGF5ZXIgP2VuY2xvc3VyZSB0YXBDb25FbmNYID9iZWdpbk9mZnNldCB0YXBDb25FbmNYID9lbmRPZmZzZXQgdGFwQ29uRW5jWCkpID9zdWJSZWN0IGxpc3QobGlzdCg/bGF5ZXIgY29uTGF5ZXIgP3dpZHRoIGNvbldpZHRoID9sZW5ndGggY29uTGVuZ3RoID9iZWdpbk9mZnNldCAoLSAoY29uU3BhY2luZyArIHRhcENvbkVuY1ggKyAodGFwX1dfTyAvIDIpKSkgP2VuZE9mZnNldCAoLSAoY29uU3BhY2luZyArIHRhcENvbkVuY1ggKyAodGFwX1dfTyAvIDIpKSkgP3NwYWNlIGNvblNwYWNpbmcpKSkpIChUQVBfQl9PID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIHRhcF9XX08gP3B0cyBsaXN0KCgoT3RhcF94MSArICh0YXBfV19PIC8gMikpOigtIE90YXBfeTApKSAoKC0gKE90YXBfeDAgKyAodGFwX1dfTyAvIDIpKSk6KC0gT3RhcF95MCkpKSA/ZW5jU3ViUGF0aCBsaXN0KGxpc3QoP2xheWVyIE0wTGF5ZXIgP2VuY2xvc3VyZSB0YXBDb25FbmNYID9iZWdpbk9mZnNldCAoLSB0YXBDb25FbmNYKSA/ZW5kT2Zmc2V0ICgtIHRhcENvbkVuY1gpKSkgP3N1YlJlY3QgbGlzdChsaXN0KD9sYXllciBjb25MYXllciA/d2lkdGggY29uV2lkdGggP2xlbmd0aCBjb25MZW5ndGggP2JlZ2luT2Zmc2V0ICgtIChNMGNvbkVuY1kgKyB0YXBDb25FbmNZKSkgP2VuZE9mZnNldCAoLSAoY29uU3BhY2luZyArIHRhcENvbkVuY1ggKyAodGFwX1dfTyAvIDIpKSkgP3NwYWNlIGNvblNwYWNpbmcpKSkpIGlmKChJbm5lclJpbmcgPT0gIm5UYXAiKSB0aGVuIChPaW1wbGFudCA9IG5JbXBsYW50KSAoV2VsbF9PX0xUID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgd2VsbExheWVyID93aWR0aCAodGFwX1dfTyArICh0YXBJbXBFbmMgKiAyKSArIChudGFwV2VsbFNwYyAqIDIpKSA/cHRzIGxpc3QoKCgtIE90YXBfeDApOigtIE90YXBfeTApKSAoKC0gT3RhcF94MCk6KFcgKyBPdGFwX3kwKSkgKE90YXBfeDE6KFcgKyBPdGFwX3kwKSkgKE90YXBfeDE6KC0gT3RhcF95MCkpKSkpIChXZWxsX09fUkIgPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB3ZWxsTGF5ZXIgP3dpZHRoICh0YXBfV19PICsgKHRhcEltcEVuYyAqIDIpICsgKG50YXBXZWxsU3BjICogMikpID9wdHMgbGlzdCgoKE90YXBfeDEgKyAodGFwX1dfTyAvIDIpICsgdGFwSW1wRW5jICsgbnRhcFdlbGxTcGMpOigtIE90YXBfeTApKSAoKC0gKE90YXBfeDAgKyAodGFwX1dfTyAvIDIpICsgdGFwSW1wRW5jICsgbnRhcFdlbGxTcGMpKTooLSBPdGFwX3kwKSkpKSkgZWxzZSAoT2ltcGxhbnQgPSBwSW1wbGFudCkpIChJbXBsYW50X08gPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciBPaW1wbGFudCA/d2lkdGggKHRhcF9XX08gKyAodGFwSW1wRW5jICogMikpID9wdHMgbGlzdCgoKC0gT3RhcF94MCk6KC0gT3RhcF95MCkpICgoLSBPdGFwX3gwKTooVyArIE90YXBfeTApKSAoT3RhcF94MTooVyArIE90YXBfeTApKSAoT3RhcF94MTooLSBPdGFwX3kwKSkpKSkgKEltcGxhbnRfT0IgPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciBPaW1wbGFudCA/d2lkdGggKHRhcF9XX08gKyAodGFwSW1wRW5jICogMikpID9wdHMgbGlzdCgoKE90YXBfeDEgKyAodGFwX1dfTyAvIDIpICsgdGFwSW1wRW5jKTooLSBPdGFwX3kwKSkgKCgtIChPdGFwX3gwICsgKHRhcF9XX08gLyAyKSArIHRhcEltcEVuYykpOigtIE90YXBfeTApKSkpKSkpIGlmKChJbm5lclJpbmcgPT0gInBUYXAiKSB0aGVuIGlmKERlZXBOd2VsbCB0aGVuIGlmKChSaW5nTnVtID4gMSkgdGhlbiAoRE5XID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRud2VsbExheWVyID9mcm9tT2JqIGxpc3QoV2VsbF9NX0xUIFdlbGxfTV9SQikgP3NpemUgKC0gKCh0YXBfV19NICsgKHRhcEltcEVuYyAqIDIpICsgKG50YXBXZWxsU3BjICogMikpIC0gZG53V2VsbEVuYykpKSkpKSkpACh0YXBMYXllciB0YXBXaWR0aCB0YXBJbXBFbmMgbkltcGxhbnQgcEltcGxhbnQgaW1wbGFudFNwYyB3ZWxsTGF5ZXIgbndlbGxXaWR0aCBudGFwV2VsbFNwYyBwdGFwV2VsbFNwYyBkbndlbGxMYXllciBkbndlbGxXaWR0aCBkbndXZWxsRW5jIGNvbkxheWVyIGNvbldpZHRoIGNvbkxlbmd0aCBjb25TcGFjaW5nIHRhcENvbkVuY1ggdGFwQ29uRW5jWSBNMExheWVyIE0wY29uRW5jWSB2aWFMYXllciB2aWFXaWR0aCB2aWFMZW5ndGggdmlhU3BhY2luZyBNMUxheWVyIE0xdmlhRW5jWSBNMXZpYUVuY1ggRnVsbFdlbGwgRGVlcE53ZWxsIE9SaW5nV2lkdGggTVJpbmdXaWR0aCBJUmluZ1dpZHRoIFNwYWNlMjMgU3BhY2UxMiBJbm5lclJpbmcgUmluZ051bSBXIEwgdGFwX1cgVEFQX0xfSSBUQVBfVF9JIFRBUF9SX0kgVEFQX0JfSSBkbndJbXBFbmMgRE5XX2R1bW15IEROVyBOV2VsbF9kdW1teSBOV2VsbCBJbXBsYW50X0kgSW1wbGFudF9JQiBXZWxsX0lfTFQgV2VsbF9JX1JCIHRhcF9XX00gTXRhcF94MCBNdGFwX3kwIE10YXBfeDEgVEFQX0xfTSBUQVBfVF9NIFRBUF9SX00gVEFQX0JfTSBNaW1wbGFudCBXZWxsX01fTFQgV2VsbF9NX1JCIEltcGxhbnRfTSBJbXBsYW50X01CIHRhcF9XX08gT3RhcF94MCBPdGFwX3kwIE90YXBfeDEgVEFQX0xfTyBUQVBfVF9PIFRBUF9SX08gVEFQX0JfTyBPaW1wbGFudCBXZWxsX09fTFQgV2VsbF9PX1JCIEltcGxhbnRfTyBJbXBsYW50X09CKQAoKEZ1bGxXZWxsIHQpIChEZWVwTndlbGwgbmlsKSAoT1JpbmdXaWR0aCAwLjApIChNUmluZ1dpZHRoIDAuMCkgKElSaW5nV2lkdGggMC4wKSAoU3BhY2UyMyAwLjApIChTcGFjZTEyIDAuMCkgKElubmVyUmluZyAiIikgKFJpbmdOdW0gMCkgKFcgMCkgKEwgMCkpACgodGFwTGF5ZXIgImhpbGl0ZSIpICh0YXBXaWR0aCAwLjApICh0YXBJbXBFbmMgMC4wKSAobkltcGxhbnQgbmlsKSAocEltcGxhbnQgbmlsKSAoaW1wbGFudFNwYyAwLjApICh3ZWxsTGF5ZXIgbmlsKSAobndlbGxXaWR0aCAwLjApIChudGFwV2VsbFNwYyAwLjApIChwdGFwV2VsbFNwYyAwLjApIChkbndlbGxMYXllciBuaWwpIChkbndlbGxXaWR0aCAwLjApIChkbndXZWxsRW5jIDAuMCkgKGNvbkxheWVyIG5pbCkgKGNvbldpZHRoIDAuMCkgKGNvbkxlbmd0aCAwLjApIChjb25TcGFjaW5nIDAuMCkgKHRhcENvbkVuY1ggMC4wKSAodGFwQ29uRW5jWSAwLjApIChNMExheWVyIG5pbCkgKE0wY29uRW5jWSAwLjApICh2aWFMYXllciBuaWwpICh2aWFXaWR0aCAwLjApICh2aWFMZW5ndGggMC4wKSAodmlhU3BhY2luZyAwLjApIChNMUxheWVyIG5pbCkgKE0xdmlhRW5jWSAwLjApIChNMXZpYUVuY1ggMC4wKSkAKChnTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImciKSkgKGRiQ3JlYXRlVGVybSBnTmV0ICJnIiAiaW5wdXQiKSAoc05ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJzIikpIChkYkNyZWF0ZVRlcm0gc05ldCAicyIgImlucHV0T3V0cHV0IikgKGROZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiZCIpKSAoZGJDcmVhdGVUZXJtIGROZXQgImQiICJpbnB1dE91dHB1dCIpIGlmKChzb3VyY2VGaXJzdCA9PSAiVFJVRSIpIHRoZW4gKGNOZXQgPSBzTmV0KSAobmV0TCA9ICJTIikgZWxzZSAoY05ldCA9IGROZXQpIChuZXRMID0gIkQiKSkgd2hlbigobSA8IDEpIChtID0gMSkpICh4MUNvb3JkID0gMC4wKSAoeTFDb29yZCA9IDAuMCkgKGxhc3RYMUNvb3JkID0gKC0gKDIuMCAqIChkZXBYRW5jICsgZGVwU3BhY2UpKSkpIHdoZW4oZGVwTGF5ZXIgKHkxRGVwQ29vcmQgPSAoeTFDb29yZCAtIGRlcFlFbmMpKSAoeTJEZXBDb29yZCA9ICh5MUNvb3JkICsgdyArIGRlcFlFbmMpKSkgd2hlbigoZmlyc3RDb250YWN0ICE9ICIiKSAoY29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGZpcnN0Q29udGFjdCAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKGNvbnRhY3RJZCBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQvb3BlbiBmaXJzdENvbnRhY3QgY29udGFjdCBjZWxsIGAlcyciIGZpcnN0Q29udGFjdCkpKSB1bmxlc3MoKGNvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIGZpcnN0Q29udGFjdCkpKSBpZigoY05ldCA9PSBzTmV0KSB0aGVuIChvZmZzZXQgPSBzcmNPZmZzZXQpIGVsc2UgKG9mZnNldCA9IGRybk9mZnNldCkpIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkICJjMCIgKCgtIG9mZnNldCk6MCkgIk1ZIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiB3KSkpKSB1bmxlc3MoaW5zdCBlcnJvcihzcHJpbnRmKG5pbCAiRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBgJXMnIiBmaXJzdENvbnRhY3QpKSkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKHgxQ29vcmQgLSBvZmZzZXQpOnkxQ29vcmQpICh4MUNvb3JkOncpKSkpIChtYXN0ZXIgPSAoaW5zdH4+bWFzdGVyKSkgdW5sZXNzKCgobWFzdGVyfj50b3BMYXllcikgJiYgKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgdG9wTGF5ZXIgYW5kL29yIHRvcExheWVyUGluQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgZmlyc3RDb250YWN0KSkpIChiQm94ID0gbGlzdChsaXN0KCgtIChvZmZzZXQgKyBjYWFyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpIGxpc3QoKC0gKG9mZnNldCArIGNhYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkgY2FkYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IChtYXN0ZXJ+PnRvcExheWVyKSBiQm94KSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IikgYWNjZXNzRGlyKSB3aGVuKGxhYmVsTGF5ZXIgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKGNhYXIoYkJveCkgKyAoKGNhYWRyKGJCb3gpIC0gY2FhcihiQm94KSkgLyAyLjApKSAoY2FkYXIoYkJveCkgKyAoKGNhZGFkcihiQm94KSAtIGNhZGFyKGJCb3gpKSAvIDIuMCkpKSBuZXRMICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiBsYWJlbFdpZHRoKSkgd2hlbih3ZWxsTGF5ZXIgdW5sZXNzKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBkaWZmTGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnIiBmaXJzdENvbnRhY3QpKSkgKHgxRGlmZkNvb3JkID0gY2FhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeDFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeDFXZWxsQ29vcmQgPSAoLSAob2Zmc2V0ICsgbWF4KCh3ZWxsRW5jRGlmZiArIHgxRGlmZkNvb3JkKSAod2VsbEVuY1RhcCArIHgxVGFwQ29vcmQpKSkpKSAoeTFEaWZmQ29vcmQgPSBjYWRhcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYXIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MVdlbGxDb29yZCA9ICgtIG1heCgod2VsbEVuY0RpZmYgKyB5MURpZmZDb29yZCkgKHdlbGxFbmNUYXAgKyB5MVRhcENvb3JkKSkpKSAoeTJEaWZmQ29vcmQgPSBjYWRhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTJUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFkcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkyV2VsbENvb3JkID0gbWF4KCh3ZWxsRW5jRGlmZiArIHkyRGlmZkNvb3JkKSAod2VsbEVuY1RhcCArIHkyVGFwQ29vcmQpKSkpIChkYkNsb3NlIGNvbnRhY3RJZCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoeDFDb29yZCAtIGRpZmZFeHQpOnkxQ29vcmQpICh4MUNvb3JkOncpKSkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBjTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIpIGFjY2Vzc0Rpcikgd2hlbigoZmlyc3RDb250YWN0ID09ICIiKSB3aGVuKGxhYmVsTGF5ZXIgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKC0gKHgxQ29vcmQgKyAoZGlmZkV4dCAvIDIuMCkpKSAoeTFDb29yZCArICh3IC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKHdlbGxMYXllciAoeDFXZWxsQ29vcmQgPSAoLSAoeDFDb29yZCArIGRpZmZFeHQgKyB3ZWxsRW5jRGlmZikpKSAoeTFXZWxsQ29vcmQgPSAoLSAoeTFDb29yZCArIHdlbGxFbmNEaWZmKSkpICh5MldlbGxDb29yZCA9ICh5MUNvb3JkICsgdyArIHdlbGxFbmNEaWZmKSkpKSB3aGVuKChtID4gMSkgd2hlbigoc2hhcmVkU291cmNlID09ICIiKSBlcnJvcigiTWlzc2luZyBzaGFyZWQgc291cmNlIGNvbnRhY3QgbmFtZSBwcm9wZXJ0eSIpKSAoc2hhcmVkU3JjSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgc2hhcmVkU291cmNlICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3Moc2hhcmVkU3JjSWQgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kL29wZW4gc2hhcmVkIHNvdXJjZSBjb250YWN0IGNlbGwgYCVzJyIgc2hhcmVkU291cmNlKSkpIHVubGVzcygoc2hhcmVkU3JjSWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBzaGFyZWRTb3VyY2UpKSkgd2hlbigoc2hhcmVkRHJhaW4gPT0gIiIpIGVycm9yKCJNaXNzaW5nIHNoYXJlZCBkcmFpbiBjb250YWN0IG5hbWUgcHJvcGVydHkiKSkgKHNoYXJlZERybklkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIHNoYXJlZERyYWluICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3Moc2hhcmVkRHJuSWQgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kL29wZW4gc2hhcmVkIGRyYWluIGNvbnRhY3QgY2VsbCBgJXMnIiBzaGFyZWREcmFpbikpKSB1bmxlc3MoKHNoYXJlZERybklkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgc2hhcmVkRHJhaW4pKSkpIChjTmV0ID0gaWYoKGNOZXQgPT0gc05ldCkgZE5ldCBzTmV0KSkgKG5ldEwgPSBpZigobmV0TCA9PSAiUyIpICJEIiAiUyIpKSBmb3IobiAxIG0gKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIGxpc3QoKHgxQ29vcmQ6KHkxQ29vcmQgLSBnYXRlRXh0KSkgKCh4MUNvb3JkICsgbCk6KHkxQ29vcmQgKyB3ICsgZ2F0ZUV4dCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZ05ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIGxpc3QoKHgxQ29vcmQ6KHkxQ29vcmQgKyB3KSkgKCh4MUNvb3JkICsgbCk6KHkxQ29vcmQgKyB3ICsgZ2F0ZUV4dCkpKSkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBnTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIikgYWNjZXNzRGlyKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBnYXRlTGF5ZXIgbGlzdCgoeDFDb29yZDooeTFDb29yZCAtIGdhdGVFeHQpKSAoKHgxQ29vcmQgKyBsKTp5MUNvb3JkKSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoImJvdHRvbSIpIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICgoeDFDb29yZCArIGwpOih5MUNvb3JkICsgdykpKSkgd2hlbihkZXBMYXllciBjb25kKCgoKHgxQ29vcmQgLSBsYXN0WDFDb29yZCAtICgyLjAgKiBkZXBYRW5jKSkgPCBkZXBTcGFjZSkgKHgxRGVwQ29vcmQgPSAobGFzdFgxQ29vcmQgKyBkZXBYRW5jKSkpICh0ICh4MURlcENvb3JkID0gKHgxQ29vcmQgLSBkZXBYRW5jKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGVwTGF5ZXIgbGlzdCgoeDFEZXBDb29yZDp5MURlcENvb3JkKSAoKHgxQ29vcmQgKyBsICsgZGVwWEVuYyk6eTJEZXBDb29yZCkpKSkgKHgxQ29vcmQgPSAoeDFDb29yZCArIGwpKSB3aGVuKChuICE9IG0pIGlmKChjTmV0ID09IHNOZXQpIHRoZW4gKGNvbnRhY3RJZCA9IHNoYXJlZFNyY0lkKSAob2Zmc2V0ID0gc3JjT2Zmc2V0KSBlbHNlIChjb250YWN0SWQgPSBzaGFyZWREcm5JZCkgKG9mZnNldCA9IGRybk9mZnNldCkpIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkIHNwcmludGYobmlsICJjJWQiIG4pICgob2Zmc2V0ICsgeDFDb29yZCk6eTFDb29yZCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiB3KSkpKSB1bmxlc3MoaW5zdCBlcnJvcihzcHJpbnRmKG5pbCAiRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBgJXMnIiAoY29udGFjdElkfj5jZWxsTmFtZSkpKSkgKG1hc3RlciA9IChpbnN0fj5tYXN0ZXIpKSB1bmxlc3MoKChtYXN0ZXJ+PnRvcExheWVyKSAmJiAobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSBlcnJvcihzcHJpbnRmKG5pbCAiTWlzc2luZyB0b3BMYXllciBhbmQvb3IgdG9wTGF5ZXJQaW5CYm94IGNlbGwgcHJvcGVydGllcyBpbiBgJXMnIiAoY29udGFjdElkfj5jZWxsTmFtZSkpKSkgKGJCb3ggPSBsaXN0KGxpc3QoKGNhYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyB4MUNvb3JkICsgb2Zmc2V0KSBjYWRhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkgbGlzdCgoY2FhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyB4MUNvb3JkICsgb2Zmc2V0KSBjYWRhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgKG1hc3Rlcn4+dG9wTGF5ZXIpIGJCb3gpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gY05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIpIGFjY2Vzc0Rpcikgd2hlbihsYWJlbExheWVyIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KChjYWFyKGJCb3gpICsgKChjYWFkcihiQm94KSAtIGNhYXIoYkJveCkpIC8gMi4wKSkgKGNhZGFyKGJCb3gpICsgKChjYWRhZHIoYkJveCkgLSBjYWRhcihiQm94KSkgLyAyLjApKSkgbmV0TCAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgbGFiZWxXaWR0aCkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKChvZmZzZXQgKyB4MUNvb3JkKTooeTFDb29yZCArIHcpKSkpKSB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgZGlmZkxheWVyQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgKGNvbnRhY3RJZH4+Y2VsbE5hbWUpKSkpIChsYXN0WDFDb29yZCA9IHgxQ29vcmQpICh4MUNvb3JkID0gKCgyLjAgKiBvZmZzZXQpICsgKHgxQ29vcmQgKyAoY2FhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpIC0gY2FhcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpKSkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkIC0gb2Zmc2V0KTp5MUNvb3JkKSAoeDFDb29yZDooeTFDb29yZCArIHcpKSkpKSB3aGVuKHdlbGxMYXllciAoeTFEaWZmQ29vcmQgPSBjYWRhcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYXIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MVdlbGxDb29yZCA9IG1pbigoLSBtYXgoKHdlbGxFbmNEaWZmICsgeTFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwICsgeTFUYXBDb29yZCkpKSB5MVdlbGxDb29yZCkpICh5MkRpZmZDb29yZCA9IGNhZGFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MlRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTJXZWxsQ29vcmQgPSBtYXgoKHdlbGxFbmNEaWZmICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwICsgeTJUYXBDb29yZCkgeTJXZWxsQ29vcmQpKSkpIChjTmV0ID0gaWYoKGNOZXQgPT0gc05ldCkgZE5ldCBzTmV0KSkgKG5ldEwgPSBpZigobmV0TCA9PSAiUyIpICJEIiAiUyIpKSkgd2hlbigobSAhPSAxKSAoZGJDbG9zZSBzaGFyZWRTcmNJZCkgKGRiQ2xvc2Ugc2hhcmVkRHJuSWQpKSAoY05ldCA9IGlmKChjTmV0ID09IHNOZXQpIGROZXQgc05ldCkpIChuZXRMID0gaWYoKG5ldEwgPT0gIlMiKSAiRCIgIlMiKSkgd2hlbigobGFzdENvbnRhY3QgIT0gIiIpIChjb250YWN0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgbGFzdENvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhjb250YWN0SWQgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kL29wZW4gbGFzdENvbnRhY3QgY29udGFjdCBjZWxsIGAlcyciIGxhc3RDb250YWN0KSkpIHVubGVzcygoY29udGFjdElkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgbGFzdENvbnRhY3QpKSkgaWYoKGNOZXQgPT0gc05ldCkgdGhlbiAob2Zmc2V0ID0gc3JjT2Zmc2V0KSBlbHNlIChvZmZzZXQgPSBkcm5PZmZzZXQpKSAoaW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGNvbnRhY3RJZCBzcHJpbnRmKG5pbCAiYyVkIiBtKSAoKG9mZnNldCArIHgxQ29vcmQpOnkxQ29vcmQpICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgdykpKSkgdW5sZXNzKGluc3QgZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgZmlyc3Qgc291cmNlIGNvbnRhY3QiKSkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKG9mZnNldCArIHgxQ29vcmQpOih5MUNvb3JkICsgdykpKSkpIChtYXN0ZXIgPSAoaW5zdH4+bWFzdGVyKSkgdW5sZXNzKCgobWFzdGVyfj50b3BMYXllcikgJiYgKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgdG9wTGF5ZXIgYW5kL29yIHRvcExheWVyUGluQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgbGFzdENvbnRhY3QpKSkgKGJCb3ggPSBsaXN0KGxpc3QoKGNhYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyB4MUNvb3JkICsgb2Zmc2V0KSBjYWRhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkgbGlzdCgoY2FhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyB4MUNvb3JkICsgb2Zmc2V0KSBjYWRhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgKG1hc3Rlcn4+dG9wTGF5ZXIpIGJCb3gpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gY05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgInJpZ2h0IikgYWNjZXNzRGlyKSB3aGVuKGxhYmVsTGF5ZXIgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKGNhYXIoYkJveCkgKyAoKGNhYWRyKGJCb3gpIC0gY2FhcihiQm94KSkgLyAyLjApKSAoY2FkYXIoYkJveCkgKyAoKGNhZGFkcihiQm94KSAtIGNhZGFyKGJCb3gpKSAvIDIuMCkpKSBuZXRMICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiBsYWJlbFdpZHRoKSkgd2hlbih3ZWxsTGF5ZXIgdW5sZXNzKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBkaWZmTGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnIiBsYXN0Q29udGFjdCkpKSAoeTFEaWZmQ29vcmQgPSBjYWRhcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYXIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MVdlbGxDb29yZCA9IG1pbigoLSBtYXgoKHdlbGxFbmNEaWZmICsgeTFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwICsgeTFUYXBDb29yZCkpKSB5MVdlbGxDb29yZCkpICh5MkRpZmZDb29yZCA9IGNhZGFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MlRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTJXZWxsQ29vcmQgPSBtYXgoKHdlbGxFbmNEaWZmICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwICsgeTJUYXBDb29yZCkgeTJXZWxsQ29vcmQpKSAoeDJEaWZmQ29vcmQgPSBjYWFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh4MlRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh4MldlbGxDb29yZCA9IChvZmZzZXQgKyB4MUNvb3JkICsgbWF4KCh3ZWxsRW5jRGlmZiArIHgyRGlmZkNvb3JkKSAod2VsbEVuY1RhcCArIHgyVGFwQ29vcmQpKSkpKSAoZGJDbG9zZSBjb250YWN0SWQpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKHgxQ29vcmQgKyBkaWZmRXh0KTooeTFDb29yZCArIHcpKSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gY05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgInJpZ2h0IikgYWNjZXNzRGlyKSB3aGVuKChsYXN0Q29udGFjdCA9PSAiIikgd2hlbihsYWJlbExheWVyIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KCh4MUNvb3JkICsgKGRpZmZFeHQgLyAyLjApKSAoeTFDb29yZCArICh3IC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKHdlbGxMYXllciAoeDJXZWxsQ29vcmQgPSAoeDFDb29yZCArIGRpZmZFeHQgKyB3ZWxsRW5jRGlmZikpICh5MldlbGxDb29yZCA9IG1heCgoeTFDb29yZCArIHcgKyB3ZWxsRW5jRGlmZikgeTJXZWxsQ29vcmQpKSkpIHdoZW4od2VsbExheWVyIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgbGlzdChsaXN0KHgxV2VsbENvb3JkIHkxV2VsbENvb3JkKSBsaXN0KHgyV2VsbENvb3JkIHkyV2VsbENvb3JkKSkpKSkAKGRpZmZMYXllciBnYXRlTGF5ZXIgd2VsbExheWVyIGRlcExheWVyIGRpZmZFeHQgd2VsbEVuY0RpZmYgd2VsbEVuY1RhcCBkZXBYRW5jIGRlcFlFbmMgZGVwU3BhY2UgbGFiZWxMYXllciBsYWJlbFdpZHRoIHNvdXJjZUZpcnN0IHNoYXJlZERyYWluIHNoYXJlZFNvdXJjZSBsYXN0Q29udGFjdCBmaXJzdENvbnRhY3QgZ2F0ZUV4dCBzcmNPZmZzZXQgZHJuT2Zmc2V0IG0gbCB3IGdOZXQgc05ldCBkTmV0IGNOZXQgbmV0TCB4MUNvb3JkIHkxQ29vcmQgbGFzdFgxQ29vcmQgeTFEZXBDb29yZCB5MkRlcENvb3JkIGNvbnRhY3RJZCBvZmZzZXQgaW5zdCBtYXN0ZXIgYkJveCBkYmlkIHBpbmlkIHgxRGlmZkNvb3JkIHgxVGFwQ29vcmQgeDFXZWxsQ29vcmQgeTFEaWZmQ29vcmQgeTFUYXBDb29yZCB5MVdlbGxDb29yZCB5MkRpZmZDb29yZCB5MlRhcENvb3JkIHkyV2VsbENvb3JkIHNoYXJlZFNyY0lkIHNoYXJlZERybklkIG4geDFEZXBDb29yZCB4MkRpZmZDb29yZCB4MlRhcENvb3JkIHgyV2VsbENvb3JkKQAoKHNvdXJjZUZpcnN0ICJUUlVFIikgKHNoYXJlZERyYWluICIiKSAoc2hhcmVkU291cmNlICIiKSAobGFzdENvbnRhY3QgIiIpIChmaXJzdENvbnRhY3QgIiIpIChnYXRlRXh0IDAuMCkgKHNyY09mZnNldCAwLjApIChkcm5PZmZzZXQgMC4wKSAobSAxKSAobCAwLjApICh3IDAuMCkpACgoZGlmZkxheWVyICJoaWxpdGUiKSAoZ2F0ZUxheWVyICJtYXJrZXIiKSAod2VsbExheWVyIG5pbCkgKGRlcExheWVyIG5pbCkgKGRpZmZFeHQgMC4wKSAod2VsbEVuY0RpZmYgMC4wKSAod2VsbEVuY1RhcCAwLjApIChkZXBYRW5jIDAuMCkgKGRlcFlFbmMgMC4wKSAoZGVwU3BhY2UgMC4wKSAobGFiZWxMYXllciBsaXN0KCJ0ZXh0IiAiZHJhd2luZyIpKSAobGFiZWxXaWR0aCAwLjQpKQAodW5sZXNzKChtZXRvcExheWVyID0gbnRoKG1ldG9wTnVtYmVyIG9wdGlvbk9uTGF5ZXIpKSBlcnJvcigibWV0b3BDbGFzczogIENhbm5vdCBmaW5kIGxheWVyIGZvciBvcHRpb24gbnVtYmVyICVkIiBtZXRvcE51bWJlcikpIChuZXQwID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJtMCIpKSAoZGJDcmVhdGVUZXJtIG5ldDAgIm0wIiAiaW5wdXRPdXRwdXQiKSAobmV0MSA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAibTEiKSkgKGRiQ3JlYXRlVGVybSBuZXQxICJtMSIgImlucHV0T3V0cHV0IikgKG5ldGIgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgInBwZCIpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBtZXRvcExheWVyIGxpc3QoKDAuMDowLjApIChsOncpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0YikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcGluTGF5ZXIgbGlzdCgoKC0gbWluUGluV2lkdGgpOjAuMCkgKDAuMDp3KSkpKSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0MCBkYklkKSkgc2V0U0dxKHBpbklkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiKSBhY2Nlc3NEaXIpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHBpbkxheWVyIGxpc3QoKGw6MC4wKSAoKGwgKyBtaW5QaW5XaWR0aCk6dykpKSkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldDEgZGJJZCkpIHNldFNHcShwaW5JZCBsaXN0KCJ0b3AiICJib3R0b20iICJyaWdodCIpIGFjY2Vzc0RpcikpAChvcHRpb25PbkxheWVyIHBpbkxheWVyIG1pblBpbldpZHRoIG1ldG9wTnVtYmVyIHcgbCBtZXRvcExheWVyIG5ldDAgbmV0MSBuZXRiIGRiSWQgcGluSWQpACgobWV0b3BOdW1iZXIgOCkgKHcgMC4wKSAobCAwLjApKQAoKG9wdGlvbk9uTGF5ZXIgJyhuaWwgJygibWV0MSIgIm9wdGlvbjEiKSAnKCJtZXQxIiAib3B0aW9uMiIpICcoIm1ldDEiICJvcHRpb24zIikgJygibWV0MSIgIm9wdGlvbjQiKSAnKCJtZXQxIiAib3B0aW9uNSIpICcoIm1ldDEiICJvcHRpb242IikgJygibWV0MSIgIm9wdGlvbjciKSAnKCJtZXQxIiAib3B0aW9uOCIpKSkgKHBpbkxheWVyICcoIm1ldDEiICJkcmF3aW5nIikpIChtaW5QaW5XaWR0aCAwLjApKQAoKGRidXBlcnV1ID0gKHRjQ2VsbFZpZXd+PkRCVVBlclVVKSkgZm9yZWFjaChwYXJhbSAnKHcgbCB4T2Zmc2V0IHlPZmZzZXQgcmluZ1dpZHRoIGFkZGl0aW9uYWxXaWR0aEluQmV2ZWwgbGxCZXZlbExlbmd0aCB1bEJldmVsTGVuZ3RoIGxyQmV2ZWxMZW5ndGggdXJCZXZlbExlbmd0aCkgdW5sZXNzKHplcm9wKG1vZChldmFsKHBhcmFtKSBncmlkKSkgc2V0KHBhcmFtICgoKGV2YWwocGFyYW0pICsgZ3JpZCkgLyBncmlkKSAqIGdyaWQpKSkpIHdoZW4oKGJldmVsVGhlT3V0c2lkZSA9PSAiRkFMU0UiKSAoYmV2ZWxUaGVPdXRzaWRlID0gbmlsKSkgd2hlbigoYnJlYWt1cFBvbHlnb25zID09ICJGQUxTRSIpIChicmVha3VwUG9seWdvbnMgPSBuaWwpKSAoczIgPSBzcXJ0KDIuMCkpIChiZXZlbEluc2lkZU9mZnNldCA9ICgocmluZ1dpZHRoICogKHMyIC0gMS4wKSkgKyAoczIgKiBhZGRpdGlvbmFsV2lkdGhJbkJldmVsKSkpIChiZXZlbEluc2lkZU9mZnNldCA9IGZpeCgoYmV2ZWxJbnNpZGVPZmZzZXQgKyAwLjk5OSkpKSB1bmxlc3MoemVyb3AobW9kKGJldmVsSW5zaWRlT2Zmc2V0IGdyaWQpKSAoYmV2ZWxJbnNpZGVPZmZzZXQgPSAoKChiZXZlbEluc2lkZU9mZnNldCArIGdyaWQpIC8gZ3JpZCkgKiBncmlkKSkpIChjYW5ub3RCZXZlbExlbmd0aCA9IChyaW5nV2lkdGggLSBiZXZlbEluc2lkZU9mZnNldCkpIGNvbmQoKChsbEJldmVsID0gKGxsQmV2ZWxMZW5ndGggPiBjYW5ub3RCZXZlbExlbmd0aCkpIChhcnJheVNpemUgPSA0KSkgKHQgKGFycmF5U2l6ZSA9IDIpKSkgY29uZCgoKGxyQmV2ZWwgPSAobHJCZXZlbExlbmd0aCA+IGNhbm5vdEJldmVsTGVuZ3RoKSkgKGFycmF5U2l6ZSA9IChhcnJheVNpemUgKyA0KSkpICh0IChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgMikpKSkgY29uZCgoKHVyQmV2ZWwgPSAodXJCZXZlbExlbmd0aCA+IGNhbm5vdEJldmVsTGVuZ3RoKSkgKGFycmF5U2l6ZSA9IChhcnJheVNpemUgKyA0KSkpICh0IChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgMikpKSkgY29uZCgoKHVsQmV2ZWwgPSAodWxCZXZlbExlbmd0aCA+IGNhbm5vdEJldmVsTGVuZ3RoKSkgKGFycmF5U2l6ZSA9IChhcnJheVNpemUgKyA0KSkpICh0IChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgMikpKSkgKGluc2lkZUluZGV4ID0gKGFycmF5U2l6ZSAvIDIpKSAob3V0c2lkZUluZGV4ID0gKGluc2lkZUluZGV4ICsgMSkpIChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgMykpIGRlY2xhcmUodGhlUmluZ1BvaW50c1thcnJheVNpemVdKSAodGhlT3V0c2lkZVggPSB4T2Zmc2V0KSAodGhlT3V0c2lkZVkgPSB5T2Zmc2V0KSBjb25kKCghbGxCZXZlbCAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCArIHJpbmdXaWR0aCkpICh0aGVJbnNpZGVZID0gKHRoZU91dHNpZGVZICsgcmluZ1dpZHRoKSkgKGJlZ2lubmluZ0luc2lkZVBvaW50ID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpIChiZWdpbm5pbmdPdXRzaWRlUG9pbnQgPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludCkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9IGJlZ2lubmluZ091dHNpZGVQb2ludCkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAodGhlT3V0c2lkZVkgPSAodGhlT3V0c2lkZVkgKyBsbEJldmVsTGVuZ3RoKSkgKHRoZUluc2lkZVkgPSAodGhlT3V0c2lkZVkgKyBiZXZlbEluc2lkZU9mZnNldCkpICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYICsgcmluZ1dpZHRoKSkgKGJlZ2lubmluZ0luc2lkZVBvaW50ID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpIChiZWdpbm5pbmdPdXRzaWRlUG9pbnQgPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludCkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIHdoZW4oYmV2ZWxUaGVPdXRzaWRlICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSBiZWdpbm5pbmdPdXRzaWRlUG9pbnQpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodGhlT3V0c2lkZVggPSAodGhlT3V0c2lkZVggKyBsbEJldmVsTGVuZ3RoKSkgKHRoZU91dHNpZGVZID0geU9mZnNldCkgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggKyBiZXZlbEluc2lkZU9mZnNldCkpICh0aGVJbnNpZGVZID0gKHRoZU91dHNpZGVZICsgcmluZ1dpZHRoKSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSBjb25kKChiZXZlbFRoZU91dHNpZGUgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpKSAodCAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHhPZmZzZXQ6dGhlT3V0c2lkZVkpKSAoYmVnaW5uaW5nT3V0c2lkZVBvaW50ID0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgoIWxyQmV2ZWwgKHRoZU91dHNpZGVYID0gKHhPZmZzZXQgKyBsKSkgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggLSByaW5nV2lkdGgpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHQgKHRoZU91dHNpZGVYID0gKHhPZmZzZXQgKyBsICsgKC0gbHJCZXZlbExlbmd0aCkpKSAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCAtIGJldmVsSW5zaWRlT2Zmc2V0KSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSB3aGVuKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0aGVPdXRzaWRlWCA9ICh0aGVPdXRzaWRlWCArIGxyQmV2ZWxMZW5ndGgpKSAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCAtIHJpbmdXaWR0aCkpICh0aGVPdXRzaWRlWSA9ICh0aGVPdXRzaWRlWSArIGxyQmV2ZWxMZW5ndGgpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSArIGJldmVsSW5zaWRlT2Zmc2V0KSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSBjb25kKChiZXZlbFRoZU91dHNpZGUgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpKSAodCAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnlPZmZzZXQpKSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgoIXVyQmV2ZWwgKHRoZU91dHNpZGVZID0gKHlPZmZzZXQgKyB3KSkgKHRoZUluc2lkZVkgPSAodGhlT3V0c2lkZVkgLSByaW5nV2lkdGgpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHQgKHRoZU91dHNpZGVZID0gKHlPZmZzZXQgKyB3ICsgKC0gdXJCZXZlbExlbmd0aCkpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSAtIGJldmVsSW5zaWRlT2Zmc2V0KSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSB3aGVuKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0aGVPdXRzaWRlWSA9ICh5T2Zmc2V0ICsgdykpICh0aGVJbnNpZGVZID0gKHRoZU91dHNpZGVZIC0gcmluZ1dpZHRoKSkgKHRoZU91dHNpZGVYID0gKHRoZU91dHNpZGVYIC0gdXJCZXZlbExlbmd0aCkpICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYIC0gYmV2ZWxJbnNpZGVPZmZzZXQpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkpICh0ICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAoKHhPZmZzZXQgKyBsKTp0aGVPdXRzaWRlWSkpKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKCghdWxCZXZlbCAodGhlT3V0c2lkZVggPSB4T2Zmc2V0KSAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCArIHJpbmdXaWR0aCkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAodGhlT3V0c2lkZVggPSAoeE9mZnNldCArIHVsQmV2ZWxMZW5ndGgpKSAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCArIGJldmVsSW5zaWRlT2Zmc2V0KSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSB3aGVuKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0aGVPdXRzaWRlWCA9IHhPZmZzZXQpICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYICsgcmluZ1dpZHRoKSkgKHRoZU91dHNpZGVZID0gKHRoZU91dHNpZGVZIC0gdWxCZXZlbExlbmd0aCkpICh0aGVJbnNpZGVZID0gKHRoZU91dHNpZGVZIC0gYmV2ZWxJbnNpZGVPZmZzZXQpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkpICh0ICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6KHlPZmZzZXQgKyB3KSkpKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludCkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9IGJlZ2lubmluZ091dHNpZGVQb2ludCkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50KSBjb25kKChicmVha3VwUG9seWdvbnMgKGluc2lkZUluZGV4ID0gKChhcnJheVNpemUgLSAzKSAvIDIpKSAob3V0c2lkZUluZGV4ID0gKGluc2lkZUluZGV4ICsgMSkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZSBjb25kKChsbEJldmVsIChyaW5nTGlzdDEgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMikpKSAodCAocmluZ0xpc3QxID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgobHJCZXZlbCAocmluZ0xpc3QyID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDIpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDIpKSkgKHQgKHJpbmdMaXN0MiA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpIGNvbmQoKHVyQmV2ZWwgKHJpbmdMaXN0MyA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAyKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAyKSkpICh0IChyaW5nTGlzdDMgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKCh1bEJldmVsIChyaW5nTGlzdDQgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMikpKSAodCAocmluZ0xpc3Q0ID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkpICh0IGNvbmQoKGxsQmV2ZWwgKHJpbmdMaXN0MSA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDIpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHQgKHJpbmdMaXN0MSA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpIGNvbmQoKGxyQmV2ZWwgKHJpbmdMaXN0MiA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDIpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHQgKHJpbmdMaXN0MiA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpIGNvbmQoKHVyQmV2ZWwgKHJpbmdMaXN0MyA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDIpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHQgKHJpbmdMaXN0MyA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpIGNvbmQoKHVsQmV2ZWwgKHJpbmdMaXN0NCA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDIpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHQgKHJpbmdMaXN0NCA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpKSkgZm9yZWFjaChwb2ludCByaW5nTGlzdDEgKHRlbXBSaW5nTGlzdCA9IGNvbnMoKChjYXIocG9pbnQpIC8gZGJ1cGVydXUpOihjYWRyKHBvaW50KSAvIGRidXBlcnV1KSkgdGVtcFJpbmdMaXN0KSkpIChyaW5nTGlzdDEgPSB0ZW1wUmluZ0xpc3QpICh0ZW1wUmluZ0xpc3QgPSBuaWwpIGZvcmVhY2gocG9pbnQgcmluZ0xpc3QyICh0ZW1wUmluZ0xpc3QgPSBjb25zKCgoY2FyKHBvaW50KSAvIGRidXBlcnV1KTooY2Fkcihwb2ludCkgLyBkYnVwZXJ1dSkpIHRlbXBSaW5nTGlzdCkpKSAocmluZ0xpc3QyID0gdGVtcFJpbmdMaXN0KSAodGVtcFJpbmdMaXN0ID0gbmlsKSBmb3JlYWNoKHBvaW50IHJpbmdMaXN0MyAodGVtcFJpbmdMaXN0ID0gY29ucygoKGNhcihwb2ludCkgLyBkYnVwZXJ1dSk6KGNhZHIocG9pbnQpIC8gZGJ1cGVydXUpKSB0ZW1wUmluZ0xpc3QpKSkgKHJpbmdMaXN0MyA9IHRlbXBSaW5nTGlzdCkgKHRlbXBSaW5nTGlzdCA9IG5pbCkgZm9yZWFjaChwb2ludCByaW5nTGlzdDQgKHRlbXBSaW5nTGlzdCA9IGNvbnMoKChjYXIocG9pbnQpIC8gZGJ1cGVydXUpOihjYWRyKHBvaW50KSAvIGRidXBlcnV1KSkgdGVtcFJpbmdMaXN0KSkpIChyaW5nTGlzdDQgPSB0ZW1wUmluZ0xpc3QpICh0ZW1wUmluZ0xpc3QgPSBuaWwpIHdoZW4ocmluZ0xheWVyIChuZXQgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgInBwZCIpKSAoZGJDcmVhdGVUZXJtIG5ldCAiIiAiaW5wdXRPdXRwdXQiKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyByaW5nTGF5ZXIgcmluZ0xpc3QxKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHJpbmdMYXllciByaW5nTGlzdDIpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgcmluZ0xheWVyIHJpbmdMaXN0MykpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyByaW5nTGF5ZXIgcmluZ0xpc3Q0KSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInJpbmdQb2ludHMxIiAibGlzdCIgcmluZ0xpc3QxKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInJpbmdQb2ludHMyIiAibGlzdCIgcmluZ0xpc3QyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInJpbmdQb2ludHMzIiAibGlzdCIgcmluZ0xpc3QzKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInJpbmdQb2ludHM0IiAibGlzdCIgcmluZ0xpc3Q0KSkgKHQgKHJpbmdMaXN0ID0gbmlsKSBmb3IoaSAxIG91dHNpZGVJbmRleCAocmluZ0xpc3QgPSBjb25zKHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCAtIGkpXSByaW5nTGlzdCkpKSBmb3JlYWNoKHBvaW50IHJpbmdMaXN0ICh0ZW1wUmluZ0xpc3QgPSBjb25zKCgoY2FyKHBvaW50KSAvIGRidXBlcnV1KTooY2Fkcihwb2ludCkgLyBkYnVwZXJ1dSkpIHRlbXBSaW5nTGlzdCkpKSAocmluZ0xpc3QgPSB0ZW1wUmluZ0xpc3QpICh0ZW1wUmluZ0xpc3QgPSBuaWwpIHdoZW4ocmluZ0xheWVyIChuZXQgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgInBwZCIpKSAoZGJDcmVhdGVUZXJtIG5ldCAiIiAiaW5wdXRPdXRwdXQiKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyByaW5nTGF5ZXIgcmluZ0xpc3QpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAicmluZ1BvaW50cyIgImxpc3QiIHJpbmdMaXN0KSkpKQAodyBsIHhPZmZzZXQgeU9mZnNldCByaW5nTGF5ZXIgcmluZ1dpZHRoIGFkZGl0aW9uYWxXaWR0aEluQmV2ZWwgbGxCZXZlbExlbmd0aCB1bEJldmVsTGVuZ3RoIGxyQmV2ZWxMZW5ndGggdXJCZXZlbExlbmd0aCBiZXZlbFRoZU91dHNpZGUgZ3JpZCBicmVha3VwUG9seWdvbnMgZGJ1cGVydXUgcGFyYW0gczIgYmV2ZWxJbnNpZGVPZmZzZXQgY2Fubm90QmV2ZWxMZW5ndGggbGxCZXZlbCBhcnJheVNpemUgbHJCZXZlbCB1ckJldmVsIHVsQmV2ZWwgaW5zaWRlSW5kZXggb3V0c2lkZUluZGV4IHRoZVJpbmdQb2ludHMgdGhlT3V0c2lkZVggdGhlT3V0c2lkZVkgdGhlSW5zaWRlWCB0aGVJbnNpZGVZIGJlZ2lubmluZ0luc2lkZVBvaW50IGJlZ2lubmluZ091dHNpZGVQb2ludCByaW5nTGlzdDEgcmluZ0xpc3QyIHJpbmdMaXN0MyByaW5nTGlzdDQgcG9pbnQgdGVtcFJpbmdMaXN0IG5ldCBkYmlkIHJpbmdMaXN0IGkpACgodyA1MDAwMCkgKGwgNTAwMDApICh4T2Zmc2V0IDApICh5T2Zmc2V0IDApIChyaW5nTGF5ZXIgbGlzdCgiaGlsaXRlIiAiZHJhd2luZyIpKSAocmluZ1dpZHRoIDQwMDApIChhZGRpdGlvbmFsV2lkdGhJbkJldmVsIDApIChsbEJldmVsTGVuZ3RoIDApICh1bEJldmVsTGVuZ3RoIDApIChsckJldmVsTGVuZ3RoIDApICh1ckJldmVsTGVuZ3RoIDApIChiZXZlbFRoZU91dHNpZGUgIkZBTFNFIikgKGdyaWQgNTApIChicmVha3VwUG9seWdvbnMgIkZBTFNFIikpAChpZigobG9TaGllbGRPZmZzZXQgPD0gMCkgdGhlbiBlcnJvcigibG9TaGllbGRPZmZzZXQgY2FuIG5vdCBiZSBzbWFsbGVyIG9yIGVxdWFsIHRvIHplcm8iKSkgaWYoKHVwU2hpZWxkT2Zmc2V0IDw9IDApIHRoZW4gZXJyb3IoInVwU2hpZWxkT2Zmc2V0IGNhbiBub3QgYmUgc21hbGxlciBvciBlcXVhbCB0byB6ZXJvIikpIGlmKCgodXBwZXJTaGllbGQgPT0gdCkgfHwgKHVwcGVyU2hpZWxkID09ICJUUlVFIikpIHRoZW4gKHVwcGVyU2hpZWxkID0gdCkgZWxzZSAodXBwZXJTaGllbGQgPSBuaWwpKSBpZigoKGxvd2VyU2hpZWxkID09IHQpIHx8IChsb3dlclNoaWVsZCA9PSAiVFJVRSIpKSB0aGVuIChsb3dlclNoaWVsZCA9IHQpIGVsc2UgKGxvd2VyU2hpZWxkID0gbmlsKSkgd2hlbihzdHJpbmdwKGZ1c2VPbkxheWVyKSAoZnVzZU9uTGF5ZXIgPSBsaXN0KGZ1c2VPbkxheWVyICJkcmF3aW5nIikpKSB3aGVuKHN0cmluZ3AocGluTGF5ZXIpIChwaW5MYXllciA9IGxpc3QocGluTGF5ZXIgImRyYXdpbmciKSkpIChuZXQwID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJmMCIpKSAobmV0MSA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAiZjEiKSkgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIChkZWx0YVgxID0gMC4wKSAoZGVsdGFZMSA9IDAuMCkgKG9yaWVudCA9ICJSMCIpIHdoZW4oKCFjb250YWN0TmFtZSB8fCAoY29udGFjdE5hbWUgPT0gIiIpKSBlcnJvcigiQ29udGFjdCBuYW1lIHNob3VsZCBhbHdheXMgYmUgc3BlY2lmaWVkXG4iKSkgd2hlbigoY29udGFjdE5hbWUgJiYgKGNvbnRhY3ROYW1lICE9ICIiKSkgKGNvbnRhY3RJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBjb250YWN0TmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKGNvbnRhY3RJZCBlcnJvcigiQ2Fubm90IGZpbmQvb3BlbiBjb250YWN0IGNvbnRhY3QgY2VsbCBgJXMnXG4iIGNvbnRhY3ROYW1lKSkpIChpbnN0MCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGNvbnRhY3RJZCAiZjAiICh5T2Zmc2V0OjAuMCkgIlIwIiAxKSkgdW5sZXNzKGluc3QwIGVycm9yKCJDYW5ub3QgY3JlYXRlIGFuIGluc3Qgb2YgYCVzJ1xuIiBjb250YWN0TmFtZSkpIChtYXN0ZXIgPSAoaW5zdDB+Pm1hc3RlcikpIGlmKCgobWFzdGVyfj50b3BMYXllcikgJiYgKG1hc3Rlcn4+Ym90TGF5ZXIpICYmIChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkgJiYgKG1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkgdGhlbiAoYm90TGF5ZXIgPSAobWFzdGVyfj5ib3RMYXllcikpICh0b3BMYXllciA9IChtYXN0ZXJ+PnRvcExheWVyKSkgKGJvdEJib3ggPSAobWFzdGVyfj5ib3RMYXllckJib3gpKSAodG9wQmJveCA9IChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpIGVsc2UgZXJyb3IoIkNhbm5vdCBmaW5kIHRoZSBwcm9wZXIgbWFzdGVyIHByb3BlcnRpZXMgb24gdGhlIGNvbnRhY3RcbiIpKSB3aGVuKCghcGluTGF5ZXIgfHwgKHBpbkxheWVyID09ICIiKSkgZXJyb3IoIlBpbmxheWVyIGhhcyBub3QgYmVlbiBkZWZpbmVkXG4iKSkgY29uZCgoKChmdXNlT25MYXllciA9PSBib3RMYXllcikgJiYgKChjYWFyKChtYXN0ZXJ+PmJCb3gpKSAtIGNhYXIoYm90QmJveCkpIDwgMWUtMDYpKSAoZGVsdGFZMSA9ICgtIGNhYXIoYm90QmJveCkpKSAob3JpZW50ID0gIlI5MCIpIChkZWx0YVgxID0gKGNhZGFkcigobWFzdGVyfj5iQm94KSkgLSBjYWRhcigobWFzdGVyfj5iQm94KSkpKSkgKCgoZnVzZU9uTGF5ZXIgPT0gdG9wTGF5ZXIpICYmICgoY2FhcigobWFzdGVyfj5iQm94KSkgLSBjYWFyKHRvcEJib3gpKSA8IDFlLTA2KSkgKGRlbHRhWTEgPSAoLSAoKChjYWFkcigobWFzdGVyfj5iQm94KSkgLSBjYWFyKChtYXN0ZXJ+PmJCb3gpKSkgLSBydykgLyAyLjApKSkgKG9yaWVudCA9ICJSOTAiKSAoZGVsdGFYMSA9IChjYWRhZHIoKG1hc3Rlcn4+YkJveCkpIC0gY2FkYXIoKG1hc3Rlcn4+YkJveCkpKSkpKSAoZGJNb3ZlRmlnIGluc3QwIG5pbCBsaXN0KCgwLjA6ZGVsdGFZMSkgb3JpZW50KSkgKGluc3QxID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkICJmMSIgKChybCArIGRlbHRhWDEpOihkZWx0YVkxICsgeU9mZnNldCkpIG9yaWVudCAxKSkgdW5sZXNzKGluc3QxIGVycm9yKCJDYW5ub3QgY3JlYXRlIGFuIGluc3Qgb2YgYCVzJ1xuIiBjb250YWN0TmFtZSkpIChiQm94ID0gKG1hc3Rlcn4+YkJveCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHBpbkxheWVyIChtYXN0ZXJ+PmJCb3gpKSkgKGRiTW92ZUZpZyBkYmlkIG5pbCBsaXN0KCgwLjA6ZGVsdGFZMSkgb3JpZW50KSkgKGRiQ3JlYXRlUGluIG5ldDAgZGJpZCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcGluTGF5ZXIgKG1hc3Rlcn4+YkJveCkpKSAoZGJNb3ZlRmlnIGRiaWQgbmlsIGxpc3QoKChybCArIGRlbHRhWDEpOmRlbHRhWTEpIG9yaWVudCkpIChkYkNyZWF0ZVBpbiBuZXQxIGRiaWQpIChmdXNlWDEgPSAoLSBjYWRhZHIoKG1hc3Rlcn4+YkJveCkpKSkgKGZ1c2VYMiA9IChybCArIGNhZGFkcigobWFzdGVyfj5iQm94KSkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBmdXNlT25MYXllciBsaXN0KChmdXNlWDE6eU9mZnNldCkgKGZ1c2VYMjoocncgKyB5T2Zmc2V0KSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIHdoZW4odXBwZXJTaGllbGQgKHVwU2hpZWxkWDEgPSAoKHJsIC0gc2hpZWxkTGVuZ3RoKSAvIDIpKSAodXBTaGllbGRZMSA9ICh5T2Zmc2V0ICsgKHJ3IC8gMikgKyB1cFNoaWVsZE9mZnNldCkpICh1cFNoaWVsZFgyID0gKCgocmwgLSBzaGllbGRMZW5ndGgpIC8gMikgKyBzaGllbGRMZW5ndGgpKSAodXBTaGllbGRZMiA9ICh1cFNoaWVsZFkxICsgc2hpZWxkV2lkdGgpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBmdXNlT25MYXllciBsaXN0KCh1cFNoaWVsZFgxOnVwU2hpZWxkWTEpICh1cFNoaWVsZFgyOnVwU2hpZWxkWTIpKSkpKSB3aGVuKGxvd2VyU2hpZWxkIChsb1NoaWVsZFgxID0gKChybCAtIHNoaWVsZExlbmd0aCkgLyAyKSkgKGxvU2hpZWxkWTEgPSAoeU9mZnNldCAtIChsb1NoaWVsZE9mZnNldCAtIChydyAvIDIpKSkpIChsb1NoaWVsZFgyID0gKCgocmwgLSBzaGllbGRMZW5ndGgpIC8gMikgKyBzaGllbGRMZW5ndGgpKSAobG9TaGllbGRZMiA9IChsb1NoaWVsZFkxIC0gc2hpZWxkV2lkdGgpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBmdXNlT25MYXllciBsaXN0KChsb1NoaWVsZFgxOmxvU2hpZWxkWTEpIChsb1NoaWVsZFgyOmxvU2hpZWxkWTIpKSkpKSB3aGVuKGZ1c2VMYXllciAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBmdXNlTGF5ZXIgbGlzdCgoMC4wOnlPZmZzZXQpIChybDoocncgKyB5T2Zmc2V0KSkpKSkpICh4MUNvb3JkID0gKChybCAtIHRhcmdXaWR0aCkgLyAyLjApKSAoeTFDb29yZCA9ICgoKHJ3IC0gdGFyZ1dpZHRoKSAvIDIuMCkgKyB5T2Zmc2V0KSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFyZ0xheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKCh4MUNvb3JkICsgdGFyZ1dpZHRoKTooeTFDb29yZCArIHRhcmdXaWR0aCkpKSkpIHdoZW4oZnVzZVBhZExheWVyIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBmdXNlUGFkTGF5ZXIgbGlzdCgoKChybCAvIDIuMCkgLSBwYWRYRW5jQ2VudGVyKTooKC0gcGFkWUVuY0Z1c2UpICsgeU9mZnNldCkpICgoKHJsIC8gMi4wKSArIHBhZFhFbmNDZW50ZXIpOihydyArIHBhZFlFbmNGdXNlICsgeU9mZnNldCkpKSkpKQAoZnVzZU9uTGF5ZXIgZnVzZUxheWVyIHRhcmdMYXllciB0YXJnV2lkdGggZnVzZVBhZExheWVyIHBhZFhFbmNDZW50ZXIgcGFkWUVuY0Z1c2UgY29udGFjdE5hbWUgcGluTGF5ZXIgc2hpZWxkTGVuZ3RoIHNoaWVsZFdpZHRoIGxvU2hpZWxkT2Zmc2V0IGxvd2VyU2hpZWxkIHVwU2hpZWxkT2Zmc2V0IHVwcGVyU2hpZWxkIHJ3IHJsIHlPZmZzZXQgbmV0MCBuZXQxIG5ldCBkZWx0YVgxIGRlbHRhWTEgb3JpZW50IGNvbnRhY3RJZCBpbnN0MCBtYXN0ZXIgYm90TGF5ZXIgdG9wTGF5ZXIgYm90QmJveCB0b3BCYm94IGluc3QxIGJCb3ggZGJpZCBmdXNlWDEgZnVzZVgyIGRiSWQgdXBTaGllbGRYMSB1cFNoaWVsZFkxIHVwU2hpZWxkWDIgdXBTaGllbGRZMiBsb1NoaWVsZFgxIGxvU2hpZWxkWTEgbG9TaGllbGRYMiBsb1NoaWVsZFkyIHgxQ29vcmQgeTFDb29yZCkAKChsb1NoaWVsZE9mZnNldCAwLjApIChsb3dlclNoaWVsZCAiRkFMU0UiKSAodXBTaGllbGRPZmZzZXQgMC4wKSAodXBwZXJTaGllbGQgIkZBTFNFIikgKHJ3IDAuMCkgKHJsIDAuMCkgKHlPZmZzZXQgMC4wKSkAKChmdXNlT25MYXllciAiaGlsaXRlIikgKGZ1c2VMYXllciBsaXN0KCJmdXNlIiAiZHJhd2luZyIpKSAodGFyZ0xheWVyIGxpc3QoInRhcmdldCIgImRyYXdpbmciKSkgKHRhcmdXaWR0aCAwLjIpIChmdXNlUGFkTGF5ZXIgbmlsKSAocGFkWEVuY0NlbnRlciAwLjApIChwYWRZRW5jRnVzZSAwLjApIChjb250YWN0TmFtZSBuaWwpIChwaW5MYXllciBuaWwpIChzaGllbGRMZW5ndGggMC4wKSAoc2hpZWxkV2lkdGggMC4wKSkAKGRlY2xhcmUodGhlUG9pbnRzWzI4XSkgKHgxID0gKHhPZmZzZXQgKyAoLSBmbGFyZUFtb3VudF9pbikgKyAoLSBmbGFyZUFtb3VudF9vdXQpKSkgKHgyID0geE9mZnNldCkgKHgzID0gKHgxICsgZmxhcmVBbW91bnRfaW4gKyBmbGFyZUFtb3VudF9vdXQgKyBnYXRlVG9HYXRlU3BhY2UgKyBsKSkgKHgxRGVsdGEgPSAoZmxhcmVBbW91bnRfaW4gKyBmbGFyZUFtb3VudF9vdXQgKyBsKSkgKHgyRGVsdGEgPSBsKSAoeDNEZWx0YSA9IChmbGFyZUFtb3VudF9pbiArIGZsYXJlQW1vdW50X291dCArIGwpKSAodGhlWSA9ICgoLSBmbGFyZUFtb3VudF9vdXQpICsgKC0gZmxhcmVFeHRlbnNpb24pKSkgKHRoZVBvaW50c1swXSA9ICh4MTp0aGVZKSkgKHRoZVBvaW50c1s3XSA9ICgoeDEgKyB4MURlbHRhKTp0aGVZKSkgKHRoZVBvaW50c1s4XSA9ICh4Mzp0aGVZKSkgKHRoZVBvaW50c1sxNV0gPSAoKHgzICsgeDNEZWx0YSk6dGhlWSkpICh0aGVZID0gKC0gZmxhcmVBbW91bnRfb3V0KSkgKHRoZVBvaW50c1sxXSA9ICh4MTp0aGVZKSkgKHRoZVBvaW50c1sxNF0gPSAoKHgzICsgeDNEZWx0YSk6dGhlWSkpICh0aGVZID0gZmxhcmVBbW91bnRfaW4pICh0aGVQb2ludHNbMl0gPSAoeDI6dGhlWSkpICh0aGVQb2ludHNbMTNdID0gKCh4MyArIHgyRGVsdGEpOnRoZVkpKSAodGhlUG9pbnRzWzE2XSA9ICh4MjoodGhlWSArICgtIGZsYXJlQW1vdW50X2luKSkpKSAodGhlUG9pbnRzWzE3XSA9ICgoeDIgKyB4MkRlbHRhKToodGhlWSArICgtIGZsYXJlQW1vdW50X2luKSkpKSAodGhlUG9pbnRzWzE4XSA9ICh4MzoodGhlWSArICgtIGZsYXJlQW1vdW50X2luKSkpKSAodGhlUG9pbnRzWzE5XSA9ICgoeDMgKyB4MkRlbHRhKToodGhlWSArICgtIGZsYXJlQW1vdW50X2luKSkpKSAodGhlUG9pbnRzWzI2XSA9ICgoeDEgKyB4MURlbHRhKTp0aGVZKSkgKHRoZVBvaW50c1syN10gPSAoeDM6dGhlWSkpICh0aGVZID0gKHcgKyAoLSBmbGFyZUFtb3VudF9pbikpKSAodGhlUG9pbnRzWzNdID0gKHgyOnRoZVkpKSAodGhlUG9pbnRzWzEyXSA9ICgoeDMgKyB4MkRlbHRhKTp0aGVZKSkgKHRoZVBvaW50c1syM10gPSAoeDI6KHRoZVkgKyBmbGFyZUFtb3VudF9pbikpKSAodGhlUG9pbnRzWzIyXSA9ICgoeDIgKyB4MkRlbHRhKToodGhlWSArIGZsYXJlQW1vdW50X2luKSkpICh0aGVQb2ludHNbMjFdID0gKHgzOih0aGVZICsgZmxhcmVBbW91bnRfaW4pKSkgKHRoZVBvaW50c1syMF0gPSAoKHgzICsgeDJEZWx0YSk6KHRoZVkgKyBmbGFyZUFtb3VudF9pbikpKSAodGhlUG9pbnRzWzI0XSA9ICgoeDEgKyB4MURlbHRhKTp0aGVZKSkgKHRoZVBvaW50c1syNV0gPSAoeDM6dGhlWSkpICh0aGVZID0gKHcgKyBmbGFyZUFtb3VudF9vdXQpKSAodGhlUG9pbnRzWzRdID0gKHgxOnRoZVkpKSAodGhlUG9pbnRzWzExXSA9ICgoeDMgKyB4M0RlbHRhKTp0aGVZKSkgKHRoZVkgPSAodyArIGZsYXJlQW1vdW50X291dCArIGZsYXJlRXh0ZW5zaW9uKSkgKHRoZVBvaW50c1s1XSA9ICh4MTp0aGVZKSkgKHRoZVBvaW50c1s2XSA9ICgoeDEgKyB4MURlbHRhKTp0aGVZKSkgKHRoZVBvaW50c1s5XSA9ICh4Mzp0aGVZKSkgKHRoZVBvaW50c1sxMF0gPSAoKHgzICsgeDNEZWx0YSk6dGhlWSkpIChwb2ludExpc3QxID0gbmlsKSAocG9pbnRMaXN0MiA9IG5pbCkgZm9yKGkgMSA4IChwb2ludExpc3QxID0gY29ucyh0aGVQb2ludHNbKDggLSBpKV0gcG9pbnRMaXN0MSkpIChwb2ludExpc3QyID0gY29ucyh0aGVQb2ludHNbKDE2IC0gaSldIHBvaW50TGlzdDIpKSkgd2hlbihnYXRlTGF5ZXIgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIHBvaW50TGlzdDEpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBnYXRlTGF5ZXIgcG9pbnRMaXN0MikpKSB3aGVuKGdhdGVSZWNvZ25pdGlvbkxheWVyIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVSZWNvZ25pdGlvbkxheWVyIGxpc3QodGhlUG9pbnRzWzE2XSB0aGVQb2ludHNbMjJdKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVSZWNvZ25pdGlvbkxheWVyIGxpc3QodGhlUG9pbnRzWzE4XSB0aGVQb2ludHNbMjBdKSkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImdhdGVQb2ludHMiICJsaXN0IiBhcHBlbmQocG9pbnRMaXN0MSBwb2ludExpc3QyKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJyZ2F0ZVBvaW50cyIgImxpc3QiIGxpc3QodGhlUG9pbnRzWzE2XSB0aGVQb2ludHNbMjJdIHRoZVBvaW50c1sxOF0gdGhlUG9pbnRzWzIwXSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAibm9mbGFyZVBvaW50cyIgImxpc3QiIGxpc3QodGhlUG9pbnRzWzNdIHRoZVBvaW50c1syNl0pKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgIm5vZmxhcmVQb2ludHMxIiAibGlzdCIgbGlzdCh0aGVQb2ludHNbMjVdIHRoZVBvaW50c1sxM10pKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcEZsYXJlUG9pbnRzIiAibGlzdCIgbGlzdCh0aGVQb2ludHNbM10gdGhlUG9pbnRzWzRdIHRoZVBvaW50c1s1XSB0aGVQb2ludHNbNl0gdGhlUG9pbnRzWzI0XSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wRmxhcmVQb2ludHMxIiAibGlzdCIgbGlzdCh0aGVQb2ludHNbMjVdIHRoZVBvaW50c1s5XSB0aGVQb2ludHNbMTBdIHRoZVBvaW50c1sxMV0gdGhlUG9pbnRzWzEyXSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYm90dG9tRmxhcmVQb2ludHMiICJsaXN0IiBsaXN0KHRoZVBvaW50c1swXSB0aGVQb2ludHNbMV0gdGhlUG9pbnRzWzJdIHRoZVBvaW50c1syNl0gdGhlUG9pbnRzWzddKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3R0b21GbGFyZVBvaW50czEiICJsaXN0IiBsaXN0KHRoZVBvaW50c1s4XSB0aGVQb2ludHNbMjddIHRoZVBvaW50c1sxM10gdGhlUG9pbnRzWzE0XSB0aGVQb2ludHNbMTVdKSkpAChnYXRlTGF5ZXIgZ2F0ZVJlY29nbml0aW9uTGF5ZXIgdyBsIGZsYXJlQW1vdW50X2luIGZsYXJlQW1vdW50X291dCBmbGFyZUV4dGVuc2lvbiB4T2Zmc2V0IGdhdGVUb0dhdGVTcGFjZSB0aGVQb2ludHMgeDEgeDIgeDMgeDFEZWx0YSB4MkRlbHRhIHgzRGVsdGEgdGhlWSBwb2ludExpc3QxIHBvaW50TGlzdDIgaSBkYmlkKQAoKGdhdGVMYXllciBsaXN0KCJwb2x5IiAiZHJhd2luZyIpKSAoZ2F0ZVJlY29nbml0aW9uTGF5ZXIgbGlzdCgicG9seSIgImdhdGUiKSkgKHcgMTAuMCkgKGwgMS4wKSAoZmxhcmVBbW91bnRfaW4gMS4wKSAoZmxhcmVBbW91bnRfb3V0IDAuMykgKGZsYXJlRXh0ZW5zaW9uIDIuMCkgKHhPZmZzZXQgMC4wKSAoZ2F0ZVRvR2F0ZVNwYWNlIDAuNikpAChkZWNsYXJlKHRoZVBvaW50c1sxNl0pICh4MSA9ICh4T2Zmc2V0ICsgKC0gZmxhcmVBbW91bnRfaW4pICsgKC0gZmxhcmVBbW91bnQpKSkgKHgyID0geE9mZnNldCkgKHgxRGVsdGEgPSAoKDIuMCAqIChmbGFyZUFtb3VudF9pbiArIGZsYXJlQW1vdW50KSkgKyBsKSkgKHgyRGVsdGEgPSBsKSAodGhlWSA9ICgoLSBmbGFyZUFtb3VudCkgKyAoLSBmbGFyZUV4dGVuc2lvbikpKSAodGhlUG9pbnRzWzBdID0gKHgxOnRoZVkpKSAodGhlUG9pbnRzWzExXSA9ICgoeDEgKyB4MURlbHRhKTp0aGVZKSkgKHRoZVkgPSAoLSBmbGFyZUFtb3VudCkpICh0aGVQb2ludHNbMV0gPSAoeDE6dGhlWSkpICh0aGVQb2ludHNbMTBdID0gKCh4MSArIHgxRGVsdGEpOnRoZVkpKSAodGhlWSA9IGZsYXJlQW1vdW50X2luKSAodGhlUG9pbnRzWzJdID0gKHgyOnRoZVkpKSAodGhlUG9pbnRzWzldID0gKCh4MiArIHgyRGVsdGEpOnRoZVkpKSAodGhlUG9pbnRzWzEyXSA9ICh4MjoodGhlWSArICgtIGZsYXJlQW1vdW50X2luKSkpKSAodGhlUG9pbnRzWzEzXSA9ICgoeDIgKyB4MkRlbHRhKToodGhlWSArICgtIGZsYXJlQW1vdW50X2luKSkpKSAodGhlWSA9ICh3ICsgKC0gZmxhcmVBbW91bnRfaW4pKSkgKHRoZVBvaW50c1szXSA9ICh4Mjp0aGVZKSkgKHRoZVBvaW50c1s4XSA9ICgoeDIgKyB4MkRlbHRhKTp0aGVZKSkgKHRoZVBvaW50c1sxNF0gPSAoeDI6KHRoZVkgKyBmbGFyZUFtb3VudF9pbikpKSAodGhlUG9pbnRzWzE1XSA9ICgoeDIgKyB4MkRlbHRhKToodGhlWSArIGZsYXJlQW1vdW50X2luKSkpICh0aGVZID0gKHcgKyBmbGFyZUFtb3VudCkpICh0aGVQb2ludHNbNF0gPSAoeDE6dGhlWSkpICh0aGVQb2ludHNbN10gPSAoKHgxICsgeDFEZWx0YSk6dGhlWSkpICh0aGVZID0gKHcgKyBmbGFyZUFtb3VudCArIGZsYXJlRXh0ZW5zaW9uKSkgKHRoZVBvaW50c1s1XSA9ICh4MTp0aGVZKSkgKHRoZVBvaW50c1s2XSA9ICgoeDEgKyB4MURlbHRhKTp0aGVZKSkgKHBvaW50TGlzdCA9IG5pbCkgZm9yKGkgMSAxNiAocG9pbnRMaXN0ID0gY29ucyh0aGVQb2ludHNbKDE2IC0gaSldIHBvaW50TGlzdCkpKSAocG9pbnRMaXN0XzEyID0gbmlsKSBmb3IoaSAxIDEyIChwb2ludExpc3RfMTIgPSBjb25zKHRoZVBvaW50c1soMTIgLSBpKV0gcG9pbnRMaXN0XzEyKSkpIHdoZW4oZ2F0ZUxheWVyIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGdhdGVMYXllciBwb2ludExpc3RfMTIpKSkgd2hlbihnYXRlUmVjb2duaXRpb25MYXllciAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBnYXRlUmVjb2duaXRpb25MYXllciBsaXN0KHRoZVBvaW50c1sxMl0gdGhlUG9pbnRzWzE1XSkpKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJnYXRlUG9pbnRzIiAibGlzdCIgcG9pbnRMaXN0KSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInJnYXRlUG9pbnRzIiAibGlzdCIgbGlzdCh0aGVQb2ludHNbMTJdIHRoZVBvaW50c1sxNV0pKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgIm5vZmxhcmVQb2ludHMiICJsaXN0IiBsaXN0KHRoZVBvaW50c1syXSB0aGVQb2ludHNbOF0pKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcEZsYXJlUG9pbnRzIiAibGlzdCIgbGlzdCh0aGVQb2ludHNbM10gdGhlUG9pbnRzWzRdIHRoZVBvaW50c1s1XSB0aGVQb2ludHNbNl0gdGhlUG9pbnRzWzddIHRoZVBvaW50c1s4XSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYm90dG9tRmxhcmVQb2ludHMiICJsaXN0IiBsaXN0KHRoZVBvaW50c1swXSB0aGVQb2ludHNbMV0gdGhlUG9pbnRzWzJdIHRoZVBvaW50c1s5XSB0aGVQb2ludHNbMTBdIHRoZVBvaW50c1sxMV0pKSkAKGdhdGVMYXllciBnYXRlUmVjb2duaXRpb25MYXllciB3IGwgZmxhcmVBbW91bnRfaW4gZmxhcmVBbW91bnQgZmxhcmVFeHRlbnNpb24geE9mZnNldCB0aGVQb2ludHMgeDEgeDIgeDFEZWx0YSB4MkRlbHRhIHRoZVkgcG9pbnRMaXN0IGkgcG9pbnRMaXN0XzEyIGRiaWQpACgoZ2F0ZUxheWVyIGxpc3QoInBvbHkiICJkcmF3aW5nIikpIChnYXRlUmVjb2duaXRpb25MYXllciBsaXN0KCJwb2x5IiAiZ2F0ZSIpKSAodyAxMC4wKSAobCAxLjApIChmbGFyZUFtb3VudF9pbiAwLjApIChmbGFyZUFtb3VudCAwLjMpIChmbGFyZUV4dGVuc2lvbiAyLjApICh4T2Zmc2V0IDAuMCkpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoZGlmZlhFbmNWaWExSW4gPSAoZml4KCgoZGlmZlhFbmNWaWExSW4gLyBzbmFwR3JpZCkgKyAxZS0wNSkpICogc25hcEdyaWQpKSBpZigoKGluV2VsbCA9PSB0KSB8fCAoaW5XZWxsID09ICJUUlVFIikpIHRoZW4gKGluV2VsbCA9IHQpIGVsc2UgKGluV2VsbCA9IG5pbCkpIGlmKCgoaW1wbGFudCA9PSB0KSB8fCAoaW1wbGFudCA9PSAiVFJVRSIpKSB0aGVuIChpbXBsYW50ID0gdCkgZWxzZSAoaW1wbGFudCA9IG5pbCkpIGlmKCgobGVmdERpZmYgPT0gdCkgfHwgKGxlZnREaWZmID09ICJUUlVFIikpIHRoZW4gKGxlZnREaWZmID0gdCkgZWxzZSAobGVmdERpZmYgPSBuaWwpKSBpZigoKHJpZ2h0RGlmZiA9PSB0KSB8fCAocmlnaHREaWZmID09ICJUUlVFIikpIHRoZW4gKHJpZ2h0RGlmZiA9IHQpIGVsc2UgKHJpZ2h0RGlmZiA9IG5pbCkpIGlmKCgobm9MYXllcjMgPT0gdCkgfHwgKG5vTGF5ZXIzID09ICJUUlVFIikpIHRoZW4gKG5vTGF5ZXIzID0gdCkgZWxzZSAobm9MYXllcjMgPSBuaWwpKSBpZigoKG5vRW5kRW5jID09IHQpIHx8IChub0VuZEVuYyA9PSAiVFJVRSIpKSB0aGVuIChub0VuZEVuYyA9IHQpIGVsc2UgKG5vRW5kRW5jID0gbmlsKSkgaWYoKChzdHJhcCA9PSB0KSB8fCAoc3RyYXAgPT0gIlRSVUUiKSkgdGhlbiAoc3RyYXAgPSB0KSBlbHNlIChzdHJhcCA9IG5pbCkpIChuZXQgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgInBwZCIpKSAoZGJDcmVhdGVUZXJtIG5ldCAicHBkIiAiaW5wdXQiKSAoYWxsRGlyID0gbGlzdCgicmlnaHQiICJsZWZ0IiAidG9wIiAiYm90dG9tIikpIHdoZW4oaW1wbGFudCB3aGVuKGRpZmZJbXBsYW50IGlmKGluV2VsbCB0aGVuIChkaWZmSW1wbGFudCA9IGNhZHIoZGlmZkltcGxhbnQpKSAoZGlmZkltcEVuYyA9IGNhZHIoZGlmZkltcEVuYykpIChkaWZmSW1wRW5jQnV0dCA9IGNhZHIoZGlmZkltcEVuY0J1dHQpKSBlbHNlIChkaWZmSW1wbGFudCA9IGNhcihkaWZmSW1wbGFudCkpIChkaWZmSW1wRW5jID0gY2FyKGRpZmZJbXBFbmMpKSAoZGlmZkltcEVuY0J1dHQgPSBjYXIoZGlmZkltcEVuY0J1dHQpKSkpIHdoZW4oZGlmZkNvcmVJbXBsYW50IGlmKGluV2VsbCB0aGVuIChkaWZmQ29yZUltcGxhbnQgPSBjYWRyKGRpZmZDb3JlSW1wbGFudCkpIChkaWZmQ29yZUltcEVuYyA9IGNhZHIoZGlmZkNvcmVJbXBFbmMpKSAoZGlmZkNvcmVJbXBFbmNCdXR0ID0gY2FkcihkaWZmQ29yZUltcEVuY0J1dHQpKSBlbHNlIChkaWZmQ29yZUltcGxhbnQgPSBjYXIoZGlmZkNvcmVJbXBsYW50KSkgKGRpZmZDb3JlSW1wRW5jID0gY2FyKGRpZmZDb3JlSW1wRW5jKSkgKGRpZmZDb3JlSW1wRW5jQnV0dCA9IGNhcihkaWZmQ29yZUltcEVuY0J1dHQpKSkpIHdoZW4odGFwSW1wbGFudCBpZihpbldlbGwgdGhlbiAodGFwSW1wbGFudCA9IGNhZHIodGFwSW1wbGFudCkpICh0YXBJbXBFbmMgPSBjYWRyKHRhcEltcEVuYykpICh0YXBJbXBFbmNCdXR0ID0gY2Fkcih0YXBJbXBFbmNCdXR0KSkgKHRhcEltcEVuY05vQnV0dCA9IGNhZHIodGFwSW1wRW5jTm9CdXR0KSkgZWxzZSAodGFwSW1wbGFudCA9IGNhcih0YXBJbXBsYW50KSkgKHRhcEltcEVuYyA9IGNhcih0YXBJbXBFbmMpKSAodGFwSW1wRW5jQnV0dCA9IGNhcih0YXBJbXBFbmNCdXR0KSkgKHRhcEltcEVuY05vQnV0dCA9IGNhcih0YXBJbXBFbmNOb0J1dHQpKSkpKSAodmlhMUNvbCA9IG1heChjb2x1bW4gMSkpICh2aWExWFBpdGNoID0gKHZpYTFXaWR0aCArIHZpYTFTcGFjZSkpICh2aWExWVBpdGNoID0gKHZpYTFMZW5ndGggKyB2aWExU3BhY2UpKSAodmlhMlhQaXRjaCA9ICh2aWEyV2lkdGggKyB2aWEyU3BhY2UpKSAodmlhMllQaXRjaCA9ICh2aWEyTGVuZ3RoICsgdmlhMlNwYWNlKSkgKHRyYW5XaWR0aCA9IG1heCh0cmFuV2lkdGhMIHRyYW5XaWR0aFIpKSAoY2VudGVyVGFwQmJveCA9IGxpc3QobGlzdCgwLjAgMC4wKSBsaXN0KCgoMiAqIHRhcFhFbmNWaWExKSArICh2aWExQ29sICogdmlhMVdpZHRoKSArICgodmlhMUNvbCAtIDEpICogdmlhMVNwYWNlKSkgdHJhbldpZHRoKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGNlbnRlclRhcEJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgaWYoKHRyYW5XaWR0aEwgPT0gdHJhbldpZHRoUikgdGhlbiAoZXh0cmFUYXBDID0gbWF4KChkaWZmVGFwVmlhU3BhY2UgLSBkaWZmWEVuY1ZpYTFJbikgMC4wKSkgKGV4dHJhVGFwQ1IgPSBleHRyYVRhcEMpIChleHRyYVRhcENMID0gZXh0cmFUYXBDKSAod2lkdGhPZlRhcCA9IChleHRyYVRhcEwgKyBleHRyYVRhcFIgKyBleHRyYVRhcENSICsgZXh0cmFUYXBDTCArIGNhYWRyKGNlbnRlclRhcEJib3gpKSkgZWxzZSAoZXh0cmFUYXBDID0gbWF4KCh0YXBXaWR0aEJ1dHRpbmcgLSB2aWExV2lkdGgpIHRhcEJ1dHRTcGFjZSAwLjApKSAoZXh0cmFUYXBDUiA9IGlmKCh0cmFuV2lkdGhMIDwgdHJhbldpZHRoUikgZXh0cmFUYXBDIDAuMCkpIChleHRyYVRhcENMID0gaWYoKHRyYW5XaWR0aFIgPCB0cmFuV2lkdGhMKSBleHRyYVRhcEMgMC4wKSkgKHdpZHRoT2ZUYXAgPSAoZXh0cmFUYXBMICsgZXh0cmFUYXBSICsgZXh0cmFUYXBDTCArIGV4dHJhVGFwQ1IgKyBjYWFkcihjZW50ZXJUYXBCYm94KSArIHRhcE1pbk5hckV4dCkpKSB3aGVuKCh3aWR0aE9mVGFwIDwgdGFwV2lkdGhCZXR3ZWVuKSAoZXh0cmFUYXAgPSAoKGNlaWxpbmcgKCgoKHRhcFdpZHRoQmV0d2VlbiAtIHdpZHRoT2ZUYXApIC8gMi4wKSAvIHNuYXBHcmlkKSAtIDFlLTA2KSkgKiBzbmFwR3JpZCkpIChleHRyYVRhcEwgPSAoZXh0cmFUYXBMICsgZXh0cmFUYXApKSAoZXh0cmFUYXBSID0gKGV4dHJhVGFwUiArIGV4dHJhVGFwKSkpIChsZWZ0VGFwQmJveCA9IGxpc3QobGlzdCgoKC0gZXh0cmFUYXBMKSArICgtIGV4dHJhVGFwQ0wpICsgaWYoKHRyYW5XaWR0aEwgPCB0cmFuV2lkdGgpICgtIHRhcE1pbk5hckV4dCkgMC4wKSkgMC4wKSBsaXN0KDAuMCB0cmFuV2lkdGhMKSkpIChyaWdodFRhcEJib3ggPSBsaXN0KChjYWFkcihjZW50ZXJUYXBCYm94KTowLjApIGxpc3QoKGNhYWRyKGNlbnRlclRhcEJib3gpICsgZXh0cmFUYXBSICsgZXh0cmFUYXBDUiArIGlmKCh0cmFuV2lkdGhSIDwgdHJhbldpZHRoKSB0YXBNaW5OYXJFeHQgMC4wKSkgdHJhbldpZHRoUikpKSB1bmxlc3MoKGNhYXIobGVmdFRhcEJib3gpID09IGNhYWRyKGxlZnRUYXBCYm94KSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwTGF5ZXIgbGVmdFRhcEJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIHVubGVzcygoY2FhcihyaWdodFRhcEJib3gpID09IGNhYWRyKHJpZ2h0VGFwQmJveCkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIHJpZ2h0VGFwQmJveCkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0YXBMYXllckJib3giICJsaXN0IiBsaXN0KGNhcihsZWZ0VGFwQmJveCkgbGlzdChjYWFkcihyaWdodFRhcEJib3gpIGNhZGFkcihjZW50ZXJUYXBCYm94KSkpKSBpZihzdHJhcCB0aGVuIChkaWZmWFNpemUgPSAodmlhMVdpZHRoICsgZGlmZlhFbmNWaWExSW4gKyBkaWZmWEVuY1ZpYTFPdXQpKSAoZGlmZldpZGVFeHRyYUluID0gbWF4KDAuMCAodmlhMVNwYWNlICsgKC0gdGFwWEVuY1ZpYTEpICsgKC0gZXh0cmFUYXBDTCkgKyAoLSBleHRyYVRhcENSKSArIGlmKGV4dHJhVGFwICgtIGV4dHJhVGFwKSAwLjApICsgKC0gZGlmZlhFbmNWaWExSW4pKSAoZGlmZlNvdXJjZVdpZHRoIC0gZGlmZlhTaXplKSkpIChkaWZmTmFyRXh0cmFJbiA9IG1heCgwLjAgKHZpYTFTcGFjZSArICgtIHRhcFhFbmNWaWExKSArICgtIGV4dHJhVGFwQ0wpICsgKC0gZXh0cmFUYXBDUikgKyBpZihleHRyYVRhcCAoLSBleHRyYVRhcCkgMC4wKSArICgtIGRpZmZYRW5jVmlhMUluKSArICgtIHRhcE1pbk5hckV4dCkpIChkaWZmU291cmNlV2lkdGggLSBkaWZmWFNpemUpKSkgZWxzZSAoZGlmZlhTaXplID0gZGlmZlNvdXJjZVdpZHRoKSAoZGlmZldpZGVFeHRyYUluID0gMC4wKSAoZGlmZk5hckV4dHJhSW4gPSAwLjApKSB3aGVuKGxlZnREaWZmIChsZWZ0RGlmZkJib3ggPSBsaXN0KGxpc3QoKGNhYXIobGVmdFRhcEJib3gpICsgKC0gZGlmZlhTaXplKSArICgtIGV4dHJhRGlmZkwpICsgaWYoKHRyYW5XaWR0aEwgPCB0cmFuV2lkdGhSKSAoLSBkaWZmTmFyRXh0cmFJbikgKC0gZGlmZldpZGVFeHRyYUluKSkpIDAuMCkgbGlzdChjYWFyKGxlZnRUYXBCYm94KSB0cmFuV2lkdGhMKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsZWZ0RGlmZkJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGxpc3QoImxlZnQiKSBhY2Nlc3NEaXIpKSB3aGVuKHJpZ2h0RGlmZiAocmlnaHREaWZmQmJveCA9IGxpc3QobGlzdChjYWFkcihyaWdodFRhcEJib3gpIDAuMCkgbGlzdCgoY2FhZHIocmlnaHRUYXBCYm94KSArIGRpZmZYU2l6ZSArIGV4dHJhRGlmZlIgKyBpZigodHJhbldpZHRoUiA8IHRyYW5XaWR0aEwpIGRpZmZOYXJFeHRyYUluIGRpZmZXaWRlRXh0cmFJbikpIHRyYW5XaWR0aFIpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIHJpZ2h0RGlmZkJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGxpc3QoInJpZ2h0IikgYWNjZXNzRGlyKSkgd2hlbihpbXBsYW50IHdoZW4odGFwSW1wbGFudCAoZXh0cmFMZWZ0SW1wVGFwID0gKG5vdCAobGVmdERpZmYgfHwgbm9FbmRFbmMpKSkgKGV4dHJhUmlnaHRJbXBUYXAgPSAobm90IChyaWdodERpZmYgfHwgbm9FbmRFbmMpKSkgKHBvaW50X2EgPSBsaXN0KChjYWFyKGxlZnRUYXBCYm94KSAtIGlmKGV4dHJhTGVmdEltcFRhcCB0YXBJbXBFbmMgdGFwSW1wRW5jQnV0dCkpIChjYWRhcihsZWZ0VGFwQmJveCkgLSB0YXBJbXBFbmMpKSkgKHBvaW50X2IgPSBsaXN0KChjYWFyKGxlZnRUYXBCYm94KSAtIGlmKGV4dHJhTGVmdEltcFRhcCB0YXBJbXBFbmMgdGFwSW1wRW5jQnV0dCkpIChjYWRhZHIobGVmdFRhcEJib3gpICsgdGFwSW1wRW5jKSkpIChwb2ludF9jID0gbGlzdChtYXgoKGNhYWRyKGxlZnRUYXBCYm94KSAtIG1heCh0YXBJbXBFbmNOb0J1dHQgdGFwSW1wRW5jKSkgKGNhYXIobGVmdFRhcEJib3gpIC0gaWYoZXh0cmFMZWZ0SW1wVGFwIHRhcEltcEVuYyB0YXBJbXBFbmNCdXR0KSkpIChjYWRhZHIobGVmdFRhcEJib3gpICsgdGFwSW1wRW5jKSkpIChwb2ludF9kID0gbGlzdChtYXgoKGNhYXIoY2VudGVyVGFwQmJveCkgLSBtYXgodGFwSW1wRW5jTm9CdXR0IHRhcEltcEVuYykpIChjYWFyKGxlZnRUYXBCYm94KSAtIGlmKGV4dHJhTGVmdEltcFRhcCB0YXBJbXBFbmMgdGFwSW1wRW5jQnV0dCkpKSAoY2FkYWRyKGNlbnRlclRhcEJib3gpICsgdGFwSW1wRW5jKSkpIChwb2ludF9lID0gbGlzdChtaW4oKGNhYWRyKGNlbnRlclRhcEJib3gpICsgbWF4KHRhcEltcEVuY05vQnV0dCB0YXBJbXBFbmMpKSAoY2FhZHIocmlnaHRUYXBCYm94KSArIGlmKGV4dHJhUmlnaHRJbXBUYXAgdGFwSW1wRW5jIHRhcEltcEVuY0J1dHQpKSkgKGNhZGFkcihjZW50ZXJUYXBCYm94KSArIHRhcEltcEVuYykpKSAocG9pbnRfZiA9IGxpc3QobWluKChjYWFkcihjZW50ZXJUYXBCYm94KSArIG1heCh0YXBJbXBFbmNOb0J1dHQgdGFwSW1wRW5jKSkgKGNhYWRyKHJpZ2h0VGFwQmJveCkgKyBpZihleHRyYVJpZ2h0SW1wVGFwIHRhcEltcEVuYyB0YXBJbXBFbmNCdXR0KSkpIChjYWRhZHIocmlnaHRUYXBCYm94KSArIHRhcEltcEVuYykpKSAocG9pbnRfZyA9IGxpc3QoKGNhYWRyKHJpZ2h0VGFwQmJveCkgKyBpZihleHRyYVJpZ2h0SW1wVGFwIHRhcEltcEVuYyB0YXBJbXBFbmNCdXR0KSkgKGNhZGFkcihyaWdodFRhcEJib3gpICsgdGFwSW1wRW5jKSkpIChwb2ludF9oID0gbGlzdCgoY2FhZHIocmlnaHRUYXBCYm94KSArIGlmKGV4dHJhUmlnaHRJbXBUYXAgdGFwSW1wRW5jIHRhcEltcEVuY0J1dHQpKSAoY2FkYXIocmlnaHRUYXBCYm94KSAtIHRhcEltcEVuYykpKSAodGFwSW1wUG9pbnRzID0gbGlzdChwb2ludF9hIHBvaW50X2IgcG9pbnRfYyBwb2ludF9kIHBvaW50X2UgcG9pbnRfZiBwb2ludF9nIHBvaW50X2gpKSAoZGJJZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBJbXBsYW50IHRhcEltcFBvaW50cykpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgd2hlbihkaWZmSW1wbGFudCB3aGVuKGxlZnREaWZmIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdChpZihub0VuZEVuYyBjYWFyKGxlZnREaWZmQmJveCkgKGNhYXIobGVmdERpZmZCYm94KSAtIGRpZmZJbXBFbmMpKSAoY2FkYXIobGVmdERpZmZCYm94KSAtIGRpZmZJbXBFbmMpKSBsaXN0KChjYWFkcihsZWZ0RGlmZkJib3gpICsgZGlmZkltcEVuY0J1dHQpIChjYWRhZHIobGVmdERpZmZCYm94KSArIGRpZmZJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIHdoZW4ocmlnaHREaWZmIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoY2FhcihyaWdodERpZmZCYm94KSAtIGRpZmZJbXBFbmNCdXR0KSAoY2FkYXIocmlnaHREaWZmQmJveCkgLSBkaWZmSW1wRW5jKSkgbGlzdChpZihub0VuZEVuYyBjYWFkcihyaWdodERpZmZCYm94KSAoY2FhZHIocmlnaHREaWZmQmJveCkgKyBkaWZmSW1wRW5jKSkgKGNhZGFkcihyaWdodERpZmZCYm94KSArIGRpZmZJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpKSB3aGVuKGRpZmZDb3JlSW1wbGFudCB3aGVuKGxlZnREaWZmIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoaWYobm9FbmRFbmMgY2FhcihsZWZ0RGlmZkJib3gpIChjYWFyKGxlZnREaWZmQmJveCkgLSBkaWZmQ29yZUltcEVuYykpIChjYWRhcihsZWZ0RGlmZkJib3gpIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KChjYWFkcihsZWZ0RGlmZkJib3gpICsgZGlmZkNvcmVJbXBFbmNCdXR0KSAoY2FkYWRyKGxlZnREaWZmQmJveCkgKyBkaWZmQ29yZUltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgd2hlbihyaWdodERpZmYgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoY2FhcihyaWdodERpZmZCYm94KSAtIGRpZmZDb3JlSW1wRW5jQnV0dCkgKGNhZGFyKHJpZ2h0RGlmZkJib3gpIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KGlmKG5vRW5kRW5jIGNhYWRyKHJpZ2h0RGlmZkJib3gpIChjYWFkcihyaWdodERpZmZCYm94KSArIGRpZmZDb3JlSW1wRW5jKSkgKGNhZGFkcihyaWdodERpZmZCYm94KSArIGRpZmZDb3JlSW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSkgd2hlbigoaW5XZWxsICYmIHdlbGxMYXllcikgKHBvaW50X2EgPSBsaXN0KChpZihsZWZ0RGlmZiBjYWFyKGxlZnREaWZmQmJveCkgY2FhcihsZWZ0VGFwQmJveCkpIC0gaWYobGVmdERpZmYgd2VsbExheWVyRGlmZkVuYyB3ZWxsTGF5ZXJUYXBFbmMpKSAoY2FkYXIobGVmdFRhcEJib3gpIC0gbWF4KHdlbGxMYXllckRpZmZFbmMgd2VsbExheWVyVGFwRW5jKSkpKSAocG9pbnRfYiA9IGxpc3QoKGlmKGxlZnREaWZmIGNhYXIobGVmdERpZmZCYm94KSBjYWFyKGxlZnRUYXBCYm94KSkgLSBpZihsZWZ0RGlmZiB3ZWxsTGF5ZXJEaWZmRW5jIHdlbGxMYXllclRhcEVuYykpIG1heCgod2VsbFdpZHRoICsgY2Fkcihwb2ludF9hKSkgKGNhZGFkcihsZWZ0VGFwQmJveCkgKyBtYXgod2VsbExheWVyRGlmZkVuYyB3ZWxsTGF5ZXJUYXBFbmMpKSkpKSAocG9pbnRfYyA9IGxpc3QoKGNhYWRyKGxlZnRUYXBCYm94KSAtIHdlbGxMYXllclRhcEVuYykgbWF4KCh3ZWxsV2lkdGggKyBjYWRyKHBvaW50X2EpKSAoY2FkYWRyKGxlZnRUYXBCYm94KSArIG1heCh3ZWxsTGF5ZXJEaWZmRW5jIHdlbGxMYXllclRhcEVuYykpKSkpIChwb2ludF9kID0gbGlzdCgoY2FhcihjZW50ZXJUYXBCYm94KSAtIHdlbGxMYXllclRhcEVuYykgbWF4KCh3ZWxsV2lkdGggKyBjYWRyKHBvaW50X2EpKSAoY2FkYWRyKGNlbnRlclRhcEJib3gpICsgbWF4KHdlbGxMYXllckRpZmZFbmMgd2VsbExheWVyVGFwRW5jKSkpKSkgKHBvaW50X2UgPSBsaXN0KChjYWFkcihjZW50ZXJUYXBCYm94KSArIHdlbGxMYXllclRhcEVuYykgbWF4KCh3ZWxsV2lkdGggKyBjYWRyKHBvaW50X2EpKSAoY2FkYWRyKGNlbnRlclRhcEJib3gpICsgbWF4KHdlbGxMYXllckRpZmZFbmMgd2VsbExheWVyVGFwRW5jKSkpKSkgKHBvaW50X2YgPSBsaXN0KChjYWFkcihjZW50ZXJUYXBCYm94KSArIHdlbGxMYXllclRhcEVuYykgbWF4KCh3ZWxsV2lkdGggKyBjYWRyKHBvaW50X2EpKSAoY2FkYWRyKHJpZ2h0VGFwQmJveCkgKyBtYXgod2VsbExheWVyRGlmZkVuYyB3ZWxsTGF5ZXJUYXBFbmMpKSkpKSAocG9pbnRfZyA9IGxpc3QoKGlmKHJpZ2h0RGlmZiBjYWFkcihyaWdodERpZmZCYm94KSBjYWFkcihyaWdodFRhcEJib3gpKSArIGlmKHJpZ2h0RGlmZiB3ZWxsTGF5ZXJEaWZmRW5jIHdlbGxMYXllclRhcEVuYykpIG1heCgod2VsbFdpZHRoICsgY2Fkcihwb2ludF9hKSkgKGNhZGFkcihyaWdodFRhcEJib3gpICsgbWF4KHdlbGxMYXllckRpZmZFbmMgd2VsbExheWVyVGFwRW5jKSkpKSkgKHBvaW50X2ggPSBsaXN0KChpZihyaWdodERpZmYgY2FhZHIocmlnaHREaWZmQmJveCkgY2FhZHIocmlnaHRUYXBCYm94KSkgKyBpZihyaWdodERpZmYgd2VsbExheWVyRGlmZkVuYyB3ZWxsTGF5ZXJUYXBFbmMpKSAoY2FkYXIocmlnaHRUYXBCYm94KSAtIG1heCh3ZWxsTGF5ZXJEaWZmRW5jIHdlbGxMYXllclRhcEVuYykpKSkgKHdlbGxJbXBQb2ludHMgPSBsaXN0KHBvaW50X2EgcG9pbnRfYiBwb2ludF9jIHBvaW50X2QgcG9pbnRfZSBwb2ludF9mIHBvaW50X2cgcG9pbnRfaCkpIChkYklkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHdlbGxMYXllciB3ZWxsSW1wUG9pbnRzKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAid2VsbExheWVyQmJveCIgImxpc3QiIGxpc3QocG9pbnRfYSBsaXN0KGNhcihwb2ludF9oKSBjYWRyKHBvaW50X2QpKSkpKSkgd2hlbihpZExheWVyIGlmKChpbXBsYW50ICYmIGluV2VsbCAmJiB3ZWxsTGF5ZXIgJiYgaWRFbmNXZWxsKSB0aGVuIChwb2ludF9hID0gbGlzdCgoY2FyKHBvaW50X2EpIC0gaWRMYXllckVuY1dlbGwpIChjYWRyKHBvaW50X2EpIC0gaWRMYXllckVuY1dlbGwpKSkgKHBvaW50X2IgPSBsaXN0KChjYXIocG9pbnRfYikgLSBpZExheWVyRW5jV2VsbCkgKGNhZHIocG9pbnRfYikgKyBpZExheWVyRW5jV2VsbCkpKSAocG9pbnRfYyA9IGxpc3QoKGNhcihwb2ludF9jKSAtIGlkTGF5ZXJFbmNXZWxsKSAoY2Fkcihwb2ludF9jKSArIGlkTGF5ZXJFbmNXZWxsKSkpIChwb2ludF9kID0gbGlzdCgoY2FyKHBvaW50X2QpIC0gaWRMYXllckVuY1dlbGwpIChjYWRyKHBvaW50X2QpICsgaWRMYXllckVuY1dlbGwpKSkgKHBvaW50X2UgPSBsaXN0KChjYXIocG9pbnRfZSkgKyBpZExheWVyRW5jV2VsbCkgKGNhZHIocG9pbnRfZSkgKyBpZExheWVyRW5jV2VsbCkpKSAocG9pbnRfZiA9IGxpc3QoKGNhcihwb2ludF9mKSArIGlkTGF5ZXJFbmNXZWxsKSAoY2Fkcihwb2ludF9mKSArIGlkTGF5ZXJFbmNXZWxsKSkpIChwb2ludF9nID0gbGlzdCgoY2FyKHBvaW50X2cpICsgaWRMYXllckVuY1dlbGwpIChjYWRyKHBvaW50X2cpICsgaWRMYXllckVuY1dlbGwpKSkgKHBvaW50X2ggPSBsaXN0KChjYXIocG9pbnRfaCkgKyBpZExheWVyRW5jV2VsbCkgKGNhZHIocG9pbnRfaCkgLSBpZExheWVyRW5jV2VsbCkpKSBlbHNlIChwb2ludF9hID0gbGlzdCgoaWYobGVmdERpZmYgY2FhcihsZWZ0RGlmZkJib3gpIGNhYXIobGVmdFRhcEJib3gpKSAtIGlmKGxlZnREaWZmIGlkTGF5ZXJFbmNEaWZmIGlkTGF5ZXJFbmNUYXApKSAoY2FkYXIobGVmdFRhcEJib3gpIC0gbWF4KGlkTGF5ZXJFbmNEaWZmIGlkTGF5ZXJFbmNUYXApKSkpIChwb2ludF9iID0gbGlzdCgoaWYobGVmdERpZmYgY2FhcihsZWZ0RGlmZkJib3gpIGNhYXIobGVmdFRhcEJib3gpKSAtIGlmKGxlZnREaWZmIGlkTGF5ZXJFbmNEaWZmIGlkTGF5ZXJFbmNUYXApKSAoY2FkYWRyKGxlZnRUYXBCYm94KSArIG1heChpZExheWVyRW5jRGlmZiBpZExheWVyRW5jVGFwKSkpKSAocG9pbnRfYyA9IGxpc3QoKGNhYWRyKGxlZnRUYXBCYm94KSAtIGlkTGF5ZXJFbmNUYXApIChjYWRhZHIobGVmdFRhcEJib3gpICsgbWF4KGlkTGF5ZXJFbmNEaWZmIGlkTGF5ZXJFbmNUYXApKSkpIChwb2ludF9kID0gbGlzdCgoY2FhcihjZW50ZXJUYXBCYm94KSAtIGlkTGF5ZXJFbmNUYXApIChjYWRhZHIoY2VudGVyVGFwQmJveCkgKyBtYXgoaWRMYXllckVuY0RpZmYgaWRMYXllckVuY1RhcCkpKSkgKHBvaW50X2UgPSBsaXN0KChjYWFkcihjZW50ZXJUYXBCYm94KSArIGlkTGF5ZXJFbmNUYXApIChjYWRhZHIoY2VudGVyVGFwQmJveCkgKyBtYXgoaWRMYXllckVuY0RpZmYgaWRMYXllckVuY1RhcCkpKSkgKHBvaW50X2YgPSBsaXN0KChjYWFkcihjZW50ZXJUYXBCYm94KSArIGlkTGF5ZXJFbmNUYXApIChjYWRhZHIocmlnaHRUYXBCYm94KSArIG1heChpZExheWVyRW5jRGlmZiBpZExheWVyRW5jVGFwKSkpKSAocG9pbnRfZyA9IGxpc3QoKGlmKHJpZ2h0RGlmZiBjYWFkcihyaWdodERpZmZCYm94KSBjYWFkcihyaWdodFRhcEJib3gpKSArIGlmKHJpZ2h0RGlmZiBpZExheWVyRW5jRGlmZiBpZExheWVyRW5jVGFwKSkgKGNhZGFkcihyaWdodFRhcEJib3gpICsgbWF4KGlkTGF5ZXJFbmNEaWZmIGlkTGF5ZXJFbmNUYXApKSkpIChwb2ludF9oID0gbGlzdCgoaWYocmlnaHREaWZmIGNhYWRyKHJpZ2h0RGlmZkJib3gpIGNhYWRyKHJpZ2h0VGFwQmJveCkpICsgaWYocmlnaHREaWZmIGlkTGF5ZXJFbmNEaWZmIGlkTGF5ZXJFbmNUYXApKSAoY2FkYXIocmlnaHRUYXBCYm94KSAtIG1heChpZExheWVyRW5jRGlmZiBpZExheWVyRW5jVGFwKSkpKSkgKGlkTGF5ZXJQb2ludHMgPSBsaXN0KHBvaW50X2EgcG9pbnRfYiBwb2ludF9jIHBvaW50X2QgcG9pbnRfZSBwb2ludF9mIHBvaW50X2cgcG9pbnRfaCkpIChkYklkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGlkTGF5ZXIgaWRMYXllclBvaW50cykpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImlkTGF5ZXJCYm94IiAibGlzdCIgbGlzdChwb2ludF9hIGxpc3QoY2FyKHBvaW50X2gpIGNhZHIocG9pbnRfZCkpKSkpIGlmKGNlbnRlclZpYTEgdGhlbiAodmlhMURyYXdTcGFjZVkgPSAodHJhbldpZHRoIC0gKHRhcFlFbmNWaWExICogMikpKSAodmlhMVJvdyA9IChmbG9vciAoKHZpYTFEcmF3U3BhY2VZICsgdmlhMVNwYWNlKSAvIHZpYTFZUGl0Y2gpKSkgKHZpYTFsZW5ndGggPSAoKHZpYTFSb3cgKiB2aWExWVBpdGNoKSAtIHZpYTFTcGFjZSkpICh2aWExWW9mZnNldCA9ICgodmlhMURyYXdTcGFjZVkgLSB2aWExbGVuZ3RoKSAvIDIpKSAoZmlyc3RWaWExWSA9ICh0YXBZRW5jVmlhMSArIChmaXgoKCh2aWExWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA1KSkgKiBzbmFwR3JpZCkpKSBlbHNlIGlmKCh0cmFuV2lkdGggPiAodmlhMVlQaXRjaCArIHZpYTFMZW5ndGgpKSB0aGVuICh2aWExUm93ID0gZml4KCgoKHRyYW5XaWR0aCArIHZpYTFTcGFjZSArICgtICgyICogdGFwWUVuY1ZpYTEpKSkgLyB2aWExWVBpdGNoKSArIDFlLTA2KSkpIGVsc2UgKHZpYTFSb3cgPSAxKSkgKGZpcnN0VmlhMVkgPSB0YXBZRW5jVmlhMSkpIChmaXJzdFZpYTFYID0gdGFwWEVuY1ZpYTEpICh0aGVZID0gZmlyc3RWaWExWSkgZm9yKHIgMSB2aWExUm93ICh0aGVYID0gZmlyc3RWaWExWCkgZm9yKGNvbCAxIHZpYTFDb2wgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHRoZVg6dGhlWSkgKCh0aGVYICsgdmlhMVdpZHRoKToodGhlWSArIHZpYTFMZW5ndGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRoZVggPSAodGhlWCArIHZpYTFYUGl0Y2gpKSkgKHRoZVkgPSAodGhlWSArIHZpYTFZUGl0Y2gpKSkgKHZpYTFCYm94ID0gbGlzdChsaXN0KGZpcnN0VmlhMVggZmlyc3RWaWExWSkgY2FkcigoZGJJZH4+YkJveCkpKSkgd2hlbihzbG90VmlhIChjb250YWN0SW1wUGFyYW0gPSBsaXN0KCJpbXBsYW50IiAiYm9vbGVhbiIgIkZBTFNFIikpIChjb250YWN0V2VsbFBhcmFtID0gbGlzdCgiaW5XZWxsIiAiYm9vbGVhbiIgIkZBTFNFIikpIChzbG90VmlhSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgc2xvdFZpYSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHNsb3RWaWFJZCBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQvb3BlbiBzbG90VmlhIGNvbnRhY3QgY2VsbCBgJXMnIiBzbG90VmlhKSkpIHVubGVzcygoc2xvdFZpYUlkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgc2xvdFZpYSkpKSAocGFyYW1zID0gKHNsb3RWaWFJZH4+cGFyYW1ldGVycykpIChzbG90WDFkaWZmQ29vcmQgPSBjYWFyKChzbG90VmlhSWR+PmRpZmZMYXllckJib3gpKSkgKHNsb3RYMmRpZmZDb29yZCA9IGNhYWRyKChzbG90VmlhSWR+PmRpZmZMYXllckJib3gpKSkgKHNsb3RMZW5ndGggPSAoc2xvdFgyZGlmZkNvb3JkIC0gc2xvdFgxZGlmZkNvb3JkKSkgKHNsb3RWaWFXaWR0aCA9IChjYWFkcigoc2xvdFZpYUlkfj5iQm94VmlhMSkpIC0gY2Fhcigoc2xvdFZpYUlkfj5iQm94VmlhMSkpKSkgKHNsb3RWaWFMZW5ndGggPSAoY2FkYWRyKChzbG90VmlhSWR+PmJCb3hWaWExKSkgLSBjYWRhcigoc2xvdFZpYUlkfj5iQm94VmlhMSkpKSkgKHNsb3RWaWFFbmNYID0gKGNhYXIoKHNsb3RWaWFJZH4+YkJveFZpYTEpKSAtIHNsb3RYMWRpZmZDb29yZCkpIChzbG90VmlhRW5jWSA9IChjYWRhcigoc2xvdFZpYUlkfj5iQm94VmlhMSkpIC0gY2FkYXIoKHNsb3RWaWFJZH4+ZGlmZkxheWVyQmJveCkpKSkpIHdoZW4oc3RyYXAgd2hlbihyaWdodERpZmYgaWYoc2xvdFZpYSB0aGVuIChpbnN0UGFyYW1zID0gbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHRyYW5XaWR0aFIpKSkgaWYoKHBhcmFtc34+aW1wbGFudCkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIGNvbnRhY3RJbXBQYXJhbSkpKSBpZigocGFyYW1zfj5pbldlbGwpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBjb250YWN0V2VsbFBhcmFtKSkpIChzbG90VmlhUl9YID0gKGNhYWRyKHJpZ2h0RGlmZkJib3gpIC0gc2xvdExlbmd0aCkpIChzbG90VmlhUl9ZID0gY2FkYXIocmlnaHREaWZmQmJveCkpIChpbnN0UiA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHNsb3RWaWFJZCAiYzAiIChzbG90VmlhUl9YOnNsb3RWaWFSX1kpICJSMCIgMSBpbnN0UGFyYW1zKSkgKHNsb3RWaWFSWTIgPSAoc2xvdFZpYVJfWSArIHNsb3RWaWFFbmNZICsgc2xvdFZpYUxlbmd0aCkpICh2aWExQmJveFIgPSBsaXN0KCgoc2xvdFZpYVJfWCArIHNsb3RWaWFFbmNYKTooc2xvdFZpYVJfWSArIGRpZmZZRW5jVmlhMSkpICgoc2xvdFZpYVJfWCArIHNsb3RWaWFXaWR0aCArIHNsb3RWaWFFbmNYKToodHJhbldpZHRoUiAtIHNsb3RWaWFFbmNZKSkpKSBlbHNlIGlmKGNlbnRlclZpYTEgdGhlbiAodmlhMURyYXdTcGFjZVkgPSAodHJhbldpZHRoUiAtIChkaWZmWUVuY1ZpYTEgKiAyKSkpICh2aWExUm93UiA9IChmbG9vciAoKHZpYTFEcmF3U3BhY2VZICsgdmlhMVNwYWNlKSAvIHZpYTFZUGl0Y2gpKSkgKHZpYTFsZW5ndGggPSAoKHZpYTFSb3dSICogdmlhMVlQaXRjaCkgLSB2aWExU3BhY2UpKSAodmlhMVlvZmZzZXQgPSAoKHZpYTFEcmF3U3BhY2VZIC0gdmlhMWxlbmd0aCkgLyAyKSkgKGZpcnN0VmlhMVkgPSAoZGlmZllFbmNWaWExICsgKGZpeCgoKHZpYTFZb2Zmc2V0IC8gc25hcEdyaWQpICsgMWUtMDUpKSAqIHNuYXBHcmlkKSkpIGVsc2UgKHZpYTFSb3dSID0gbWF4KDEgZml4KCgoKHRyYW5XaWR0aFIgKyB2aWExU3BhY2UgKyAoLSAoMiAqIGRpZmZZRW5jVmlhMSkpKSAvIHZpYTFZUGl0Y2gpICsgMWUtMDYpKSkpIChmaXJzdFZpYTFZID0gZGlmZllFbmNWaWExKSkgKGZpcnN0VmlhMVggPSAoY2FhZHIocmlnaHREaWZmQmJveCkgKyAoLSBkaWZmWEVuY1ZpYTFPdXQpICsgKC0gdmlhMVdpZHRoKSArICgtIGV4dHJhRGlmZlIpKSkgKHRoZVkgPSBmaXJzdFZpYTFZKSBmb3IociAxIHZpYTFSb3dSIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KChmaXJzdFZpYTFYOnRoZVkpICgoZmlyc3RWaWExWCArIHZpYTFXaWR0aCk6KHRoZVkgKyB2aWExTGVuZ3RoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh0aGVZID0gKHRoZVkgKyB2aWExWVBpdGNoKSkpICh2aWExQmJveFIgPSBsaXN0KGxpc3QoZmlyc3RWaWExWCBmaXJzdFZpYTFZKSBjYWRyKChkYklkfj5iQm94KSkpKSkpIHdoZW4obGVmdERpZmYgaWYoc2xvdFZpYSB0aGVuIChpbnN0UGFyYW1zID0gbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHRyYW5XaWR0aEwpKSkgaWYoKHBhcmFtc34+aW1wbGFudCkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIGNvbnRhY3RJbXBQYXJhbSkpKSBpZigocGFyYW1zfj5pbldlbGwpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBjb250YWN0V2VsbFBhcmFtKSkpIChzbG90VmlhTF9YID0gY2FhcihsZWZ0RGlmZkJib3gpKSAoc2xvdFZpYUxfWSA9IGNhZGFyKGxlZnREaWZmQmJveCkpIChpbnN0TCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHNsb3RWaWFJZCAiYzEiIChzbG90VmlhTF9YOnNsb3RWaWFMX1kpICJSMCIgMSBpbnN0UGFyYW1zKSkgKHZpYTFCYm94TCA9IGxpc3QoKChzbG90VmlhTF9YICsgc2xvdFZpYUVuY1gpOihzbG90VmlhTF9ZICsgc2xvdFZpYUVuY1kpKSAoKHNsb3RWaWFMX1ggKyBzbG90VmlhRW5jWCArIHNsb3RWaWFXaWR0aCk6KHRyYW5XaWR0aEwgLSBzbG90VmlhRW5jWSkpKSkgZWxzZSBpZihjZW50ZXJWaWExIHRoZW4gKHZpYTFEcmF3U3BhY2VZID0gKHRyYW5XaWR0aEwgLSAoZGlmZllFbmNWaWExICogMikpKSAodmlhMVJvd0wgPSAoZmxvb3IgKCh2aWExRHJhd1NwYWNlWSArIHZpYTFTcGFjZSkgLyB2aWExWVBpdGNoKSkpICh2aWExbGVuZ3RoID0gKCh2aWExUm93TCAqIHZpYTFZUGl0Y2gpIC0gdmlhMVNwYWNlKSkgKHZpYTFZb2Zmc2V0ID0gKCh2aWExRHJhd1NwYWNlWSAtIHZpYTFsZW5ndGgpIC8gMikpIChmaXJzdFZpYTFZID0gKGRpZmZZRW5jVmlhMSArIChmaXgoKCh2aWExWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA1KSkgKiBzbmFwR3JpZCkpKSBlbHNlICh2aWExUm93TCA9IG1heCgxIGZpeCgoKCh0cmFuV2lkdGhMICsgdmlhMVNwYWNlICsgKC0gKDIgKiBkaWZmWUVuY1ZpYTEpKSkgLyB2aWExWVBpdGNoKSArIDFlLTA2KSkpKSAoZmlyc3RWaWExWSA9IGRpZmZZRW5jVmlhMSkpIChmaXJzdFZpYTFYID0gKGNhYXIobGVmdERpZmZCYm94KSArIGRpZmZYRW5jVmlhMU91dCArIGV4dHJhRGlmZkwpKSAodGhlWSA9IGZpcnN0VmlhMVkpIGZvcihyIDEgdmlhMVJvd0wgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKGZpcnN0VmlhMVg6dGhlWSkgKChmaXJzdFZpYTFYICsgdmlhMVdpZHRoKToodGhlWSArIHZpYTFMZW5ndGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRoZVkgPSAodGhlWSArIHZpYTFZUGl0Y2gpKSkgKHZpYTFCYm94TCA9IGxpc3QobGlzdChmaXJzdFZpYTFYIGZpcnN0VmlhMVkpIGNhZHIoKGRiSWR+PmJCb3gpKSkpKSkpIChsYXllcjJCYm94ID0gbGlzdChsaXN0KChjYWFyKHZpYTFCYm94KSAtIGxheWVyMlhFbmNWaWExKSAoY2FkYXIodmlhMUJib3gpIC0gbGF5ZXIyWUVuY1ZpYTEpKSBsaXN0KChjYWFkcih2aWExQmJveCkgKyBsYXllcjJYRW5jVmlhMSkgKGNhZGFkcih2aWExQmJveCkgKyBsYXllcjJZRW5jVmlhMSkpKSkgdW5sZXNzKChub0xheWVyMyB8fCAhbGF5ZXIzKSBpZihjZW50ZXJWaWEyIHRoZW4gKHZpYTJSb3cgPSAoZmxvb3IgKHRyYW5XaWR0aCAvIHZpYTJZUGl0Y2gpKSkgaWYoKHZpYTJSb3cgPT0gMCkgKHZpYTJSb3cgPSAxKSkgKHZpYTJZb2Zmc2V0ID0gKCh0cmFuV2lkdGggLSAoKHZpYTJSb3cgKiB2aWEyWVBpdGNoKSAtIHZpYTJTcGFjZSkpIC8gMikpIChmaXJzdFZpYTJZID0gKGZpeCgoKHZpYTJZb2Zmc2V0IC8gc25hcEdyaWQpICsgMWUtMDYpKSAqIHNuYXBHcmlkKSkgZWxzZSAodmlhMlJvdyA9IG1heChmaXgoKCgodHJhbldpZHRoICsgdmlhMlNwYWNlICsgKC0gKDIgKiBsYXllcjJZRW5jVmlhMikpKSAvIHZpYTJZUGl0Y2gpICsgMWUtMDYpKSAxKSkgKGZpcnN0VmlhMlkgPSAoY2FkYXIobGF5ZXIyQmJveCkgKyBsYXllcjJZRW5jVmlhMikpKSAodmlhMkNvbCA9IG1heChmaXgoKCgoKGNhYWRyKGNlbnRlclRhcEJib3gpIC0gY2FhcihjZW50ZXJUYXBCYm94KSkgKyB2aWEyU3BhY2UgKyAoLSAoMiAqIGxheWVyMlhFbmNWaWEyKSkpIC8gdmlhMlhQaXRjaCkgKyAxZS0wNikpIDEpKSAodmlhMlhPZmZzZXQgPSAoKChjYWFkcihjZW50ZXJUYXBCYm94KSAtIGNhYXIoY2VudGVyVGFwQmJveCkpIC0gKCgtIHZpYTJTcGFjZSkgKyAodmlhMkNvbCAqIHZpYTJYUGl0Y2gpKSkgLyAyKSkgKHZpYTJYT2Zmc2V0ID0gKHJvdW5kKCgodmlhMlhPZmZzZXQgLyBzbmFwR3JpZCkgKyAxZS0wNikpICogc25hcEdyaWQpKSAoZmlyc3RWaWEyWCA9IChjYWFyKGNlbnRlclRhcEJib3gpICsgdmlhMlhPZmZzZXQpKSAodGhlWSA9IGZpcnN0VmlhMlkpIGZvcihyIDEgdmlhMlJvdyAodGhlWCA9IGZpcnN0VmlhMlgpIGZvcihjb2wgMSB2aWEyQ29sIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KCh0aGVYOnRoZVkpICgodGhlWCArIHZpYTJXaWR0aCk6KHRoZVkgKyB2aWEyTGVuZ3RoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh0aGVYID0gKHRoZVggKyB2aWEyWFBpdGNoKSkpICh0aGVZID0gKHRoZVkgKyB2aWEyWVBpdGNoKSkpICh2aWEyQmJveCA9IGxpc3QobGlzdChmaXJzdFZpYTJYIGZpcnN0VmlhMlkpIGNhZHIoKGRiSWR+PmJCb3gpKSkpIChsYXllcjJCYm94ID0gbGlzdChsaXN0KG1pbihjYWFyKGxheWVyMkJib3gpIChjYWFyKHZpYTJCYm94KSAtIGxheWVyMlhFbmNWaWEyKSkgbWluKGNhZGFyKGxheWVyMkJib3gpIChjYWRhcih2aWEyQmJveCkgLSBsYXllcjJZRW5jVmlhMikpKSBsaXN0KG1heChjYWFkcihsYXllcjJCYm94KSAoY2FhZHIodmlhMkJib3gpICsgbGF5ZXIyWEVuY1ZpYTIpKSBtYXgoY2FkYWRyKGxheWVyMkJib3gpIChjYWRhZHIodmlhMkJib3gpICsgbGF5ZXIyWUVuY1ZpYTIpKSkpKSAobGF5ZXIzQmJveCA9IGxpc3QobGlzdCgoY2Fhcih2aWEyQmJveCkgLSBsYXllcjNYRW5jVmlhMikgKGNhZGFyKHZpYTJCYm94KSAtIGxheWVyM1lFbmNWaWEyKSkgbGlzdCgoY2FhZHIodmlhMkJib3gpICsgbGF5ZXIzWEVuY1ZpYTIpIChjYWRhZHIodmlhMkJib3gpICsgbGF5ZXIzWUVuY1ZpYTIpKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsYXllcjNCYm94KSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyUGluQmJveCIgImxpc3QiIChkYklkfj5iQm94KSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllciIgImxpc3QiIGxheWVyMykpIHdoZW4oc3RyYXAgd2hlbihsZWZ0RGlmZiAobGF5ZXIyTFgxID0gKGNhYXIodmlhMUJib3hMKSAtIGxheWVyMlhFbmNWaWExKSkgaWYoZW11bGF0ZVNsb3RWaWFFbmMgdGhlbiAobGF5ZXIyTFkxID0gKGRpZmZZRW5jVmlhMSAtIGxheWVyMllFbmNWaWExKSkgKGxheWVyMkxZMiA9ICgodHJhbldpZHRoTCAtIGRpZmZZRW5jVmlhMSkgKyBsYXllcjJZRW5jVmlhMSkpIGVsc2UgKGxheWVyMkxZMSA9IG1pbigoY2FkYXIodmlhMUJib3hMKSAtIGxheWVyMllFbmNWaWExKSBjYWRhcihsYXllcjJCYm94KSkpIGlmKCh0cmFuV2lkdGhMID09IHRyYW5XaWR0aCkgdGhlbiAobGF5ZXIyTFkyID0gbWF4KGNhZGFkcihsYXllcjJCYm94KSAoY2FkYWRyKHZpYTFCYm94TCkgKyBsYXllcjJZRW5jVmlhMSkpKSBlbHNlIChsYXllcjJMWTIgPSAoY2FkYWRyKHZpYTFCYm94TCkgKyBsYXllcjJZRW5jVmlhMSkpKSkgKGxheWVyMkxYMiA9IGNhYWRyKGxheWVyMkJib3gpKSAobGF5ZXIyQmJveEwgPSBsaXN0KChsYXllcjJMWDE6bGF5ZXIyTFkxKSAobGF5ZXIyTFgyOmxheWVyMkxZMikpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGF5ZXIyQmJveEwpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpKSB3aGVuKHJpZ2h0RGlmZiAobGF5ZXIyUlgyID0gKGNhYWRyKHZpYTFCYm94UikgKyBsYXllcjJYRW5jVmlhMSkpIGlmKGVtdWxhdGVTbG90VmlhRW5jIHRoZW4gKGxheWVyMlJZMSA9IChkaWZmWUVuY1ZpYTEgLSBsYXllcjJZRW5jVmlhMSkpIChsYXllcjJSWTIgPSAoKHRyYW5XaWR0aFIgLSBkaWZmWUVuY1ZpYTEpICsgbGF5ZXIyWUVuY1ZpYTEpKSBlbHNlIChsYXllcjJSWTEgPSBtaW4oKGNhZGFyKHZpYTFCYm94UikgLSBsYXllcjJZRW5jVmlhMSkgY2FkYXIobGF5ZXIyQmJveCkpKSBpZigodHJhbldpZHRoUiA9PSB0cmFuV2lkdGgpIHRoZW4gKGxheWVyMlJZMiA9IG1heChjYWRhZHIobGF5ZXIyQmJveCkgKGNhZGFkcih2aWExQmJveFIpICsgbGF5ZXIyWUVuY1ZpYTEpKSkgZWxzZSAobGF5ZXIyUlkyID0gKGNhZGFkcih2aWExQmJveFIpICsgbGF5ZXIyWUVuY1ZpYTEpKSkpIChsYXllcjJSWDEgPSBjYWFyKGxheWVyMkJib3gpKSAobGF5ZXIyQmJveFIgPSBsaXN0KChsYXllcjJSWDE6bGF5ZXIyUlkxKSAobGF5ZXIyUlgyOmxheWVyMlJZMikpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGF5ZXIyQmJveFIpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxheWVyMkJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIHVubGVzcyhsYXllcjMgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjIpKSkAKGRpZmZMYXllciB0YXBMYXllciB2aWExTGF5ZXIgbGF5ZXIyIHZpYTJMYXllciBsYXllcjMgd2VsbExheWVyIHdlbGxXaWR0aCBpZExheWVyIGlkTGF5ZXJFbmNEaWZmIGlkTGF5ZXJFbmNUYXAgaWRMYXllckVuY1dlbGwgaWRFbmNXZWxsIGRpZmZTb3VyY2VXaWR0aCBkaWZmWEVuY1ZpYTFJbiBkaWZmWEVuY1ZpYTFPdXQgZGlmZllFbmNWaWExIHRhcFhFbmNWaWExIHRhcFlFbmNWaWExIHRhcE1pbk5hckV4dCB0YXBXaWR0aEJldHdlZW4gdGFwQnV0dFNwYWNlIHRhcFdpZHRoQnV0dGluZyBsYXllcjJYRW5jVmlhMSBsYXllcjJYRW5jVmlhMiBsYXllcjJZRW5jVmlhMSBsYXllcjJZRW5jVmlhMiBsYXllcjNYRW5jVmlhMiBsYXllcjNZRW5jVmlhMiB2aWExV2lkdGggdmlhMUxlbmd0aCB2aWExU3BhY2UgdmlhMldpZHRoIHZpYTJMZW5ndGggdmlhMlNwYWNlIGRpZmZJbXBsYW50IGRpZmZJbXBFbmMgZGlmZkltcEVuY0J1dHQgZGlmZkNvcmVJbXBsYW50IGRpZmZDb3JlSW1wRW5jIGRpZmZDb3JlSW1wRW5jQnV0dCB0YXBJbXBsYW50IHRhcEltcEVuYyB0YXBJbXBFbmNCdXR0IHRhcEltcEVuY05vQnV0dCB3ZWxsTGF5ZXJEaWZmRW5jIHdlbGxMYXllclRhcEVuYyBzbmFwR3JpZCBzbG90VmlhIGRpZmZUYXBWaWFTcGFjZSBlbXVsYXRlU2xvdFZpYUVuYyBjZW50ZXJWaWExIGNlbnRlclZpYTIgaW5XZWxsIGltcGxhbnQgbGVmdERpZmYgcmlnaHREaWZmIG5vTGF5ZXIzIG5vRW5kRW5jIHN0cmFwIHRyYW5XaWR0aEwgdHJhbldpZHRoUiBleHRyYURpZmZMIGV4dHJhRGlmZlIgZXh0cmFUYXBMIGV4dHJhVGFwUiBjb2x1bW4gbmV0IGFsbERpciB2aWExQ29sIHZpYTFYUGl0Y2ggdmlhMVlQaXRjaCB2aWEyWFBpdGNoIHZpYTJZUGl0Y2ggdHJhbldpZHRoIGNlbnRlclRhcEJib3ggZGJJZCBleHRyYVRhcEMgZXh0cmFUYXBDUiBleHRyYVRhcENMIHdpZHRoT2ZUYXAgZXh0cmFUYXAgbGVmdFRhcEJib3ggcmlnaHRUYXBCYm94IGRpZmZYU2l6ZSBkaWZmV2lkZUV4dHJhSW4gZGlmZk5hckV4dHJhSW4gbGVmdERpZmZCYm94IHBpbklkIHJpZ2h0RGlmZkJib3ggZXh0cmFMZWZ0SW1wVGFwIGV4dHJhUmlnaHRJbXBUYXAgcG9pbnRfYSBwb2ludF9iIHBvaW50X2MgcG9pbnRfZCBwb2ludF9lIHBvaW50X2YgcG9pbnRfZyBwb2ludF9oIHRhcEltcFBvaW50cyB3ZWxsSW1wUG9pbnRzIGlkTGF5ZXJQb2ludHMgdmlhMURyYXdTcGFjZVkgdmlhMVJvdyB2aWExbGVuZ3RoIHZpYTFZb2Zmc2V0IGZpcnN0VmlhMVkgZmlyc3RWaWExWCB0aGVZIHIgdGhlWCBjb2wgdmlhMUJib3ggY29udGFjdEltcFBhcmFtIGNvbnRhY3RXZWxsUGFyYW0gc2xvdFZpYUlkIHBhcmFtcyBzbG90WDFkaWZmQ29vcmQgc2xvdFgyZGlmZkNvb3JkIHNsb3RMZW5ndGggc2xvdFZpYVdpZHRoIHNsb3RWaWFMZW5ndGggc2xvdFZpYUVuY1ggc2xvdFZpYUVuY1kgaW5zdFBhcmFtcyBzbG90VmlhUl9YIHNsb3RWaWFSX1kgaW5zdFIgc2xvdFZpYVJZMiB2aWExQmJveFIgdmlhMVJvd1Igc2xvdFZpYUxfWCBzbG90VmlhTF9ZIGluc3RMIHZpYTFCYm94TCB2aWExUm93TCBsYXllcjJCYm94IHZpYTJSb3cgdmlhMllvZmZzZXQgZmlyc3RWaWEyWSB2aWEyQ29sIHZpYTJYT2Zmc2V0IGZpcnN0VmlhMlggdmlhMkJib3ggbGF5ZXIzQmJveCBsYXllcjJMWDEgbGF5ZXIyTFkxIGxheWVyMkxZMiBsYXllcjJMWDIgbGF5ZXIyQmJveEwgbGF5ZXIyUlgyIGxheWVyMlJZMSBsYXllcjJSWTIgbGF5ZXIyUlgxIGxheWVyMkJib3hSKQAoKGluV2VsbCAiRkFMU0UiKSAoaW1wbGFudCB0KSAobGVmdERpZmYgdCkgKHJpZ2h0RGlmZiB0KSAobm9MYXllcjMgIkZBTFNFIikgKG5vRW5kRW5jICJGQUxTRSIpIChzdHJhcCB0KSAodHJhbldpZHRoTCAwLjApICh0cmFuV2lkdGhSIDAuMCkgKGV4dHJhRGlmZkwgMC4wKSAoZXh0cmFEaWZmUiAwLjApIChleHRyYVRhcEwgMC4wKSAoZXh0cmFUYXBSIDAuMCkgKGNvbHVtbiAxKSkAKChkaWZmTGF5ZXIgInkxIikgKHRhcExheWVyICJoaWxpdGUiKSAodmlhMUxheWVyICJ5NCIpIChsYXllcjIgInByQm91bmRhcnkiKSAodmlhMkxheWVyIG5pbCkgKGxheWVyMyBuaWwpICh3ZWxsTGF5ZXIgbmlsKSAod2VsbFdpZHRoIDAuMCkgKGlkTGF5ZXIgbmlsKSAoaWRMYXllckVuY0RpZmYgMC4wKSAoaWRMYXllckVuY1RhcCAwLjApIChpZExheWVyRW5jV2VsbCAwLjApIChpZEVuY1dlbGwgbmlsKSAoZGlmZlNvdXJjZVdpZHRoIDAuMCkgKGRpZmZYRW5jVmlhMUluIDAuMCkgKGRpZmZYRW5jVmlhMU91dCAwLjApIChkaWZmWUVuY1ZpYTEgMC4wKSAodGFwWEVuY1ZpYTEgMC4wKSAodGFwWUVuY1ZpYTEgMC4wKSAodGFwTWluTmFyRXh0IDAuMCkgKHRhcFdpZHRoQmV0d2VlbiAwLjApICh0YXBCdXR0U3BhY2UgMC4wKSAodGFwV2lkdGhCdXR0aW5nIDAuMCkgKGxheWVyMlhFbmNWaWExIDAuMCkgKGxheWVyMlhFbmNWaWEyIDAuMCkgKGxheWVyMllFbmNWaWExIDAuMCkgKGxheWVyMllFbmNWaWEyIDAuMCkgKGxheWVyM1hFbmNWaWEyIDAuMCkgKGxheWVyM1lFbmNWaWEyIDAuMCkgKHZpYTFXaWR0aCAwLjApICh2aWExTGVuZ3RoIDAuMCkgKHZpYTFTcGFjZSAwLjApICh2aWEyV2lkdGggMC4wKSAodmlhMkxlbmd0aCAwLjApICh2aWEyU3BhY2UgMC4wKSAoZGlmZkltcGxhbnQgbmlsKSAoZGlmZkltcEVuYyBsaXN0KDAuMCAwLjApKSAoZGlmZkltcEVuY0J1dHQgbGlzdCgwLjAgMC4wKSkgKGRpZmZDb3JlSW1wbGFudCBuaWwpIChkaWZmQ29yZUltcEVuYyBsaXN0KDAuMCAwLjApKSAoZGlmZkNvcmVJbXBFbmNCdXR0IGxpc3QoMC4wIDAuMCkpICh0YXBJbXBsYW50IG5pbCkgKHRhcEltcEVuYyBsaXN0KDAuMCAwLjApKSAodGFwSW1wRW5jQnV0dCBsaXN0KDAuMCAwLjApKSAodGFwSW1wRW5jTm9CdXR0IGxpc3QoMC4wIDAuMCkpICh3ZWxsTGF5ZXJEaWZmRW5jIDAuMCkgKHdlbGxMYXllclRhcEVuYyAwLjApIChzbmFwR3JpZCAoVEVDSGdldFByb3Agc25hcEdyaWQpKSAoc2xvdFZpYSBuaWwpIChkaWZmVGFwVmlhU3BhY2UgMC4wKSAoZW11bGF0ZVNsb3RWaWFFbmMgbmlsKSAoY2VudGVyVmlhMSBuaWwpIChjZW50ZXJWaWEyIG5pbCkpACgodmlhMVBpdGNoID0gKHZpYTFXaWR0aCArIHZpYTFTcGFjZSkpICh2aWEyUGl0Y2ggPSAodmlhMldpZHRoICsgdmlhMlNwYWNlKSkgaWYoKG1pblNwYWNlRGlmZlRhcFZpYTEgIT0gMC4wKSB0aGVuIChkaWZmTGVuZ3RoID0gbWF4KChkaWZmTEVuY1ZpYSArIHZpYTFXaWR0aCArIGRpZmZSRW5jVmlhKSBtaW5TcmMpKSAoZGlmZkJ1dHRFbmMgPSAoZGlmZkxlbmd0aCAtIChkaWZmTEVuY1ZpYSArIHZpYTFXaWR0aCkpKSAoc2lkZVRhcFhJbkVuY1ZpYSA9IG1heCgobWluU3BhY2VEaWZmVGFwVmlhMSAtIGRpZmZCdXR0RW5jKSBzaWRlVGFwWEluRW5jVmlhKSkpIGlmKCgoaW1wbGFudCA9PSB0KSB8fCAoaW1wbGFudCA9PSAiVFJVRSIpKSB0aGVuIChpbXBsYW50ID0gdCkgZWxzZSAoaW1wbGFudCA9IG5pbCkpIGlmKCgoaW5XZWxsID09IHQpIHx8IChpbldlbGwgPT0gIlRSVUUiKSkgdGhlbiAoaW5XZWxsID0gdCkgZWxzZSAoaW5XZWxsID0gbmlsKSkgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIChkYkNyZWF0ZVRlcm0gbmV0ICIiICJpbnB1dCIpIChhbGxEaXIgPSBsaXN0KCJyaWdodCIgImxlZnQiICJ0b3AiICJib3R0b20iKSkgKGRpZmZTcHJlYWQgPSAwLjApIHdoZW4oc3RyaW5ncChkaWZmKSAoZGlmZiA9IGxpc3QoZGlmZiAiZHJhd2luZyIpKSkgd2hlbihzdHJpbmdwKHRhcCkgKHRhcCA9IGxpc3QodGFwICJkcmF3aW5nIikpKSB3aGVuKHN0cmluZ3AobGF5ZXIyKSAobGF5ZXIyID0gbGlzdChsYXllcjIgImRyYXdpbmciKSkpIHdoZW4oKGxheWVyMyAmJiBzdHJpbmdwKGxheWVyMykpIChsYXllcjMgPSBsaXN0KGxheWVyMyAiZHJhd2luZyIpKSkgd2hlbihpbXBsYW50IHdoZW4oZGlmZkltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGRpZmZJbXBsYW50ID0gY2FkcihkaWZmSW1wbGFudCkpIChkaWZmSW1wRW5jID0gY2FkcihkaWZmSW1wRW5jKSkgKGRpZmZJbXBFbmNCdXR0ID0gY2FkcihkaWZmSW1wRW5jQnV0dCkpIGVsc2UgKGRpZmZJbXBsYW50ID0gY2FyKGRpZmZJbXBsYW50KSkgKGRpZmZJbXBFbmMgPSBjYXIoZGlmZkltcEVuYykpIChkaWZmSW1wRW5jQnV0dCA9IGNhcihkaWZmSW1wRW5jQnV0dCkpKSkgd2hlbihkaWZmQ29yZUltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGRpZmZDb3JlSW1wbGFudCA9IGNhZHIoZGlmZkNvcmVJbXBsYW50KSkgKGRpZmZDb3JlSW1wRW5jID0gY2FkcihkaWZmQ29yZUltcEVuYykpIChkaWZmQ29yZUltcEVuY0J1dHQgPSBjYWRyKGRpZmZDb3JlSW1wRW5jQnV0dCkpIGVsc2UgKGRpZmZDb3JlSW1wbGFudCA9IGNhcihkaWZmQ29yZUltcGxhbnQpKSAoZGlmZkNvcmVJbXBFbmMgPSBjYXIoZGlmZkNvcmVJbXBFbmMpKSAoZGlmZkNvcmVJbXBFbmNCdXR0ID0gY2FyKGRpZmZDb3JlSW1wRW5jQnV0dCkpKSkgd2hlbih0YXBJbXBsYW50IGlmKGluV2VsbCB0aGVuICh0YXBJbXBsYW50ID0gY2Fkcih0YXBJbXBsYW50KSkgKHRhcEltcEVuYyA9IGNhZHIodGFwSW1wRW5jKSkgKHRhcEltcEVuY0J1dHQgPSBjYWRyKHRhcEltcEVuY0J1dHQpKSBlbHNlICh0YXBJbXBsYW50ID0gY2FyKHRhcEltcGxhbnQpKSAodGFwSW1wRW5jID0gY2FyKHRhcEltcEVuYykpICh0YXBJbXBFbmNCdXR0ID0gY2FyKHRhcEltcEVuY0J1dHQpKSkpKSB3aGVuKGltcGxhbnQgd2hlbihkaWZmSW1wRW5jTGlzdCBpZihpbldlbGwgdGhlbiAoZW5jTGlzdCA9IGNhZHIobnRoKGRpZmZJbXBDaG9pY2UgZGlmZkltcEVuY0xpc3QpKSkgZWxzZSAoZW5jTGlzdCA9IGNhcihudGgoZGlmZkltcENob2ljZSBkaWZmSW1wRW5jTGlzdCkpKSkgKGRpZmZJbXBFbmNYTCA9IG50aCgwIGVuY0xpc3QpKSAoZGlmZkltcEVuY1hSID0gbnRoKDEgZW5jTGlzdCkpIChkaWZmSW1wRW5jWSA9IG50aCgyIGVuY0xpc3QpKSkgd2hlbih0YXBJbXBFbmNMaXN0IGlmKGluV2VsbCB0aGVuIChlbmNMaXN0ID0gY2FkcihudGgodGFwSW1wQ2hvaWNlIHRhcEltcEVuY0xpc3QpKSkgZWxzZSAoZW5jTGlzdCA9IGNhcihudGgodGFwSW1wQ2hvaWNlIHRhcEltcEVuY0xpc3QpKSkpICh0YXBJbXBFbmNYTCA9IG50aCgwIGVuY0xpc3QpKSAodGFwSW1wRW5jWFIgPSBudGgoMSBlbmNMaXN0KSkgKHRhcEltcEVuY1kgPSBudGgoMiBlbmNMaXN0KSkpIChkaWZmSW1wRW5jWSA9ICgoYm91bmRwKCdkaWZmSW1wRW5jWSkgJiYgZGlmZkltcEVuY1kpIHx8IGRpZmZJbXBFbmMpKSAoZGlmZkltcEVuY1hMID0gKChib3VuZHAoJ2RpZmZJbXBFbmNYTCkgJiYgZGlmZkltcEVuY1hMKSB8fCBkaWZmSW1wRW5jKSkgKGRpZmZJbXBFbmNYUiA9ICgoYm91bmRwKCdkaWZmSW1wRW5jWFIpICYmIGRpZmZJbXBFbmNYUikgfHwgZGlmZkltcEVuYykpICh0YXBJbXBFbmNZID0gKChib3VuZHAoJ3RhcEltcEVuY1kpICYmIHRhcEltcEVuY1kpIHx8IHRhcEltcEVuYykpICh0YXBJbXBFbmNYTCA9ICgoYm91bmRwKCd0YXBJbXBFbmNYTCkgJiYgdGFwSW1wRW5jWEwpIHx8IHRhcEltcEVuYykpICh0YXBJbXBFbmNYUiA9ICgoYm91bmRwKCd0YXBJbXBFbmNYUikgJiYgdGFwSW1wRW5jWFIpIHx8IHRhcEltcEVuYykpKSAoY29udGFjdFdpZHRoID0gbWF4KHRhcFdpZHRoQnV0dGluZ0RpZmYgKHRpcFRhcFlJbkVuY1ZpYSArIHRpcFRhcFlPdXRFbmNWaWEgKyB2aWExV2lkdGgpKSkgKGRpZmZDb250YWN0WXdpdGhUaXBUYXAgPSBtYXgoKHZpYTFTcGFjZSAtIHRpcFRhcFlJbkVuY1ZpYSkgZGlmZllFbmNWaWEpKSAodGFwQ29udGFjdFl3aXRoVGlwVGFwID0gbWF4KCh2aWExU3BhY2UgLSB0aXBUYXBZSW5FbmNWaWEpIHNpZGVUYXBZRW5jVmlhKSkgKGRpZmZDb250YWN0WXdpdGhvdXRUaXBUYXAgPSBkaWZmWUVuY1ZpYSkgKHRhcENvbnRhY3RZd2l0aG91dFRpcFRhcCA9IHNpZGVUYXBZRW5jVmlhKSBjb25kKCgoYm90dG9tRW5kVGFwID09ICJUUlVFIikgKGRpZmZDb250YWN0WW9yaWdpbiA9IGRpZmZDb250YWN0WXdpdGhUaXBUYXApICh0YXBDb250YWN0WW9yaWdpbiA9IHRhcENvbnRhY3RZd2l0aFRpcFRhcCkpICh0IChkaWZmQ29udGFjdFlvcmlnaW4gPSBkaWZmQ29udGFjdFl3aXRob3V0VGlwVGFwKSAodGFwQ29udGFjdFlvcmlnaW4gPSB0YXBDb250YWN0WXdpdGhvdXRUaXBUYXApKSkgY29uZCgoKHRvcEVuZFRhcCA9PSAiVFJVRSIpIChsYXN0RGlmZkNvbnRhY3RZb3JpZ2luID0gKHcgLSBkaWZmQ29udGFjdFl3aXRoVGlwVGFwIC0gdmlhMVdpZHRoKSkgKGxhc3RUYXBDb250YWN0WW9yaWdpbiA9ICh3IC0gdGFwQ29udGFjdFl3aXRoVGlwVGFwIC0gdmlhMVdpZHRoKSkgKGRpZmZDb250YWN0WWVuZEVuYyA9IGRpZmZDb250YWN0WXdpdGhUaXBUYXApICh0YXBDb250YWN0WWVuZEVuYyA9IHRhcENvbnRhY3RZd2l0aFRpcFRhcCkpICh0IChsYXN0RGlmZkNvbnRhY3RZb3JpZ2luID0gKHcgLSBkaWZmQ29udGFjdFl3aXRob3V0VGlwVGFwIC0gdmlhMVdpZHRoKSkgKGxhc3RUYXBDb250YWN0WW9yaWdpbiA9ICh3IC0gdGFwQ29udGFjdFl3aXRob3V0VGlwVGFwIC0gdmlhMVdpZHRoKSkgKGRpZmZDb250YWN0WWVuZEVuYyA9IGRpZmZDb250YWN0WXdpdGhvdXRUaXBUYXApICh0YXBDb250YWN0WWVuZEVuYyA9IHRhcENvbnRhY3RZd2l0aG91dFRpcFRhcCkpKSAobWluVyA9IG1heChkaWZmV2lkdGggdGFwV2lkdGggKHZpYTFXaWR0aCArICgyLjAgKiAodmlhMVNwYWNlIC0gdGlwVGFwWUluRW5jVmlhKSkpKSkgd2hlbigoKG1pblcgLSB3KSA+IDFlLTA2KSAoc21hbGxlck1pblcgPSBtYXgoZGlmZldpZHRoIHRhcFdpZHRoICh2aWExV2lkdGggKyAoMi4wICogbWF4KGRpZmZZRW5jVmlhIHNpZGVUYXBZRW5jVmlhKSkpKSkgd2hlbigoKHNtYWxsZXJNaW5XIC0gdykgPiAxZS0wNikgZXJyb3IoIkNhbm5vdCBkcmF3IGVuU3N0cmFwM1BvbEltcENsYXNzIC0gdyB0b28gc21hbGwiKSkgKGxhc3REaWZmQ29udGFjdFlvcmlnaW4gPSAodyAtIGRpZmZZRW5jVmlhIC0gdmlhMVdpZHRoKSkgKGxhc3RUYXBDb250YWN0WW9yaWdpbiA9ICh3IC0gc2lkZVRhcFlFbmNWaWEgLSB2aWExV2lkdGgpKSBjb25kKCgoKGJvdHRvbUVuZFRhcCA9PSAiVFJVRSIpICYmICh0b3BFbmRUYXAgPT0gIlRSVUUiKSkgKGRpZmZTcHJlYWQgPSAoKG1pblcgLSB3KSAvIDIuMCkpIChvZGRwKHJvdW5kKChkaWZmU3ByZWFkIC8gaGFsZkRpZmZ1c2lvbkdyaWQpKSkgJiYgKGRpZmZTcHJlYWQgPSAoZGlmZlNwcmVhZCArIGhhbGZEaWZmdXNpb25HcmlkKSkpIChkaWZmQ29udGFjdFlvcmlnaW4gPSAoKC0gZGlmZlNwcmVhZCkgKyAoLSB0aXBUYXBZSW5FbmNWaWEpICsgdmlhMVNwYWNlKSkgKHRhcENvbnRhY3RZb3JpZ2luID0gbWF4KHNpZGVUYXBZRW5jVmlhIGRpZmZDb250YWN0WW9yaWdpbikpIChjb250YWN0V2lkdGggPSBtYXgodGFwV2lkdGhCdXR0aW5nRGlmZiAoZGlmZlNwcmVhZCArIHRpcFRhcFlJbkVuY1ZpYSArIHRpcFRhcFlPdXRFbmNWaWEgKyB2aWExV2lkdGgpKSkpICgoYm90dG9tRW5kVGFwID09ICJUUlVFIikgKGRpZmZDb250YWN0WW9yaWdpbiA9ICh3IC0gZGlmZllFbmNWaWEgLSB2aWExV2lkdGgpKSB3aGVuKChkaWZmQ29udGFjdFlvcmlnaW4gPiAodmlhMVNwYWNlIC0gdGlwVGFwWUluRW5jVmlhKSkgKGRpZmZDb250YWN0WW9yaWdpbiA9ICh2aWExU3BhY2UgLSB0aXBUYXBZSW5FbmNWaWEpKSkgKHRhcENvbnRhY3RZb3JpZ2luID0gKHcgLSBzaWRlVGFwWUVuY1ZpYSAtIHZpYTFXaWR0aCkpIChwb3RlbnRpYWxEaWZmU3ByZWFkID0gKHZpYTFTcGFjZSAtIG1pbihkaWZmQ29udGFjdFlvcmlnaW4gdGFwQ29udGFjdFlvcmlnaW4pKSkgd2hlbigocG90ZW50aWFsRGlmZlNwcmVhZCA+IHRpcFRhcFlJbkVuY1ZpYSkgKGRpZmZTcHJlYWQgPSBwb3RlbnRpYWxEaWZmU3ByZWFkKSkgKGNvbnRhY3RXaWR0aCA9IG1heCh0YXBXaWR0aEJ1dHRpbmdEaWZmICh0aXBUYXBZT3V0RW5jVmlhICsgdmlhMVdpZHRoICsgbWF4KHRpcFRhcFlJbkVuY1ZpYSBwb3RlbnRpYWxEaWZmU3ByZWFkKSkpKSkgKCh0b3BFbmRUYXAgPT0gIlRSVUUiKSAoZGlmZkNvbnRhY3RZb3JpZ2luID0gZGlmZllFbmNWaWEpICh0YXBDb250YWN0WW9yaWdpbiA9IHNpZGVUYXBZRW5jVmlhKSAocG90ZW50aWFsRGlmZlNwcmVhZCA9ICgobWF4KGRpZmZDb250YWN0WW9yaWdpbiB0YXBDb250YWN0WW9yaWdpbikgKyB2aWExV2lkdGggKyB2aWExU3BhY2UpIC0gdykpIHdoZW4oKHBvdGVudGlhbERpZmZTcHJlYWQgPiB0aXBUYXBZSW5FbmNWaWEpIChkaWZmU3ByZWFkID0gcG90ZW50aWFsRGlmZlNwcmVhZCkpIChjb250YWN0V2lkdGggPSBtYXgodGFwV2lkdGhCdXR0aW5nRGlmZiAodGlwVGFwWU91dEVuY1ZpYSArIHZpYTFXaWR0aCArIG1heCh0aXBUYXBZSW5FbmNWaWEgcG90ZW50aWFsRGlmZlNwcmVhZCkpKSkpKSkgKHN0YWdnZXIgPSAoKHRyeVRvU3RhZ2dlciA9PSAiVFJVRSIpICYmICgodyAtIChkaWZmQ29udGFjdFlvcmlnaW4gKyB2aWExU3BhY2UgKyAoMiAqIHZpYTFXaWR0aCkgKyB0YXBDb250YWN0WWVuZEVuYykpID4gLTFlLTA2KSkpIChub0RpZmZDb250YWN0ID0gKG5vRGlmZkNvbnRhY3QgPT0gIlRSVUUiKSkgY29uZCgoc3RhZ2dlciAodGFwQ29udGFjdFlvcmlnaW4gPSAoZGlmZkNvbnRhY3RZb3JpZ2luICsgdmlhMVNwYWNlICsgdmlhMVdpZHRoKSkgKGNvbnRhY3RZb2Zmc2V0ID0gKDIgKiAodmlhMVdpZHRoICsgdmlhMVNwYWNlKSkpICh0YXBDb250YWN0WG9yaWdpbiA9IChkaWZmTEVuY1ZpYSArIHZpYTFXaWR0aCArIGRpZmZSRW5jVmlhICsgc2lkZVRhcFhJbkVuY1ZpYSkpICh0YXBPcmlnaW4gPSBtYXgoKGRpZmZMRW5jVmlhICsgdmlhMVdpZHRoICsgZGlmZlJFbmNWaWEpIG1pblNyYykpKSAodCAoY29udGFjdFlvZmZzZXQgPSAodmlhMVdpZHRoICsgdmlhMVNwYWNlKSkgY29uZCgobm9EaWZmQ29udGFjdCAodGFwQ29udGFjdFhvcmlnaW4gPSAobWluU3JjICsgc2lkZVRhcFhJbkVuY1ZpYSkpKSAodCAodGFwQ29udGFjdFhvcmlnaW4gPSBtYXgoKGRpZmZMRW5jVmlhICsgdmlhMVdpZHRoICsgZGlmZlJFbmNWaWEgKyBzaWRlVGFwWEluRW5jVmlhKSAoZGlmZkxFbmNWaWEgKyB2aWExV2lkdGggKyB2aWExU3BhY2UpIChtaW5TcmMgKyBzaWRlVGFwWEluRW5jVmlhKSkpKSkgKHRhcE9yaWdpbiA9IG1heCgoZGlmZkxFbmNWaWEgKyB2aWExV2lkdGggKyBkaWZmUkVuY1ZpYSkgbWluU3JjKSkpKSAoZGlmZkNvbnRhY3RYb3JpZ2luID0gZGlmZkxFbmNWaWEpIChkaWZmQ29udGFjdFhlbmQgPSAoZGlmZkNvbnRhY3RYb3JpZ2luICsgdmlhMVdpZHRoKSkgKHRhcENvbnRhY3RYZW5kID0gKHRhcENvbnRhY3RYb3JpZ2luICsgdmlhMVdpZHRoKSkgKHRhcFJpZ2h0RWRnZSA9IG1heCgodGFwQ29udGFjdFhvcmlnaW4gKyB2aWExV2lkdGggKyBzaWRlVGFwWE91dEVuY1ZpYSkgKHRhcE9yaWdpbiArIHRhcFdpZHRoQnV0dGluZ0RpZmYpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZiBsaXN0KCgwOjApICh0YXBPcmlnaW46dykpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiZGlmZkxheWVyQmJveCIgImxpc3QiIChkYklkfj5iQm94KSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZiBsaXN0KCgodGFwT3JpZ2luIC0gbWluUGluV2lkdGgpOjApICh0YXBPcmlnaW46dykpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBsaXN0KCJsZWZ0IikgYWNjZXNzRGlyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImRpZmZMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIHdoZW4oKGltcGxhbnQgJiYgZGlmZkltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoY2FhcigodGNDZWxsVmlld34+ZGlmZkxheWVyQmJveCkpIC0gZGlmZkltcEVuY1hMKSAoY2FkYXIoKHRjQ2VsbFZpZXd+PmRpZmZMYXllckJib3gpKSAtIGRpZmZJbXBFbmNZKSkgbGlzdCgoY2FhZHIoKHRjQ2VsbFZpZXd+PmRpZmZMYXllckJib3gpKSArIGRpZmZJbXBFbmNCdXR0KSAoY2FkYWRyKCh0Y0NlbGxWaWV3fj5kaWZmTGF5ZXJCYm94KSkgKyBkaWZmSW1wRW5jWSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgd2hlbigoaW1wbGFudCAmJiBkaWZmQ29yZUltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKGNhYXIoKHRjQ2VsbFZpZXd+PmRpZmZMYXllckJib3gpKSAtIGRpZmZDb3JlSW1wRW5jKSAoY2FkYXIoKHRjQ2VsbFZpZXd+PmRpZmZMYXllckJib3gpKSAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgoY2FhZHIoKHRjQ2VsbFZpZXd+PmRpZmZMYXllckJib3gpKSArIGRpZmZDb3JlSW1wRW5jQnV0dCkgKGNhZGFkcigodGNDZWxsVmlld34+ZGlmZkxheWVyQmJveCkpICsgZGlmZkNvcmVJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcCBsaXN0KCh0YXBPcmlnaW46MCkgKHRhcFJpZ2h0RWRnZTp3KSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRhcExlZnRFZGdlID0gdGFwT3JpZ2luKSAodGFwQm90dG9tRWRnZSA9IDAuMCkgKHRhcFRvcEVkZ2UgPSB3KSB3aGVuKChpbXBsYW50ICYmIHRhcEltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcEltcGxhbnQgbGlzdChsaXN0KCh0YXBPcmlnaW4gLSB0YXBJbXBFbmNCdXR0KSAoLSB0YXBJbXBFbmNZKSkgbGlzdCgodGFwUmlnaHRFZGdlICsgdGFwSW1wRW5jWFIpICh3ICsgdGFwSW1wRW5jWSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgaWYoY2VudGVyVmlhMSB0aGVuICh2aWFEcmF3U3BhY2VZID0gKHcgLSAoZGlmZllFbmNWaWEgKiAyKSkpICh2aWExUm93ID0gKGZsb29yICgodmlhRHJhd1NwYWNlWSArIHZpYTFTcGFjZSkgLyB2aWExUGl0Y2gpKSkgaWYoKHZpYTFSb3cgPT0gMCkgKHZpYTFSb3cgPSAxKSkgKHZpYTFZb2Zmc2V0ID0gKCh2aWFEcmF3U3BhY2VZIC0gKCh2aWExUm93ICogdmlhMVBpdGNoKSAtIHZpYTFTcGFjZSkpIC8gMikpICh2aWExWW9yaWdpbiA9IChkaWZmWUVuY1ZpYSArIChmaXgoKCh2aWExWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpKSAoeVZhbHVlID0gdmlhMVlvcmlnaW4pIGZvcihyIDEgdmlhMVJvdyB1bmxlc3Mobm9EaWZmQ29udGFjdCAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgoZGlmZkNvbnRhY3RYb3JpZ2luOnlWYWx1ZSkgKGRpZmZDb250YWN0WGVuZDooeVZhbHVlICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAoeVZhbHVlID0gKHlWYWx1ZSArIHZpYTFQaXRjaCkpKSAoZGlmZkNvbnRhY3RZZW5kID0gKHlWYWx1ZSAtIHZpYTFTcGFjZSkpICh2aWFEcmF3U3BhY2VZID0gKHcgLSAoc2lkZVRhcFlFbmNWaWEgKiAyKSkpICh2aWExUm93ID0gKGZsb29yICgodmlhRHJhd1NwYWNlWSArIHZpYTFTcGFjZSkgLyB2aWExUGl0Y2gpKSkgaWYoKHZpYTFSb3cgPT0gMCkgKHZpYTFSb3cgPSAxKSkgKHZpYTFZb2Zmc2V0ID0gKCh2aWFEcmF3U3BhY2VZIC0gKCh2aWExUm93ICogdmlhMVBpdGNoKSAtIHZpYTFTcGFjZSkpIC8gMikpICh2aWExWW9yaWdpbiA9IChzaWRlVGFwWUVuY1ZpYSArIChmaXgoKCh2aWExWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpKSAoeVZhbHVlID0gdmlhMVlvcmlnaW4pIGZvcihyIDEgdmlhMVJvdyAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodGFwQ29udGFjdFhvcmlnaW46eVZhbHVlKSAodGFwQ29udGFjdFhlbmQ6KHlWYWx1ZSArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoeVZhbHVlID0gKHlWYWx1ZSArIHZpYTFQaXRjaCkpKSAodGFwQ29udGFjdFllbmQgPSAoeVZhbHVlIC0gdmlhMVNwYWNlKSkgZWxzZSAodmlhMVlvcmlnaW4gPSBkaWZmQ29udGFjdFlvcmlnaW4pICh5VmFsdWUgPSBkaWZmQ29udGFjdFlvcmlnaW4pIHdoaWxlKCgobGFzdERpZmZDb250YWN0WW9yaWdpbiAtIHlWYWx1ZSkgPiAtMWUtMDYpIHVubGVzcyhub0RpZmZDb250YWN0IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KChkaWZmQ29udGFjdFhvcmlnaW46eVZhbHVlKSAoZGlmZkNvbnRhY3RYZW5kOih5VmFsdWUgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpICh5VmFsdWUgPSAoeVZhbHVlICsgY29udGFjdFlvZmZzZXQpKSkgKGRpZmZDb250YWN0WWVuZCA9ICh2aWExV2lkdGggKyAoeVZhbHVlIC0gY29udGFjdFlvZmZzZXQpKSkgKHlWYWx1ZSA9IHRhcENvbnRhY3RZb3JpZ2luKSB3aGlsZSgoKGxhc3RUYXBDb250YWN0WW9yaWdpbiAtIHlWYWx1ZSkgPiAtMWUtMDYpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KCh0YXBDb250YWN0WG9yaWdpbjp5VmFsdWUpICh0YXBDb250YWN0WGVuZDooeVZhbHVlICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh5VmFsdWUgPSAoeVZhbHVlICsgY29udGFjdFlvZmZzZXQpKSkgKHRhcENvbnRhY3RZZW5kID0gKHZpYTFXaWR0aCArICh5VmFsdWUgLSBjb250YWN0WW9mZnNldCkpKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJiQm94VmlhMSIgImxpc3QiIGxpc3QoKGRpZmZDb250YWN0WG9yaWdpbjp2aWExWW9yaWdpbikgKHRhcENvbnRhY3RZZW5kOnlWYWx1ZSkpKSBpZihub0RpZmZDb250YWN0IHRoZW4gKGxheWVyMlhvcmlnaW4gPSAodGFwQ29udGFjdFhvcmlnaW4gLSBsYXllcjJYRW5jVmlhKSkgZWxzZSAobGF5ZXIyWG9yaWdpbiA9IChkaWZmQ29udGFjdFhvcmlnaW4gLSBsYXllcjJYRW5jVmlhKSkpIChsYXllcjJYZW5kID0gKHRhcENvbnRhY3RYZW5kICsgbGF5ZXIyWEVuY1ZpYSkpIChsYXllcjJNaW5XaWR0aCA9IG1heChsYXllcjJXaWR0aCAoKDIgKiBsYXllcjJYRW5jVmlhMikgKyB2aWEyV2lkdGgpKSkgKCgobGF5ZXIyTWluV2lkdGggLSAobGF5ZXIyWGVuZCAtIGxheWVyMlhvcmlnaW4pKSA+IC0xZS0wNikgJiYgKGxheWVyMlhlbmQgPSAobGF5ZXIyWG9yaWdpbiArIGxheWVyMk1pbldpZHRoKSkpIGlmKGxheWVyMyB0aGVuIGlmKGVtdWxhdGVTbG90VmlhIHRoZW4gKGxheWVyMllvcmlnaW4gPSAoZGlmZllFbmNWaWEgLSBtYXgobGF5ZXIyWUVuY1ZpYSBsYXllcjJZRW5jVmlhMikpKSBlbHNlIChsYXllcjJZb3JpZ2luID0gbWluKDAuMCAobWluKGRpZmZDb250YWN0WW9yaWdpbiB0YXBDb250YWN0WW9yaWdpbikgLSBtYXgobGF5ZXIyWUVuY1ZpYSBsYXllcjJZRW5jVmlhMikpKSkpIChudW1WaWEyID0gbWF4KGZpeCgoKCh3ICsgdmlhMlNwYWNlICsgKC0gKGxheWVyMllFbmNWaWEyICsgbGF5ZXIyWUVuY1ZpYTIpKSArICgtIGxheWVyMllvcmlnaW4pKSAvICh2aWEyV2lkdGggKyB2aWEyU3BhY2UpKSArIDFlLTA2KSkgMSkpIChsYXN0VmlhMlllbmQgPSAoKHZpYTJXaWR0aCAqIG51bVZpYTIpICsgKHZpYTJTcGFjZSAqIChudW1WaWEyIC0gMSkpICsgbGF5ZXIyWW9yaWdpbiArIGxheWVyMllFbmNWaWEyKSkgaWYoZW11bGF0ZVNsb3RWaWEgdGhlbiAobGF5ZXIyWWVuZCA9IChsYXllcjJZRW5jVmlhICsgKHcgLSBkaWZmWUVuY1ZpYSkpKSBlbHNlIChsYXllcjJZZW5kID0gbWF4KChtYXgoZGlmZkNvbnRhY3RZZW5kIHRhcENvbnRhY3RZZW5kKSArIGxheWVyMllFbmNWaWEpIChsYXN0VmlhMlllbmQgKyBsYXllcjJZRW5jVmlhMikpKSkgaWYoY2VudGVyVmlhMiB0aGVuICh2aWEyWG9mZnNldCA9ICgodmlhMldpZHRoIC0gdmlhMVdpZHRoKSAvIDIpKSAodmlhMlhvZmZzZXQgPSAoZml4KCgodmlhMlhvZmZzZXQgLyBzbmFwR3JpZCkgKyAxZS0wNSkpICogc25hcEdyaWQpKSAodmlhMlhvcmlnaW4gPSAoZGlmZkNvbnRhY3RYb3JpZ2luIC0gdmlhMlhvZmZzZXQpKSAodmlhMlhlbmQgPSAodmlhMlhvcmlnaW4gKyB2aWEyV2lkdGgpKSAobGF5ZXIyWG9yaWdpbiA9ICh2aWEyWG9yaWdpbiAtIGxheWVyMlhFbmNWaWEyKSkpIGVsc2UgaWYobm9EaWZmQ29udGFjdCB0aGVuIGlmKGNlbnRlckxheWVyMiB0aGVuIChsYXllcjJZb3JpZ2luID0gKHZpYTFZb3JpZ2luIC0gbGF5ZXIyWUVuY1ZpYSkpIGVsc2UgKHRhcENvbnRhY3RZb3JpZ2luIC0gbGF5ZXIyWUVuY1ZpYSkpIChsYXllcjJZZW5kID0gKHRhcENvbnRhY3RZZW5kICsgbGF5ZXIyWUVuY1ZpYSkpIGVsc2UgaWYoZW11bGF0ZVNsb3RWaWEgdGhlbiAobGF5ZXIyWW9yaWdpbiA9IChkaWZmWUVuY1ZpYSAtIGxheWVyMllFbmNWaWEpKSAobGF5ZXIyWWVuZCA9IChsYXllcjJZRW5jVmlhICsgKHcgLSBkaWZmWUVuY1ZpYSkpKSBlbHNlIGlmKGNlbnRlckxheWVyMiB0aGVuIChsYXllcjJZb3JpZ2luID0gKHZpYTFZb3JpZ2luIC0gbGF5ZXIyWUVuY1ZpYSkpIGVsc2UgKGxheWVyMllvcmlnaW4gPSBtaW4oMC4wIChtaW4oZGlmZkNvbnRhY3RZb3JpZ2luIHRhcENvbnRhY3RZb3JpZ2luKSAtIGxheWVyMllFbmNWaWEpKSkpIChsYXllcjJZZW5kID0gKG1heChkaWZmQ29udGFjdFllbmQgdGFwQ29udGFjdFllbmQpICsgbGF5ZXIyWUVuY1ZpYSkpKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KChsYXllcjJYb3JpZ2luOmxheWVyMllvcmlnaW4pIChsYXllcjJYZW5kOmxheWVyMlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJiQm94TGF5ZXIyIiAiSUxMaXN0IiAoZGJJZH4+YkJveCkpIHVubGVzcyhsYXllcjMgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjIpKSAodmlhWG9yaWdpbiA9ICh0YXBTcGFjZVBvbHkgKyB0aXBUYXBYRW5jVmlhKSkgKHZpYVhlbmQgPSAodmlhWG9yaWdpbiArIHZpYTFXaWR0aCkpICh0YkxheWVyMlhvcmlnaW4gPSAodmlhWG9yaWdpbiAtIGxheWVyMlhFbmNUaXBWaWEpKSAodGJMYXllcjJYZW5kID0gKHZpYVhlbmQgKyBsYXllcjJYRW5jVGlwVmlhKSkgKCgobGF5ZXIyV2lkdGggLSAodGJMYXllcjJYZW5kIC0gdGJMYXllcjJYb3JpZ2luKSkgPiAtMWUtMDYpICYmICh0YkxheWVyMlhlbmQgPSAodGJMYXllcjJYb3JpZ2luICsgbGF5ZXIyV2lkdGgpKSkgd2hlbihzaWRlUmVjb2duaXRpb24gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgc2lkZVJlY29nbml0aW9uIGxpc3QoKHRhcE9yaWdpbjppZigoYm90dG9tRW5kVGFwID09ICJUUlVFIikgKC0gY29udGFjdFdpZHRoKSAwLjApKSAodGFwUmlnaHRFZGdlOih3ICsgaWYoKHRvcEVuZFRhcCA9PSAiVFJVRSIpIGNvbnRhY3RXaWR0aCAwLjApKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSBjb25kKCgoYm90dG9tRW5kVGFwID09ICJUUlVFIikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwIGxpc3QoKHRhcFNwYWNlUG9seTowKSAodGFwUmlnaHRFZGdlOigtIGNvbnRhY3RXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSB3aGVuKChpbXBsYW50ICYmIHRhcEltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcEltcGxhbnQgbGlzdChsaXN0KCh0YXBTcGFjZVBvbHkgLSB0YXBJbXBFbmMpIHRhcEltcEVuY0J1dHQpIGxpc3QoKHRhcFJpZ2h0RWRnZSArIHRhcEltcEVuYykgKCgtIGNvbnRhY3RXaWR0aCkgLSB0YXBJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIHdoZW4oKHRhcFNwYWNlUG9seSA8IHRhcExlZnRFZGdlKSAodGFwTGVmdEVkZ2UgPSB0YXBTcGFjZVBvbHkpKSB3aGVuKCgoLSBjb250YWN0V2lkdGgpIDwgdGFwQm90dG9tRWRnZSkgKHRhcEJvdHRvbUVkZ2UgPSAoLSBjb250YWN0V2lkdGgpKSkgd2hlbigoY29udGFjdFdpZHRoID09IHRhcFdpZHRoQnV0dGluZ0RpZmYpICh0aXBUYXBZT3V0RW5jVmlhID0gKHRhcFdpZHRoQnV0dGluZ0RpZmYgLSB2aWExV2lkdGggLSB0aXBUYXBZSW5FbmNWaWEgLSBkaWZmU3ByZWFkKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KCh2aWFYb3JpZ2luOigoLSBjb250YWN0V2lkdGgpICsgdGlwVGFwWU91dEVuY1ZpYSkpICh2aWFYZW5kOigoLSBjb250YWN0V2lkdGgpICsgdGlwVGFwWU91dEVuY1ZpYSArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdCgodGJMYXllcjJYb3JpZ2luOjAuMCkgKHRiTGF5ZXIyWGVuZDooKC0gY29udGFjdFdpZHRoKSArIHRpcFRhcFlPdXRFbmNWaWEgKyAoLSBsYXllcjJZRW5jVGlwVmlhKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikpICh0IHQpKSBjb25kKCgodG9wRW5kVGFwID09ICJUUlVFIikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwIGxpc3QoKHRhcFNwYWNlUG9seTp3KSAodGFwUmlnaHRFZGdlOih3ICsgY29udGFjdFdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIHdoZW4oKGltcGxhbnQgJiYgdGFwSW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwSW1wbGFudCBsaXN0KGxpc3QoKHRhcFNwYWNlUG9seSAtIHRhcEltcEVuYykgKHcgLSB0YXBJbXBFbmNCdXR0KSkgbGlzdCgodGFwUmlnaHRFZGdlICsgdGFwSW1wRW5jKSAoKHcgKyBjb250YWN0V2lkdGgpICsgdGFwSW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSB3aGVuKCh0YXBTcGFjZVBvbHkgPCB0YXBMZWZ0RWRnZSkgKHRhcExlZnRFZGdlID0gdGFwU3BhY2VQb2x5KSkgd2hlbigoKHcgKyBjb250YWN0V2lkdGgpID4gdGFwVG9wRWRnZSkgKHRhcFRvcEVkZ2UgPSAodyArIGNvbnRhY3RXaWR0aCkpKSB3aGVuKChjb250YWN0V2lkdGggPT0gdGFwV2lkdGhCdXR0aW5nRGlmZikgKHRpcFRhcFlPdXRFbmNWaWEgPSAodGFwV2lkdGhCdXR0aW5nRGlmZiAtIHZpYTFXaWR0aCAtIHRpcFRhcFlJbkVuY1ZpYSAtIGRpZmZTcHJlYWQpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHZpYVhvcmlnaW46KHcgKyBjb250YWN0V2lkdGggKyAoLSB0aXBUYXBZT3V0RW5jVmlhKSArICgtIHZpYTFXaWR0aCkpKSAodmlhWGVuZDoodyArIGNvbnRhY3RXaWR0aCArICgtIHRpcFRhcFlPdXRFbmNWaWEpKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KCh0YkxheWVyMlhvcmlnaW46dykgKHRiTGF5ZXIyWGVuZDoodyArIGNvbnRhY3RXaWR0aCArICgtIHRpcFRhcFlPdXRFbmNWaWEpICsgbGF5ZXIyWUVuY1RpcFZpYSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikpICh0IHQpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRhcExheWVyQmJveCIgImxpc3QiIGxpc3QoKHRhcExlZnRFZGdlOnRhcEJvdHRvbUVkZ2UpICh0YXBSaWdodEVkZ2U6dGFwVG9wRWRnZSkpKSB3aGVuKHdlbGxMYXllciAod2VsbEJib3ggPSBsaXN0KGxpc3QobWluKChjYWFyKCh0Y0NlbGxWaWV3fj5kaWZmTGF5ZXJCYm94KSkgLSB3ZWxsTGF5ZXJEaWZmRW5jKSAoY2FhcigodGNDZWxsVmlld34+dGFwTGF5ZXJCYm94KSkgLSB3ZWxsTGF5ZXJUYXBFbmMpKSBtaW4oKGNhZGFyKCh0Y0NlbGxWaWV3fj5kaWZmTGF5ZXJCYm94KSkgLSB3ZWxsTGF5ZXJEaWZmRW5jKSAoY2FkYXIoKHRjQ2VsbFZpZXd+PnRhcExheWVyQmJveCkpIC0gd2VsbExheWVyVGFwRW5jKSkpIGxpc3QobWF4KChjYWFkcigodGNDZWxsVmlld34+ZGlmZkxheWVyQmJveCkpICsgd2VsbExheWVyRGlmZkVuYykgKGNhYWRyKCh0Y0NlbGxWaWV3fj50YXBMYXllckJib3gpKSArIHdlbGxMYXllclRhcEVuYykpIG1heCgoY2FkYWRyKCh0Y0NlbGxWaWV3fj5kaWZmTGF5ZXJCYm94KSkgKyB3ZWxsTGF5ZXJEaWZmRW5jKSAoY2FkYWRyKCh0Y0NlbGxWaWV3fj50YXBMYXllckJib3gpKSArIHdlbGxMYXllclRhcEVuYykpKSkpIHdoZW4oKGltcGxhbnQgJiYgaW5XZWxsKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgd2VsbEJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAid2VsbExheWVyQmJveCIgImxpc3QiIHdlbGxCYm94KSkgd2hlbihsYXllcjMgaWYoY2VudGVyVmlhMiB0aGVuIGlmKGVtdWxhdGVTbG90VmlhIHRoZW4gKHZpYTJSb3cgPSAoZmxvb3IgKHcgLyB2aWEyUGl0Y2gpKSkgaWYoKHZpYTJSb3cgPT0gMCkgKHZpYTJSb3cgPSAxKSkgKHZpYTJZb2Zmc2V0ID0gKCh3IC0gKCh2aWEyUm93ICogdmlhMlBpdGNoKSAtIHZpYTJTcGFjZSkpIC8gMikpICh2aWEyWW9yaWdpbiA9IChmaXgoKCh2aWEyWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpIGVsc2UgKGxheWVyMll3aWR0aCA9IChsYXllcjJZZW5kIC0gbGF5ZXIyWW9yaWdpbikpICh2aWEyRHJhd1NwYWNlWSA9IChsYXllcjJZd2lkdGggLSAobGF5ZXIyWUVuY1ZpYTIgKiAyKSkpICh2aWEyUm93ID0gKGZsb29yICgodmlhMkRyYXdTcGFjZVkgKyB2aWEyU3BhY2UpIC8gdmlhMlBpdGNoKSkpIGlmKCh2aWEyUm93ID09IDApICh2aWEyUm93ID0gMSkpICh2aWEyWW9mZnNldCA9ICgodmlhMkRyYXdTcGFjZVkgLSAoKHZpYTJSb3cgKiB2aWEyUGl0Y2gpIC0gdmlhMlNwYWNlKSkgLyAyKSkgKHZpYTJZb3JpZ2luID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJZRW5jVmlhMiArIChmaXgoKCh2aWEyWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpKSkgKHlWYWx1ZSA9IHZpYTJZb3JpZ2luKSBmb3IociAxIHZpYTJSb3cgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHZpYTJYb3JpZ2luOnlWYWx1ZSkgKCh2aWEyWG9yaWdpbiArIHZpYTJXaWR0aCk6KHlWYWx1ZSArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoeVZhbHVlID0gKHlWYWx1ZSArIHZpYTJQaXRjaCkpKSBlbHNlICh2aWEyWG9yaWdpbiA9IChsYXllcjJYb3JpZ2luICsgbGF5ZXIyWEVuY1ZpYTIpKSAodmlhMlhlbmQgPSAodmlhMlhvcmlnaW4gKyB2aWEyV2lkdGgpKSAodmlhMllvcmlnaW4gPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMllFbmNWaWEyKSkgKGxhc3RWaWEyWW9yaWdpbiA9IChsYXllcjJZZW5kIC0gbGF5ZXIyWUVuY1ZpYTIgLSB2aWEyV2lkdGgpKSAodmlhMllvZmZzZXQgPSAodmlhMldpZHRoICsgdmlhMlNwYWNlKSkgKHlWYWx1ZSA9IHZpYTJZb3JpZ2luKSB3aGlsZSgoKGxhc3RWaWEyWW9yaWdpbiAtIHlWYWx1ZSkgPiAtMWUtMDYpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KCh2aWEyWG9yaWdpbjp5VmFsdWUpICh2aWEyWGVuZDooeVZhbHVlICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh5VmFsdWUgPSAoeVZhbHVlICsgdmlhMllvZmZzZXQpKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYkJveFZpYTIiICJsaXN0IiBsaXN0KCh2aWEyWG9yaWdpbjp2aWEyWW9yaWdpbikgKHZpYTJYZW5kOnlWYWx1ZSkpKSAobGF5ZXIzWG9yaWdpbiA9ICh2aWEyWG9yaWdpbiAtIGxheWVyM1hFbmNWaWEyKSkgKGxheWVyM1hlbmQgPSAodmlhMlhlbmQgKyBsYXllcjNYRW5jVmlhMikpICgoKGxheWVyM1hlbmQgLSBsYXllcjNYb3JpZ2luKSA8IGxheWVyM1dpZHRoKSAmJiAobGF5ZXIzWGVuZCA9IChsYXllcjNYb3JpZ2luICsgbGF5ZXIzV2lkdGgpKSkgKGxheWVyM1lvcmlnaW4gPSAodmlhMllvcmlnaW4gLSBsYXllcjNZRW5jVmlhMikpIChsYXllcjNZZW5kID0gKCh5VmFsdWUgLSB2aWEyU3BhY2UpICsgbGF5ZXIzWUVuY1ZpYTIpKSAoKChsYXllcjNZZW5kIC0gbGF5ZXIzWW9yaWdpbikgPCBsYXllcjNXaWR0aCkgJiYgKGxheWVyM1llbmQgPSAobGF5ZXIzWW9yaWdpbiArIGxheWVyM1dpZHRoKSkpIGNvbmQoKChsYXllcjNZZW5kIDwgKHcgLyAyLjApKSAobGF5ZXIzWWVuZCA9ICh3IC8gMi4wKSkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdCgobGF5ZXIzWG9yaWdpbjpsYXllcjNZb3JpZ2luKSAobGF5ZXIzWGVuZDpsYXllcjNZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYkJveExheWVyMyIgIklMTGlzdCIgKGRiSWR+PmJCb3gpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyUGluQmJveCIgImxpc3QiIChkYklkfj5iQm94KSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllciIgImxpc3QiIGxheWVyMykpKQAoZGlmZiB0YXAgbGF5ZXIyIGxheWVyMyB2aWExTGF5ZXIgdmlhMkxheWVyIHNpZGVSZWNvZ25pdGlvbiBkaWZmV2lkdGggdGFwV2lkdGggdGFwV2lkdGhCdXR0aW5nRGlmZiBtaW5TcmMgbGF5ZXIyV2lkdGggbGF5ZXIzV2lkdGggdmlhMVdpZHRoIHZpYTJXaWR0aCB2aWExU3BhY2UgdmlhMlNwYWNlIGRpZmZZRW5jVmlhIGRpZmZMRW5jVmlhIGRpZmZSRW5jVmlhIHRpcFRhcFlJbkVuY1ZpYSB0aXBUYXBZT3V0RW5jVmlhIHRpcFRhcFhFbmNWaWEgc2lkZVRhcFhJbkVuY1ZpYSBzaWRlVGFwWE91dEVuY1ZpYSBzaWRlVGFwWUVuY1ZpYSBsYXllcjJYRW5jVmlhIGxheWVyMllFbmNWaWEgbGF5ZXIyWEVuY1RpcFZpYSBsYXllcjJZRW5jVGlwVmlhIGxheWVyMlhFbmNWaWEyIGxheWVyMllFbmNWaWEyIGxheWVyM1hFbmNWaWEyIGxheWVyM1lFbmNWaWEyIHRhcFNwYWNlUG9seSBoYWxmRGlmZnVzaW9uR3JpZCBtaW5QaW5XaWR0aCBkaWZmSW1wbGFudCBkaWZmSW1wRW5jIGRpZmZJbXBFbmNCdXR0IGRpZmZDb3JlSW1wbGFudCBkaWZmQ29yZUltcEVuYyBkaWZmQ29yZUltcEVuY0J1dHQgdGFwSW1wbGFudCB0YXBJbXBFbmMgdGFwSW1wRW5jQnV0dCBkaWZmSW1wRW5jTGlzdCB0YXBJbXBFbmNMaXN0IHdlbGxMYXllciB3ZWxsTGF5ZXJEaWZmRW5jIHdlbGxMYXllclRhcEVuYyBtaW5TcGFjZURpZmZUYXBWaWExIGVtdWxhdGVTbG90VmlhIGNlbnRlclZpYTEgY2VudGVyVmlhMiBjZW50ZXJMYXllcjIgc25hcEdyaWQgdyB0cnlUb1N0YWdnZXIgdG9wRW5kVGFwIGJvdHRvbUVuZFRhcCBub0RpZmZDb250YWN0IGluV2VsbCBpbXBsYW50IGRpZmZJbXBDaG9pY2UgdGFwSW1wQ2hvaWNlIHZpYTFQaXRjaCB2aWEyUGl0Y2ggZGlmZkxlbmd0aCBkaWZmQnV0dEVuYyBuZXQgYWxsRGlyIGRpZmZTcHJlYWQgZW5jTGlzdCBkaWZmSW1wRW5jWEwgZGlmZkltcEVuY1hSIGRpZmZJbXBFbmNZIHRhcEltcEVuY1hMIHRhcEltcEVuY1hSIHRhcEltcEVuY1kgY29udGFjdFdpZHRoIGRpZmZDb250YWN0WXdpdGhUaXBUYXAgdGFwQ29udGFjdFl3aXRoVGlwVGFwIGRpZmZDb250YWN0WXdpdGhvdXRUaXBUYXAgdGFwQ29udGFjdFl3aXRob3V0VGlwVGFwIGRpZmZDb250YWN0WW9yaWdpbiB0YXBDb250YWN0WW9yaWdpbiBsYXN0RGlmZkNvbnRhY3RZb3JpZ2luIGxhc3RUYXBDb250YWN0WW9yaWdpbiBkaWZmQ29udGFjdFllbmRFbmMgdGFwQ29udGFjdFllbmRFbmMgbWluVyBzbWFsbGVyTWluVyBwb3RlbnRpYWxEaWZmU3ByZWFkIHN0YWdnZXIgY29udGFjdFlvZmZzZXQgdGFwQ29udGFjdFhvcmlnaW4gdGFwT3JpZ2luIGRpZmZDb250YWN0WG9yaWdpbiBkaWZmQ29udGFjdFhlbmQgdGFwQ29udGFjdFhlbmQgdGFwUmlnaHRFZGdlIGRiSWQgcGluSWQgdGFwTGVmdEVkZ2UgdGFwQm90dG9tRWRnZSB0YXBUb3BFZGdlIHZpYURyYXdTcGFjZVkgdmlhMVJvdyB2aWExWW9mZnNldCB2aWExWW9yaWdpbiB5VmFsdWUgciBkaWZmQ29udGFjdFllbmQgdGFwQ29udGFjdFllbmQgbGF5ZXIyWG9yaWdpbiBsYXllcjJYZW5kIGxheWVyMk1pbldpZHRoIGxheWVyMllvcmlnaW4gbnVtVmlhMiBsYXN0VmlhMlllbmQgbGF5ZXIyWWVuZCB2aWEyWG9mZnNldCB2aWEyWG9yaWdpbiB2aWEyWGVuZCB2aWFYb3JpZ2luIHZpYVhlbmQgdGJMYXllcjJYb3JpZ2luIHRiTGF5ZXIyWGVuZCB3ZWxsQmJveCB2aWEyUm93IHZpYTJZb2Zmc2V0IHZpYTJZb3JpZ2luIGxheWVyMll3aWR0aCB2aWEyRHJhd1NwYWNlWSBsYXN0VmlhMllvcmlnaW4gbGF5ZXIzWG9yaWdpbiBsYXllcjNYZW5kIGxheWVyM1lvcmlnaW4gbGF5ZXIzWWVuZCkAKCh3IDAuMCkgKHRyeVRvU3RhZ2dlciAiVFJVRSIpICh0b3BFbmRUYXAgIlRSVUUiKSAoYm90dG9tRW5kVGFwICJUUlVFIikgKG5vRGlmZkNvbnRhY3QgIkZBTFNFIikgKGluV2VsbCAiRkFMU0UiKSAoaW1wbGFudCAiRkFMU0UiKSAoZGlmZkltcENob2ljZSAwKSAodGFwSW1wQ2hvaWNlIDApKQAoKGRpZmYgImhpbGl0ZSIpICh0YXAgInByQm91bmRhcnkiKSAobGF5ZXIyICJoaWxpdGUiKSAobGF5ZXIzIG5pbCkgKHZpYTFMYXllciAiaGlsaXRlIikgKHZpYTJMYXllciBuaWwpIChzaWRlUmVjb2duaXRpb24gbmlsKSAoZGlmZldpZHRoIDAuMCkgKHRhcFdpZHRoIDAuMCkgKHRhcFdpZHRoQnV0dGluZ0RpZmYgMC4wKSAobWluU3JjIDAuMCkgKGxheWVyMldpZHRoIDAuMCkgKGxheWVyM1dpZHRoIDAuMCkgKHZpYTFXaWR0aCAwLjApICh2aWEyV2lkdGggMC4wKSAodmlhMVNwYWNlIDAuMCkgKHZpYTJTcGFjZSAwLjApIChkaWZmWUVuY1ZpYSAwLjApIChkaWZmTEVuY1ZpYSAwLjApIChkaWZmUkVuY1ZpYSAwLjApICh0aXBUYXBZSW5FbmNWaWEgMC4wKSAodGlwVGFwWU91dEVuY1ZpYSAwLjApICh0aXBUYXBYRW5jVmlhIDAuMCkgKHNpZGVUYXBYSW5FbmNWaWEgMC4wKSAoc2lkZVRhcFhPdXRFbmNWaWEgMC4wKSAoc2lkZVRhcFlFbmNWaWEgMC4wKSAobGF5ZXIyWEVuY1ZpYSAwLjApIChsYXllcjJZRW5jVmlhIDAuMCkgKGxheWVyMlhFbmNUaXBWaWEgMC4wKSAobGF5ZXIyWUVuY1RpcFZpYSAwLjApIChsYXllcjJYRW5jVmlhMiAwLjApIChsYXllcjJZRW5jVmlhMiAwLjApIChsYXllcjNYRW5jVmlhMiAwLjApIChsYXllcjNZRW5jVmlhMiAwLjApICh0YXBTcGFjZVBvbHkgMC4wKSAoaGFsZkRpZmZ1c2lvbkdyaWQgMC4wKSAobWluUGluV2lkdGggMC4wNSkgKGRpZmZJbXBsYW50IG5pbCkgKGRpZmZJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKGRpZmZJbXBFbmNCdXR0IGxpc3QoMC4wIDAuMCkpIChkaWZmQ29yZUltcGxhbnQgbmlsKSAoZGlmZkNvcmVJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKGRpZmZDb3JlSW1wRW5jQnV0dCBsaXN0KDAuMCAwLjApKSAodGFwSW1wbGFudCBuaWwpICh0YXBJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKHRhcEltcEVuY0J1dHQgbGlzdCgwLjAgMC4wKSkgKGRpZmZJbXBFbmNMaXN0IG5pbCkgKHRhcEltcEVuY0xpc3QgbmlsKSAod2VsbExheWVyIG5pbCkgKHdlbGxMYXllckRpZmZFbmMgMC4wKSAod2VsbExheWVyVGFwRW5jIDAuMCkgKG1pblNwYWNlRGlmZlRhcFZpYTEgMC4wKSAoZW11bGF0ZVNsb3RWaWEgbmlsKSAoY2VudGVyVmlhMSBuaWwpIChjZW50ZXJWaWEyIG5pbCkgKGNlbnRlckxheWVyMiBuaWwpIChzbmFwR3JpZCAoVEVDSGdldFByb3Agc25hcEdyaWQpKSkAKGlmKCgoaW1wbGFudCA9PSB0KSB8fCAoaW1wbGFudCA9PSAiVFJVRSIpKSB0aGVuIChpbXBsYW50ID0gdCkgZWxzZSAoaW1wbGFudCA9IG5pbCkpIGlmKCgoaW5XZWxsID09IHQpIHx8IChpbldlbGwgPT0gIlRSVUUiKSkgdGhlbiAoaW5XZWxsID0gdCkgZWxzZSAoaW5XZWxsID0gbmlsKSkgaWYoKChjZW50ZXJUYXAgPT0gdCkgfHwgKGNlbnRlclRhcCA9PSAiVFJVRSIpKSB0aGVuIChjZW50ZXJUYXAgPSB0KSBlbHNlIChjZW50ZXJUYXAgPSBuaWwpKSBpZigoKHRvcEVuZFRhcCA9PSB0KSB8fCAodG9wRW5kVGFwID09ICJUUlVFIikpIHRoZW4gKHRvcEVuZFRhcCA9IHQpIGVsc2UgKHRvcEVuZFRhcCA9IG5pbCkpIGlmKCgoYm90dG9tRW5kVGFwID09IHQpIHx8IChib3R0b21FbmRUYXAgPT0gIlRSVUUiKSkgdGhlbiAoYm90dG9tRW5kVGFwID0gdCkgZWxzZSAoYm90dG9tRW5kVGFwID0gbmlsKSkgaWYoKChhbGxvd0NlbnRlcmVkTUNPTnMgPT0gdCkgfHwgKGFsbG93Q2VudGVyZWRNQ09OcyA9PSAiVFJVRSIpKSB0aGVuIChhbGxvd0NlbnRlcmVkTUNPTnMgPSB0KSBlbHNlIChhbGxvd0NlbnRlcmVkTUNPTnMgPSBuaWwpKSAobm9EaWZmQ29udGFjdCA9IChub0RpZmZDb250YWN0ID09ICJUUlVFIikpICh2aWExUGl0Y2ggPSAodmlhMVdpZHRoICsgdmlhMVNwYWNlKSkgKHZpYTJQaXRjaCA9ICh2aWEyV2lkdGggKyB2aWEyU3BhY2UpKSB3aGVuKGltcGxhbnQgd2hlbihkaWZmSW1wbGFudCBpZihpbldlbGwgdGhlbiAoZGlmZkltcGxhbnQgPSBjYWRyKGRpZmZJbXBsYW50KSkgKGRpZmZJbXBFbmMgPSBjYWRyKGRpZmZJbXBFbmMpKSAoZGlmZkltcEVuY0J1dHQgPSBjYWRyKGRpZmZJbXBFbmNCdXR0KSkgZWxzZSAoZGlmZkltcGxhbnQgPSBjYXIoZGlmZkltcGxhbnQpKSAoZGlmZkltcEVuYyA9IGNhcihkaWZmSW1wRW5jKSkgKGRpZmZJbXBFbmNCdXR0ID0gY2FyKGRpZmZJbXBFbmNCdXR0KSkpKSB3aGVuKHRhcEltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKHRhcEltcGxhbnQgPSBjYWRyKHRhcEltcGxhbnQpKSAodGFwSW1wRW5jID0gY2Fkcih0YXBJbXBFbmMpKSAodGFwSW1wRW5jQnV0dCA9IGNhZHIodGFwSW1wRW5jQnV0dCkpIGVsc2UgKHRhcEltcGxhbnQgPSBjYXIodGFwSW1wbGFudCkpICh0YXBJbXBFbmMgPSBjYXIodGFwSW1wRW5jKSkgKHRhcEltcEVuY0J1dHQgPSBjYXIodGFwSW1wRW5jQnV0dCkpKSkpIHdoZW4oaW1wbGFudCB3aGVuKGRpZmZJbXBFbmNMaXN0IGlmKGluV2VsbCB0aGVuIChlbmNMaXN0ID0gY2FkcihudGgoZGlmZkltcENob2ljZSBkaWZmSW1wRW5jTGlzdCkpKSBlbHNlIChlbmNMaXN0ID0gY2FyKG50aChkaWZmSW1wQ2hvaWNlIGRpZmZJbXBFbmNMaXN0KSkpKSAoZGlmZkltcEVuY1hMID0gbnRoKDAgZW5jTGlzdCkpIChkaWZmSW1wRW5jWFIgPSBudGgoMSBlbmNMaXN0KSkgKGRpZmZJbXBFbmNZID0gbnRoKDIgZW5jTGlzdCkpKSB3aGVuKHRhcEltcEVuY0xpc3QgaWYoaW5XZWxsIHRoZW4gKGVuY0xpc3QgPSBjYWRyKG50aCh0YXBJbXBDaG9pY2UgdGFwSW1wRW5jTGlzdCkpKSBlbHNlIChlbmNMaXN0ID0gY2FyKG50aCh0YXBJbXBDaG9pY2UgdGFwSW1wRW5jTGlzdCkpKSkgKHRhcEltcEVuY1hMID0gbnRoKDAgZW5jTGlzdCkpICh0YXBJbXBFbmNYUiA9IG50aCgxIGVuY0xpc3QpKSAodGFwSW1wRW5jWSA9IG50aCgyIGVuY0xpc3QpKSkgKGRpZmZJbXBFbmNZID0gKChib3VuZHAoJ2RpZmZJbXBFbmNZKSAmJiBkaWZmSW1wRW5jWSkgfHwgZGlmZkltcEVuYykpIChkaWZmSW1wRW5jWEwgPSAoKGJvdW5kcCgnZGlmZkltcEVuY1hMKSAmJiBkaWZmSW1wRW5jWEwpIHx8IGRpZmZJbXBFbmMpKSAoZGlmZkltcEVuY1hSID0gKChib3VuZHAoJ2RpZmZJbXBFbmNYUikgJiYgZGlmZkltcEVuY1hSKSB8fCBkaWZmSW1wRW5jKSkgKHRhcEltcEVuY1kgPSAoKGJvdW5kcCgndGFwSW1wRW5jWSkgJiYgdGFwSW1wRW5jWSkgfHwgdGFwSW1wRW5jKSkgKHRhcEltcEVuY1hMID0gKChib3VuZHAoJ3RhcEltcEVuY1hMKSAmJiB0YXBJbXBFbmNYTCkgfHwgdGFwSW1wRW5jKSkgKHRhcEltcEVuY1hSID0gKChib3VuZHAoJ3RhcEltcEVuY1hSKSAmJiB0YXBJbXBFbmNYUikgfHwgdGFwSW1wRW5jKSkpIGlmKChjZW50ZXJUYXAgJiYgKHRvcEVuZFRhcCB8fCBib3R0b21FbmRUYXApKSB0aGVuIGVycm9yKCJlbkRzdHJhcDNQb2xJbXBDbGFzczogY2Fubm90IHNlbGVjdCBjZW50ZXJUYXAgYXQgdGhlIHNhbWUgdGltZSBhcyB0b3BFbmRUYXAgb3IgYm90dG9tRW5kVGFwXG4iKSkgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIChkYkNyZWF0ZVRlcm0gbmV0ICJwcGQiICJpbnB1dCIpIChhbGxEaXIgPSBsaXN0KCJyaWdodCIgImxlZnQiICJ0b3AiICJib3R0b20iKSkgKGhhc1RhcEluQ2VudGVyID0gKCgoKHcgKyAoMiAqIHRpcFRhcFlJbkVuY1ZpYSkpIC0gKDIgKiBtYXhEaWZmVG9UYXBDb250YWN0U3BhY2UpKSA+IC0xZS0wNikgJiYgIWNlbnRlclRhcCkpIGNvbmQoKGhhc1RhcEluQ2VudGVyIChkb3VibGVNYXhEaXN0YW5jZVRvVGFwID0gKDIgKiBtYXhEaWZmVG9UYXBDb250YWN0U3BhY2UpKSB3aGVuKG9kZHAoZml4KCgxZS0wNSArICh0YXBXaWR0aEJldHdlZW5EaWZmIC8gKDIuMCAqIGhhbGZEaWZmdXNpb25HcmlkKSkpKSkgKHRhcFdpZHRoQmV0d2VlbkRpZmYgPSAodGFwV2lkdGhCZXR3ZWVuRGlmZiArICgyLjAgKiBoYWxmRGlmZnVzaW9uR3JpZCkpKSkgKG1heENvbnNlY0RpZmZDb250YWN0cyA9IGZpeCgoKG1heERpZmZUb1RhcENvbnRhY3RTcGFjZSArICgtMi4wICogbWF4KHZpYTFTcGFjZSAoZGlmZllFbmNWaWEgKyB0aXBUYXBZSW5FbmNWaWEpKSkgKyB2aWExU3BhY2UpIC8gKHZpYTFXaWR0aCArIHZpYTFTcGFjZSkpKSkgKHZpYTFYb3JpZ2luID0gbWF4KGRpZmZYRW5jVmlhICgoKHRhcFdpZHRoQmV0d2VlbkRpZmYgLSB2aWExV2lkdGgpIC8gMi4wKSArIG1heCh0YXBTcGFjZVBvbHkgdGFwU3BhY2VHYXRlKSkgKGNlbnRlclRhcFhFbmNWaWEgKyBtYXgodGFwU3BhY2VQb2x5IHRhcFNwYWNlR2F0ZSkpKSkgKHZpYTFYZW5kID0gKHZpYTFYb3JpZ2luICsgdmlhMVdpZHRoKSkgKHRhcFhvcmlnaW4gPSBtaW4oKHZpYTFYb3JpZ2luIC0gY2VudGVyVGFwWEVuY1ZpYSkgbWF4KHRhcFNwYWNlR2F0ZSB0YXBTcGFjZVBvbHkpKSkgKHRhcFhlbmQgPSBtYXgoKHRhcFhvcmlnaW4gKyB0YXBXaWR0aEJldHdlZW5EaWZmKSAodmlhMVhlbmQgKyBjZW50ZXJUYXBYRW5jVmlhKSkpKSAoY2VudGVyVGFwIHdoZW4ob2RkcChmaXgoKDFlLTA1ICsgKHRhcFdpZHRoQmV0d2VlbkRpZmYgLyAoMi4wICogaGFsZkRpZmZ1c2lvbkdyaWQpKSkpKSAodGFwV2lkdGhCZXR3ZWVuRGlmZiA9ICh0YXBXaWR0aEJldHdlZW5EaWZmICsgKDIuMCAqIGhhbGZEaWZmdXNpb25HcmlkKSkpKSAodmlhMVhvcmlnaW4gPSBtYXgoZGlmZlhFbmNWaWEgKCgodGFwV2lkdGhCZXR3ZWVuRGlmZiAtIHZpYTFXaWR0aCkgLyAyLjApICsgdGFwU3BhY2VHYXRlKSAoY2VudGVyVGFwWEVuY1ZpYSArIHRhcFNwYWNlR2F0ZSkpKSAodmlhMVhlbmQgPSAodmlhMVhvcmlnaW4gKyB2aWExV2lkdGgpKSAodGFwWG9yaWdpbiA9IG1pbigodmlhMVhvcmlnaW4gLSBjZW50ZXJUYXBYRW5jVmlhKSB0YXBTcGFjZUdhdGUpKSAodGFwWGVuZCA9IG1heCgodGFwWG9yaWdpbiArIHRhcFdpZHRoQmV0d2VlbkRpZmYpICh2aWExWGVuZCArIGNlbnRlclRhcFhFbmNWaWEpKSkpICh0IChkb3VibGVNYXhEaXN0YW5jZVRvVGFwID0gOTk5OTkuOSkgKHZpYTFYb3JpZ2luID0gbWF4KGRpZmZYRW5jVmlhICh0aXBUYXBYRW5jVmlhICsgdGFwU3BhY2VQb2x5KSkpICh2aWExWGVuZCA9ICh2aWExWG9yaWdpbiArIHZpYTFXaWR0aCkpICh0YXBYb3JpZ2luID0gKHZpYTFYb3JpZ2luIC0gdGlwVGFwWEVuY1ZpYSkpICh0YXBYZW5kID0gKHZpYTFYZW5kICsgdGlwVGFwWEVuY1ZpYSkpKSkgKHRiVGFwWG9yaWdpbiA9IG1pbigodmlhMVhvcmlnaW4gLSB0aXBUYXBYRW5jVmlhKSAoKHZpYTFYb3JpZ2luICsgKHZpYTFXaWR0aCAvIDIuMCkpIC0gKHRhcFdpZHRoIC8gMi4wKSkpKSAodGJUYXBYZW5kID0gKHZpYTFYZW5kICsgKHZpYTFYb3JpZ2luIC0gdGJUYXBYb3JpZ2luKSkpIChkaWZmWG9yaWdpbiA9IDAuMCkgKGRpZmZYZW5kID0gKHZpYTFYZW5kICsgdmlhMVhvcmlnaW4pKSAoZGlmZkNvbllvZmZzZXRBYnV0dGluZ1RhcCA9IG1heChkaWZmWUVuY1ZpYSAodmlhMVNwYWNlIC0gbWF4KHRpcFRhcFlJbkVuY1ZpYSAodGFwV2lkdGhCZXR3ZWVuRGlmZiAtIHZpYTFXaWR0aCAtIGNlbnRlclRhcFlFbmNWaWEpKSkpKSBjb25kKChib3R0b21FbmRUYXAgKGZpcnN0RGlmZkNvbllvZmZzZXQgPSBtYXgoZGlmZllFbmNWaWEgKHZpYTFTcGFjZSAtIHRpcFRhcFlJbkVuY1ZpYSkpKSkgKHQgKGZpcnN0RGlmZkNvbllvZmZzZXQgPSBkaWZmWUVuY1ZpYSkpKSBjb25kKCh0b3BFbmRUYXAgKGxhc3REaWZmQ29uWW9mZnNldCA9IG1heChkaWZmWUVuY1ZpYSAodmlhMVNwYWNlIC0gdGlwVGFwWUluRW5jVmlhKSkpKSAodCAobGFzdERpZmZDb25Zb2Zmc2V0ID0gZGlmZllFbmNWaWEpKSkgKHRhcFlvZmZzZXQgPSBtYXgodGFwV2lkdGhCdXR0aW5nRGlmZiAodmlhMVdpZHRoICsgdGlwVGFwWUluRW5jVmlhICsgdGlwVGFwWU91dEVuY1ZpYSkpKSAobWluVyA9IG1heChkaWZmV2lkdGggKGZpcnN0RGlmZkNvbllvZmZzZXQgKyB2aWExV2lkdGggKyBsYXN0RGlmZkNvbllvZmZzZXQpKSkgd2hlbigoKHcgLSBtaW5XKSA8IC0xZS0wNikgKHNtYWxsZXJNaW5XID0gbWF4KGRpZmZXaWR0aCB0YXBXaWR0aCAodmlhMVdpZHRoICsgKDIuMCAqIGRpZmZZRW5jVmlhKSkpKSB3aGVuKCgoc21hbGxlck1pblcgLSB3KSA+IDFlLTA2KSBlcnJvcigiQ2Fubm90IGRyYXcgY29udGFjdCAtIHcgdG9vIHNtYWxsIikpIGNvbmQoKChib3R0b21FbmRUYXAgJiYgdG9wRW5kVGFwKSAoZGlmZkRpdmlzb3IgPSAyLjApKSAodCAoZGlmZkRpdmlzb3IgPSAxLjApKSkgKGRpZmZTcHJlYWQgPSAoKG1pblcgLSB3KSAvIGRpZmZEaXZpc29yKSkgKG9kZHAocm91bmQoKGRpZmZTcHJlYWQgLyBoYWxmRGlmZnVzaW9uR3JpZCkpKSAmJiAoZGlmZlNwcmVhZCA9IChkaWZmU3ByZWFkICsgaGFsZkRpZmZ1c2lvbkdyaWQpKSkgY29uZCgoKGJvdHRvbUVuZFRhcCAmJiB0b3BFbmRUYXApIChmaXJzdERpZmZDb25Zb2Zmc2V0ID0gKCgtIGRpZmZTcHJlYWQpICsgKC0gdGlwVGFwWUluRW5jVmlhKSArIHZpYTFTcGFjZSkpIChsYXN0RGlmZkNvbllvZmZzZXQgPSBkaWZmWUVuY1ZpYSkgKHRhcFlvZmZzZXQgPSBtYXgodGFwV2lkdGhCdXR0aW5nRGlmZiAoZGlmZlNwcmVhZCArIHRpcFRhcFlJbkVuY1ZpYSArIHRpcFRhcFlPdXRFbmNWaWEgKyB2aWExV2lkdGgpKSkpIChib3R0b21FbmRUYXAgKGZpcnN0RGlmZkNvbllvZmZzZXQgPSAoKC0gZGlmZlNwcmVhZCkgKyAoLSB0aXBUYXBZSW5FbmNWaWEpICsgdmlhMVNwYWNlKSkgKHRhcFlvZmZzZXQgPSBtYXgodGFwV2lkdGhCdXR0aW5nRGlmZiAodGlwVGFwWU91dEVuY1ZpYSArIHZpYTFXaWR0aCArIHZpYTFTcGFjZSArICgtIGZpcnN0RGlmZkNvbllvZmZzZXQpKSkpKSAodG9wRW5kVGFwIChmaXJzdERpZmZDb25Zb2Zmc2V0ID0gZGlmZllFbmNWaWEpIChsYXN0RGlmZkNvbllvZmZzZXQgPSBkaWZmWUVuY1ZpYSkgKHRhcFlvZmZzZXQgPSBtYXgodGFwV2lkdGhCdXR0aW5nRGlmZiAodGlwVGFwWU91dEVuY1ZpYSArIHRpcFRhcFlJbkVuY1ZpYSArIHZpYTFXaWR0aCArIHZpYTFTcGFjZSArIGZpcnN0RGlmZkNvbllvZmZzZXQgKyB2aWExV2lkdGggKyAoLSB3KSkpKSkgKGNlbnRlclRhcCAoZmlyc3REaWZmQ29uWW9mZnNldCA9IGRpZmZZRW5jVmlhKSAodGFwWW9mZnNldCA9IDAuMCkpKSkgKHlWYWx1ZSA9IDAuMCkgKHlSZW1haW5pbmcgPSB3KSAoeVZpYTFPZmZzZXQgPSAodmlhMVNwYWNlICsgdmlhMVdpZHRoKSkgKGNlbnRlckRpZmZDb25Zb2Zmc2V0ID0gKHZpYTFTcGFjZSAtIGNlbnRlclRhcFlFbmNWaWEpKSAoY2VudGVyVGFwcyA9IG5pbCkgd2hpbGUoKCFjZW50ZXJUYXAgJiYgKCgoKDIgKiB0aXBUYXBZSW5FbmNWaWEpICsgeVJlbWFpbmluZykgLSBkb3VibGVNYXhEaXN0YW5jZVRvVGFwKSA+IC0xZS0wNikpIGNvbmQoKCFjZW50ZXJUYXBzIChkaWZmRGVsdGEgPSAoZmlyc3REaWZmQ29uWW9mZnNldCArIChtYXhDb25zZWNEaWZmQ29udGFjdHMgKiB2aWExV2lkdGgpICsgKChtYXhDb25zZWNEaWZmQ29udGFjdHMgLSAxKSAqIHZpYTFTcGFjZSkgKyBjZW50ZXJEaWZmQ29uWW9mZnNldCkpKSAodCAoZGlmZkRlbHRhID0gKGNlbnRlckRpZmZDb25Zb2Zmc2V0ICsgZGlmZkNvbllvZmZzZXRBYnV0dGluZ1RhcCArIChtYXhDb25zZWNEaWZmQ29udGFjdHMgKiB2aWExV2lkdGgpICsgKChtYXhDb25zZWNEaWZmQ29udGFjdHMgLSAxKSAqIHZpYTFTcGFjZSkpKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmYgbGlzdCgoZGlmZlhvcmlnaW46eVZhbHVlKSAoZGlmZlhlbmQ6KHlWYWx1ZSArIGRpZmZEZWx0YSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSB3aGVuKGltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KChkaWZmWG9yaWdpbiAtIGRpZmZJbXBFbmNYTCkgeVZhbHVlKSBsaXN0KChkaWZmWGVuZCArIGRpZmZJbXBFbmNYUikgKHlWYWx1ZSArIGRpZmZEZWx0YSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgY29uZCgoY2VudGVyVGFwcyAoeVZhbHVlID0gKHlWYWx1ZSArIGRpZmZDb25Zb2Zmc2V0QWJ1dHRpbmdUYXApKSkgKHQgKHlWYWx1ZSA9ICh5VmFsdWUgKyBmaXJzdERpZmZDb25Zb2Zmc2V0KSkpKSBmb3IoaSAxIG1heENvbnNlY0RpZmZDb250YWN0cyAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodmlhMVhvcmlnaW46eVZhbHVlKSAodmlhMVhlbmQ6KHlWYWx1ZSArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoeVZhbHVlID0gKHlWYWx1ZSArIHlWaWExT2Zmc2V0KSkpICh5VmFsdWUgPSAoeVZhbHVlICsgY2VudGVyRGlmZkNvbllvZmZzZXQgKyAoLSB2aWExU3BhY2UpKSkgKHRhcFlXaWR0aEJldHdlZW5EaWZmID0gbWF4KHRhcFdpZHRoQmV0d2VlbkRpZmYgKCgyLjAgKiBjZW50ZXJUYXBZRW5jVmlhKSArIHZpYTFXaWR0aCkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXAgbGlzdCgodGFwWG9yaWdpbjp5VmFsdWUpICh0YXBYZW5kOih5VmFsdWUgKyB0YXBZV2lkdGhCZXR3ZWVuRGlmZikpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSB3aGVuKGltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwSW1wbGFudCBsaXN0KCh0YXBYb3JpZ2luOnlWYWx1ZSkgKHRhcFhlbmQ6KHlWYWx1ZSArIHRhcFlXaWR0aEJldHdlZW5EaWZmKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSB3aGVuKGNlbnRlclJlY29nbml0aW9uIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGNlbnRlclJlY29nbml0aW9uIGxpc3QoKHRhcFhvcmlnaW46eVZhbHVlKSAodGFwWGVuZDooeVZhbHVlICsgdGFwWVdpZHRoQmV0d2VlbkRpZmYpKSkpKSkgdW5sZXNzKChjZW50ZXJUYXBzIHx8IGJvdHRvbUVuZFRhcCkgKHRhcEJvdHRvbUVkZ2UgPSB5VmFsdWUpKSB1bmxlc3ModG9wRW5kVGFwICh0YXBUb3BFZGdlID0geVZhbHVlKSkgKGNlbnRlclRhcHMgPSB0KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodmlhMVhvcmlnaW46KHlWYWx1ZSArIGNlbnRlclRhcFlFbmNWaWEpKSAodmlhMVhlbmQ6KHlWYWx1ZSArIGNlbnRlclRhcFlFbmNWaWEgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZiBsaXN0KChkaWZmWG9yaWdpbjp5VmFsdWUpICh0YXBYb3JpZ2luOih5VmFsdWUgKyB0YXBZV2lkdGhCZXR3ZWVuRGlmZikpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSB3aGVuKGltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KChkaWZmWG9yaWdpbiAtIGRpZmZJbXBFbmNYTCkgeVZhbHVlKSBsaXN0KCh0YXBYb3JpZ2luICsgZGlmZkltcEVuY0J1dHQpICh5VmFsdWUgKyB0YXBZV2lkdGhCZXR3ZWVuRGlmZikpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZiBsaXN0KCh0YXBYZW5kOnlWYWx1ZSkgKGRpZmZYZW5kOih5VmFsdWUgKyB0YXBZV2lkdGhCZXR3ZWVuRGlmZikpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSB3aGVuKGltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh0YXBYZW5kIC0gZGlmZkltcEVuY0J1dHQpIHlWYWx1ZSkgbGlzdCgoZGlmZlhlbmQgKyBkaWZmSW1wRW5jWFIpICh5VmFsdWUgKyB0YXBZV2lkdGhCZXR3ZWVuRGlmZikpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKHlWYWx1ZSA9ICh5VmFsdWUgKyB0YXBZV2lkdGhCZXR3ZWVuRGlmZikpICh5UmVtYWluaW5nID0gKHcgLSB5VmFsdWUpKSkgd2hlbihjZW50ZXJUYXAgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwIGxpc3QoKHRhcFhvcmlnaW46MC4wKSAodGFwWGVuZDp3KSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgd2hlbihjZW50ZXJSZWNvZ25pdGlvbiAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjZW50ZXJSZWNvZ25pdGlvbiBsaXN0KCh0YXBYb3JpZ2luOjAuMCkgKHRhcFhlbmQ6dykpKSkpIHdoZW4oaW1wbGFudCAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBJbXBsYW50IGxpc3QobGlzdCgodGFwWG9yaWdpbiAtIHRhcEltcEVuY0J1dHQpICgtIHRhcEltcEVuY1kpKSBsaXN0KCh0YXBYZW5kICsgdGFwSW1wRW5jQnV0dCkgKHcgKyB0YXBJbXBFbmNZKSkpKSkpIGlmKGNlbnRlclZpYTEgdGhlbiAodmlhRHJhd1NwYWNlWSA9ICh3IC0gKGNlbnRlclRhcFlFbmNWaWEgKiAyKSkpICh2aWExUm93ID0gKGZsb29yICgodmlhRHJhd1NwYWNlWSArIHZpYTFTcGFjZSkgLyB2aWExUGl0Y2gpKSkgaWYoKHZpYTFSb3cgPT0gMCkgKHZpYTFSb3cgPSAxKSkgKHZpYTFZb2Zmc2V0ID0gKCh2aWFEcmF3U3BhY2VZIC0gKCh2aWExUm93ICogdmlhMVBpdGNoKSAtIHZpYTFTcGFjZSkpIC8gMikpICh2aWExWW9yaWdpbiA9IChjZW50ZXJUYXBZRW5jVmlhICsgKGZpeCgoKHZpYTFZb2Zmc2V0IC8gc25hcEdyaWQpICsgMWUtMDYpKSAqIHNuYXBHcmlkKSkpICh0aGVZID0gdmlhMVlvcmlnaW4pIGZvcihyIDEgdmlhMVJvdyAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodmlhMVhvcmlnaW46dGhlWSkgKHZpYTFYZW5kOih0aGVZICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh0aGVZID0gKHRoZVkgKyB2aWExUGl0Y2gpKSkgZWxzZSAodGhlWSA9IGNlbnRlclRhcFlFbmNWaWEpIHdoaWxlKCgodGhlWSAtICh3ICsgKC0gY2VudGVyVGFwWUVuY1ZpYSkgKyAoLSB2aWExV2lkdGgpKSkgPCAxZS0wNikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdCh2aWExWG9yaWdpbiB0aGVZKSBsaXN0KHZpYTFYZW5kICh0aGVZICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh0aGVZID0gKHRoZVkgKyB2aWExV2lkdGggKyB2aWExU3BhY2UpKSkpICh0YXBWaWExWE8gPSB2aWExWG9yaWdpbikgKHRhcFZpYTFYRSA9IHZpYTFYZW5kKSAobGFzdERpZmZDb25Zb2Zmc2V0ID0gKHcgKyAoLSB0aGVZKSArIHZpYTFTcGFjZSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmYgbGlzdChsaXN0KGRpZmZYb3JpZ2luIDAuMCkgbGlzdCh0YXBYb3JpZ2luIHcpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSB3aGVuKGltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KChkaWZmWG9yaWdpbiAtIGRpZmZJbXBFbmNYTCkgKC0gZGlmZkltcEVuY1kpKSBsaXN0KCh0YXBYb3JpZ2luICsgZGlmZkltcEVuY0J1dHQpICh3ICsgZGlmZkltcEVuY1kpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpICh2aWExWG9yaWdpbiA9IGRpZmZYT3V0RW5jVmlhKSAodmlhMVhlbmQgPSAodmlhMVhvcmlnaW4gKyB2aWExV2lkdGgpKSBpZihjZW50ZXJWaWExIHRoZW4gKHZpYURyYXdTcGFjZVkgPSAodyAtIChkaWZmWUVuY1ZpYSAqIDIpKSkgKHZpYTFSb3cgPSAoZmxvb3IgKCh2aWFEcmF3U3BhY2VZICsgdmlhMVNwYWNlKSAvIHZpYTFQaXRjaCkpKSBpZigodmlhMVJvdyA9PSAwKSAodmlhMVJvdyA9IDEpKSAodmlhMVlvZmZzZXQgPSAoKHZpYURyYXdTcGFjZVkgLSAoKHZpYTFSb3cgKiB2aWExUGl0Y2gpIC0gdmlhMVNwYWNlKSkgLyAyKSkgKHZpYTFZb3JpZ2luID0gKGRpZmZZRW5jVmlhICsgKGZpeCgoKHZpYTFZb2Zmc2V0IC8gc25hcEdyaWQpICsgMWUtMDYpKSAqIHNuYXBHcmlkKSkpICh0aGVZID0gdmlhMVlvcmlnaW4pIGZvcihyIDEgdmlhMVJvdyB1bmxlc3Mobm9EaWZmQ29udGFjdCAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodmlhMVhvcmlnaW46dGhlWSkgKHZpYTFYZW5kOih0aGVZICsgdmlhMVdpZHRoKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodGhlWSA9ICh0aGVZICsgdmlhMVBpdGNoKSkpIGVsc2UgKHRoZVkgPSBkaWZmWUVuY1ZpYSkgd2hpbGUoKCh0aGVZIC0gKHcgKyAoLSBkaWZmWUVuY1ZpYSkgKyAoLSB2aWExV2lkdGgpKSkgPCAxZS0wNikgdW5sZXNzKG5vRGlmZkNvbnRhY3QgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdCh2aWExWG9yaWdpbiB0aGVZKSBsaXN0KHZpYTFYZW5kICh0aGVZICsgdmlhMVdpZHRoKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodGhlWSA9ICh0aGVZICsgdmlhMVdpZHRoICsgdmlhMVNwYWNlKSkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmIGxpc3QobGlzdCh0YXBYZW5kIDAuMCkgbGlzdChkaWZmWGVuZCB3KSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgd2hlbihpbXBsYW50IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgodGFwWGVuZCAtIGRpZmZJbXBFbmNCdXR0KSAoLSBkaWZmSW1wRW5jWSkpIGxpc3QoKGRpZmZYZW5kICsgZGlmZkltcEVuY1hSKSAodyArIGRpZmZJbXBFbmNZKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAodmlhMVhvcmlnaW4gPSAoZGlmZlhlbmQgKyAoLSBkaWZmWE91dEVuY1ZpYSkgKyAoLSB2aWExV2lkdGgpKSkgKHZpYTFYZW5kID0gKHZpYTFYb3JpZ2luICsgdmlhMVdpZHRoKSkgaWYoY2VudGVyVmlhMSB0aGVuICh2aWFEcmF3U3BhY2VZID0gKHcgLSAoZGlmZllFbmNWaWEgKiAyKSkpICh2aWExUm93ID0gKGZsb29yICgodmlhRHJhd1NwYWNlWSArIHZpYTFTcGFjZSkgLyB2aWExUGl0Y2gpKSkgaWYoKHZpYTFSb3cgPT0gMCkgKHZpYTFSb3cgPSAxKSkgKHZpYTFZb2Zmc2V0ID0gKCh2aWFEcmF3U3BhY2VZIC0gKCh2aWExUm93ICogdmlhMVBpdGNoKSAtIHZpYTFTcGFjZSkpIC8gMikpICh2aWExWW9yaWdpbiA9IChkaWZmWUVuY1ZpYSArIChmaXgoKCh2aWExWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpKSAodGhlWSA9IHZpYTFZb3JpZ2luKSBmb3IociAxIHZpYTFSb3cgdW5sZXNzKG5vRGlmZkNvbnRhY3QgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHZpYTFYb3JpZ2luOnRoZVkpICh2aWExWGVuZDoodGhlWSArIHZpYTFXaWR0aCkpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRoZVkgPSAodGhlWSArIHZpYTFQaXRjaCkpKSBlbHNlICh0aGVZID0gZGlmZllFbmNWaWEpIHdoaWxlKCgodGhlWSAtICh3ICsgKC0gZGlmZllFbmNWaWEpICsgKC0gdmlhMVdpZHRoKSkpIDwgMWUtMDYpIHVubGVzcyhub0RpZmZDb250YWN0IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QodmlhMVhvcmlnaW4gdGhlWSkgbGlzdCh2aWExWGVuZCAodGhlWSArIHZpYTFXaWR0aCkpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRoZVkgPSAodGhlWSArIHZpYTFXaWR0aCArIHZpYTFTcGFjZSkpKSkgKHZpYTFYb3JpZ2luID0gZGlmZlhPdXRFbmNWaWEpKSB1bmxlc3MoY2VudGVyVGFwIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmYgbGlzdCgoZGlmZlhvcmlnaW46eVZhbHVlKSAoZGlmZlhlbmQ6dykpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIHdoZW4oaW1wbGFudCAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKGRpZmZYb3JpZ2luIC0gZGlmZkltcEVuYykgeVZhbHVlKSBsaXN0KChkaWZmWGVuZCArIGRpZmZJbXBFbmMpICh3ICsgZGlmZkltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKGRpZmZYb3JpZ2luIC0gZGlmZkltcEVuYykgKC0gZGlmZkltcEVuYykpIGxpc3QoKGRpZmZYZW5kICsgZGlmZkltcEVuYykgMC4wKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpKSBjb25kKCgoIWNlbnRlclRhcHMgJiYgIWNlbnRlclRhcCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZiBsaXN0KCh2aWExWG9yaWdpbjowKSAodmlhMVhlbmQ6dykpKSkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiZGlmZkxheWVyUGluQmJveCIgImxpc3QiIChkYklkfj5iQm94KSkpICh0IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmYgbGlzdCgoZGlmZlhvcmlnaW46MCkgKChkaWZmWG9yaWdpbiArIG1pblBpbldpZHRoKTp3KSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGxpc3QoImxlZnQiKSBhY2Nlc3NEaXIpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmYgbGlzdCgoKGRpZmZYZW5kIC0gbWluUGluV2lkdGgpOjApIChkaWZmWGVuZDp3KSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGxpc3QoInJpZ2h0IikgYWNjZXNzRGlyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImRpZmZMYXllclBpbkJib3giICJsaXN0IiBsaXN0KChkaWZmWG9yaWdpbjowKSAoZGlmZlhlbmQ6dykpKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiZGlmZkxheWVyQmJveCIgImxpc3QiIGxpc3QoKGRpZmZYb3JpZ2luOjApIChkaWZmWGVuZDp3KSkpIGNvbmQoKCghY2VudGVyVGFwcyAmJiAhY2VudGVyVGFwKSAoeVZhbHVlID0gKHlWYWx1ZSArIGZpcnN0RGlmZkNvbllvZmZzZXQpKSkgKHQgKHlWYWx1ZSA9ICh5VmFsdWUgKyBkaWZmQ29uWW9mZnNldEFidXR0aW5nVGFwKSkpKSB1bmxlc3MoY2VudGVyVGFwIHdoaWxlKCgodyAtICh5VmFsdWUgKyB2aWExV2lkdGggKyBsYXN0RGlmZkNvbllvZmZzZXQpKSA+IC0xZS0wNikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHZpYTFYb3JpZ2luOnlWYWx1ZSkgKHZpYTFYZW5kOih5VmFsdWUgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHlWYWx1ZSA9ICh5VmFsdWUgKyB5VmlhMU9mZnNldCkpKSkgY29uZCgoYm90dG9tRW5kVGFwIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcCBsaXN0KCh0YlRhcFhvcmlnaW46MC4wKSAodGJUYXBYZW5kOigtIHRhcFlvZmZzZXQpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgd2hlbihpbXBsYW50IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcEltcGxhbnQgbGlzdChsaXN0KCh0YlRhcFhvcmlnaW4gLSB0YXBJbXBFbmMpIHRhcEltcEVuY0J1dHQpIGxpc3QoKHRiVGFwWGVuZCArIHRhcEltcEVuYykgKCgtIHRhcFlvZmZzZXQpICsgKC0gdGFwSW1wRW5jKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKHRhcEJvdHRvbUVkZ2UgPSAoLSB0YXBZb2Zmc2V0KSkgdW5sZXNzKChjZW50ZXJUYXBzIHx8IHRvcEVuZFRhcCkgKHRhcFRvcEVkZ2UgPSAwLjApKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodmlhMVhvcmlnaW46KCgtIHRhcFlvZmZzZXQpICsgdGlwVGFwWU91dEVuY1ZpYSArIHZpYTFXaWR0aCkpICh2aWExWGVuZDooKC0gdGFwWW9mZnNldCkgKyB0aXBUYXBZT3V0RW5jVmlhKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh2aWExTWluWSA9ICgoLSB0YXBZb2Zmc2V0KSArIHRpcFRhcFlPdXRFbmNWaWEpKSkgKHQgKHZpYTFNaW5ZID0gZmlyc3REaWZmQ29uWW9mZnNldCkpKSBjb25kKCh0b3BFbmRUYXAgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwIGxpc3QoKHRiVGFwWG9yaWdpbjp3KSAodGJUYXBYZW5kOih3ICsgdGFwWW9mZnNldCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSB3aGVuKGltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwSW1wbGFudCBsaXN0KGxpc3QoKHRiVGFwWG9yaWdpbiAtIHRhcEltcEVuYykgKHcgLSB0YXBJbXBFbmNCdXR0KSkgbGlzdCgodGJUYXBYZW5kICsgdGFwSW1wRW5jKSAodyArIHRhcFlvZmZzZXQgKyB0YXBJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpICh0YXBUb3BFZGdlID0gKHcgKyB0YXBZb2Zmc2V0KSkgdW5sZXNzKChjZW50ZXJUYXBzIHx8IGJvdHRvbUVuZFRhcCkgKHRhcEJvdHRvbUVkZ2UgPSB3KSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHZpYTFYb3JpZ2luOih3ICsgdGFwWW9mZnNldCArICgtIHRpcFRhcFlPdXRFbmNWaWEpICsgKC0gdmlhMVdpZHRoKSkpICh2aWExWGVuZDoodyArIHRhcFlvZmZzZXQgKyAoLSB0aXBUYXBZT3V0RW5jVmlhKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodmlhMU1heFkgPSAodyArIHRhcFlvZmZzZXQgKyAoLSB0aXBUYXBZT3V0RW5jVmlhKSkpKSAodCAodmlhMU1heFkgPSAodyAtIGxhc3REaWZmQ29uWW9mZnNldCkpKSkgd2hlbigoY2VudGVyVGFwcyB8fCB0b3BFbmRUYXAgfHwgYm90dG9tRW5kVGFwKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRhcExheWVyQmJveCIgImxpc3QiIGxpc3QoKG1pbih0YlRhcFhvcmlnaW4gdGFwWG9yaWdpbik6dGFwQm90dG9tRWRnZSkgKG1heCh0YlRhcFhlbmQgdGFwWGVuZCk6dGFwVG9wRWRnZSkpKSkgd2hlbihjZW50ZXJUYXAgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0YXBMYXllckJib3giICJsaXN0IiBsaXN0KCh0YXBYb3JpZ2luOjAuMCkgKHRhcFhlbmQ6dykpKSkgd2hlbihub0RpZmZDb250YWN0ICh2aWExWG9yaWdpbiA9IHRhcFZpYTFYTykgKHZpYTFYZW5kID0gdGFwVmlhMVhFKSkgKGxheWVyMkxlbmd0aCA9IG1heChsYXllcjJXaWR0aCAoKHZpYTFYZW5kIC0gdmlhMVhvcmlnaW4pICsgKDIgKiBsYXllcjJYRW5jVmlhKSkpKSB3aGVuKGxheWVyMyAobGF5ZXIyTGVuZ3RoID0gbWF4KGxheWVyMkxlbmd0aCAodmlhMldpZHRoICsgKDIgKiBsYXllcjJYRW5jVmlhMikpKSkpIGlmKGNlbnRlclRhcCB0aGVuIChsYXllcjJYb3JpZ2luID0gKHZpYTFYb3JpZ2luICsgKCh2aWExWGVuZCAtIHZpYTFYb3JpZ2luKSAvIDIuMCkgKyAoLSAobGF5ZXIyTGVuZ3RoIC8gMi4wKSkpKSBlbHNlIChsYXllcjJYb3JpZ2luID0gKHZpYTFYb3JpZ2luICsgKCh2aWExV2lkdGggKyAoLSBsYXllcjJMZW5ndGgpKSAvIDIuMCkpKSkgKGxheWVyMlhlbmQgPSAobGF5ZXIyWG9yaWdpbiArIGxheWVyMkxlbmd0aCkpIChsYXllcjJYb3JpZ2luID0gKGZpeCgoKGxheWVyMlhvcmlnaW4gLyBzbmFwR3JpZCkgKyAxZS0wNikpICogc25hcEdyaWQpKSAobGF5ZXIyWGVuZCA9ICgoY2VpbGluZyAoKGxheWVyMlhlbmQgLyBzbmFwR3JpZCkgKyAtMWUtMDYpKSAqIHNuYXBHcmlkKSkgaWYoZW11bGF0ZVNsb3RWaWEgdGhlbiAobGF5ZXIyWW9yaWdpbiA9IChkaWZmWUVuY1ZpYSAtIG1heChsYXllcjJZRW5jVmlhIGxheWVyMllFbmNWaWEyKSkpIGVsc2UgaWYoY2VudGVyTGF5ZXIyIHRoZW4gKGxheWVyMllvcmlnaW4gPSAodmlhMVlvcmlnaW4gLSBsYXllcjJZRW5jVmlhKSkgZWxzZSAobGF5ZXIyWW9yaWdpbiA9ICh2aWExTWluWSAtIGxheWVyMllFbmNWaWEpKSkpIGlmKGxheWVyMyB0aGVuIChudW1WaWEyID0gbWF4KGZpeCgoKCh3ICsgdmlhMlNwYWNlICsgKC0gKGxheWVyMllFbmNWaWEyICsgbGF5ZXIyWUVuY1ZpYTIpKSArICgtIGxheWVyMllvcmlnaW4pKSAvICh2aWEyV2lkdGggKyB2aWEyU3BhY2UpKSArIDFlLTA2KSkgMSkpIChsYXN0VmlhMlllbmQgPSAoKHZpYTJXaWR0aCAqIG51bVZpYTIpICsgKHZpYTJTcGFjZSAqIChudW1WaWEyIC0gMSkpICsgbGF5ZXIyWW9yaWdpbiArIGxheWVyMllFbmNWaWEyKSkgaWYoZW11bGF0ZVNsb3RWaWEgdGhlbiAobGF5ZXIyWWVuZCA9IChsYXllcjJZRW5jVmlhICsgKHcgLSBkaWZmWUVuY1ZpYSkpKSBlbHNlIChsYXllcjJZZW5kID0gbWF4KCh2aWExTWF4WSArIGxheWVyMllFbmNWaWEpIChsYXN0VmlhMlllbmQgKyBsYXllcjJZRW5jVmlhMikpKSkgZWxzZSBpZihlbXVsYXRlU2xvdFZpYSB0aGVuIChsYXllcjJZZW5kID0gKGxheWVyMllFbmNWaWEgKyAodyAtIGRpZmZZRW5jVmlhKSkpIGVsc2UgKGxheWVyMlllbmQgPSAodmlhMU1heFkgKyBsYXllcjJZRW5jVmlhKSkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdCgobGF5ZXIyWG9yaWdpbjpsYXllcjJZb3JpZ2luKSAobGF5ZXIyWGVuZDpsYXllcjJZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIGNvbmQoKCFsYXllcjMgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjIpKSAodCBpZihhbGxvd0NlbnRlcmVkTUNPTnMgdGhlbiAodmlhMllvcmlnaW4gPSAoMC4wICsgbGF5ZXIyWUVuY1ZpYTIpKSAobGFzdFZpYTJZb3JpZ2luID0gdykgZWxzZSAodmlhMllvcmlnaW4gPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMllFbmNWaWEyKSkgKGxhc3RWaWEyWW9yaWdpbiA9IChsYXllcjJZZW5kIC0gbGF5ZXIyWUVuY1ZpYTIgLSB2aWEyV2lkdGgpKSkgaWYoY2VudGVyVGFwIHRoZW4gKHZpYTJYb3JpZ2luID0gKGxheWVyMlhvcmlnaW4gKyAoKGxheWVyMlhlbmQgLSBsYXllcjJYb3JpZ2luKSAvIDIuMCkgKyAoLSAodmlhMldpZHRoIC8gMi4wKSkpKSAodmlhMlhvcmlnaW4gPSAoZml4KCgodmlhMlhvcmlnaW4gLyBzbmFwR3JpZCkgKyAxZS0wNikpICogc25hcEdyaWQpKSBlbHNlICh2aWEyWG9yaWdpbiA9IChsYXllcjJYb3JpZ2luICsgbGF5ZXIyWEVuY1ZpYTIpKSkgKHZpYTJYZW5kID0gKHZpYTJYb3JpZ2luICsgdmlhMldpZHRoKSkgaWYoY2VudGVyVmlhMiB0aGVuIGlmKGVtdWxhdGVTbG90VmlhIHRoZW4gKHZpYTJSb3cgPSAoZmxvb3IgKHcgLyB2aWEyUGl0Y2gpKSkgaWYoKHZpYTJSb3cgPT0gMCkgKHZpYTJSb3cgPSAxKSkgKHZpYTJZb2Zmc2V0ID0gKCh3IC0gKCh2aWEyUm93ICogdmlhMlBpdGNoKSAtIHZpYTJTcGFjZSkpIC8gMikpICh2aWEyWW9yaWdpbiA9IChmaXgoKCh2aWEyWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpIGVsc2UgKGxheWVyMll3aWR0aCA9IChsYXllcjJZZW5kIC0gbGF5ZXIyWW9yaWdpbikpICh2aWEyRHJhd1NwYWNlWSA9IChsYXllcjJZd2lkdGggLSAobGF5ZXIyWUVuY1ZpYTIgKiAyKSkpICh2aWEyUm93ID0gKGZsb29yICgodmlhMkRyYXdTcGFjZVkgKyB2aWEyU3BhY2UpIC8gdmlhMlBpdGNoKSkpIGlmKCh2aWEyUm93ID09IDApICh2aWEyUm93ID0gMSkpICh2aWEyWW9mZnNldCA9ICgodmlhMkRyYXdTcGFjZVkgLSAoKHZpYTJSb3cgKiB2aWEyUGl0Y2gpIC0gdmlhMlNwYWNlKSkgLyAyKSkgKHZpYTJZb3JpZ2luID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJZRW5jVmlhMiArIChmaXgoKCh2aWEyWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpKSkgKHlWYWx1ZSA9IHZpYTJZb3JpZ2luKSBmb3IociAxIHZpYTJSb3cgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHZpYTJYb3JpZ2luOnlWYWx1ZSkgKCh2aWEyWG9yaWdpbiArIHZpYTJXaWR0aCk6KHlWYWx1ZSArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoeVZhbHVlID0gKHlWYWx1ZSArIHZpYTJQaXRjaCkpKSBlbHNlICh2aWEyWW9mZnNldCA9ICh2aWEyV2lkdGggKyB2aWEyU3BhY2UpKSAoeVZhbHVlID0gdmlhMllvcmlnaW4pIGlmKGFsbG93Q2VudGVyZWRNQ09OcyB0aGVuIHdoaWxlKCgoKGxhc3RWaWEyWW9yaWdpbiAtIHZpYTJXaWR0aCkgLSB5VmFsdWUpID4gLTFlLTA2KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdCgodmlhMlhvcmlnaW46eVZhbHVlKSAodmlhMlhlbmQ6KHlWYWx1ZSArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoeVZhbHVlID0gKHlWYWx1ZSArIHZpYTJZb2Zmc2V0KSkpIGVsc2Ugd2hpbGUoKChsYXN0VmlhMllvcmlnaW4gLSB5VmFsdWUpID4gLTFlLTA2KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdCgodmlhMlhvcmlnaW46eVZhbHVlKSAodmlhMlhlbmQ6KHlWYWx1ZSArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoeVZhbHVlID0gKHlWYWx1ZSArIHZpYTJZb2Zmc2V0KSkpKSkgKGxheWVyM1hvcmlnaW4gPSAodmlhMlhvcmlnaW4gLSBsYXllcjNYRW5jVmlhMikpIChsYXllcjNYZW5kID0gKHZpYTJYZW5kICsgbGF5ZXIzWEVuY1ZpYTIpKSAoKChsYXllcjNYZW5kIC0gbGF5ZXIzWG9yaWdpbikgPCBsYXllcjNXaWR0aCkgJiYgKGxheWVyM1hlbmQgPSAobGF5ZXIzWG9yaWdpbiArIGxheWVyM1dpZHRoKSkpIChsYXllcjNZb3JpZ2luID0gKHZpYTJZb3JpZ2luIC0gbGF5ZXIzWUVuY1ZpYTIpKSAobGF5ZXIzWWVuZCA9ICgoeVZhbHVlIC0gdmlhMlNwYWNlKSArIGxheWVyM1lFbmNWaWEyKSkgKCgobGF5ZXIzWWVuZCAtIGxheWVyM1lvcmlnaW4pIDwgbGF5ZXIzV2lkdGgpICYmIChsYXllcjNZZW5kID0gKGxheWVyM1lvcmlnaW4gKyBsYXllcjNXaWR0aCkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdCgobGF5ZXIzWG9yaWdpbjpsYXllcjNZb3JpZ2luKSAobGF5ZXIzWGVuZDpsYXllcjNZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyIiAibGlzdCIgbGF5ZXIzKSkpKQAoZGlmZiB0YXAgbGF5ZXIyIGxheWVyMyB2aWExTGF5ZXIgdmlhMkxheWVyIGNlbnRlclJlY29nbml0aW9uIGRpZmZXaWR0aCB0YXBXaWR0aCB0YXBXaWR0aEJldHdlZW5EaWZmIHRhcFdpZHRoQnV0dGluZ0RpZmYgbGF5ZXIyV2lkdGggbGF5ZXIzV2lkdGggdmlhMVdpZHRoIHZpYTJXaWR0aCB2aWExU3BhY2UgdmlhMlNwYWNlIGRpZmZZRW5jVmlhIGRpZmZYRW5jVmlhIGRpZmZYT3V0RW5jVmlhIHRpcFRhcFlJbkVuY1ZpYSB0aXBUYXBZT3V0RW5jVmlhIHRpcFRhcFhFbmNWaWEgY2VudGVyVGFwWEVuY1ZpYSBjZW50ZXJUYXBZRW5jVmlhIGxheWVyMlhFbmNWaWEgbGF5ZXIyWUVuY1ZpYSBsYXllcjJYRW5jVmlhMiBsYXllcjJZRW5jVmlhMiBsYXllcjNYRW5jVmlhMiBsYXllcjNZRW5jVmlhMiB0YXBTcGFjZUdhdGUgdGFwU3BhY2VQb2x5IG1heERpZmZUb1RhcENvbnRhY3RTcGFjZSBoYWxmRGlmZnVzaW9uR3JpZCBtaW5QaW5XaWR0aCBkaWZmSW1wbGFudCBkaWZmSW1wRW5jIGRpZmZJbXBFbmNCdXR0IHRhcEltcGxhbnQgdGFwSW1wRW5jIHRhcEltcEVuY0J1dHQgZGlmZkltcEVuY0xpc3QgdGFwSW1wRW5jTGlzdCB3ZWxsTGF5ZXIgd2VsbExheWVyRGlmZkVuYyB3ZWxsTGF5ZXJUYXBFbmMgc25hcEdyaWQgZW11bGF0ZVNsb3RWaWEgY2VudGVyVmlhMSBjZW50ZXJWaWEyIGNlbnRlckxheWVyMiB3IGltcGxhbnQgaW5XZWxsIGNlbnRlclRhcCB0b3BFbmRUYXAgYm90dG9tRW5kVGFwIG5vRGlmZkNvbnRhY3QgYWxsb3dDZW50ZXJlZE1DT05zIGRpZmZJbXBDaG9pY2UgdGFwSW1wQ2hvaWNlIHZpYTFQaXRjaCB2aWEyUGl0Y2ggZW5jTGlzdCBkaWZmSW1wRW5jWEwgZGlmZkltcEVuY1hSIGRpZmZJbXBFbmNZIHRhcEltcEVuY1hMIHRhcEltcEVuY1hSIHRhcEltcEVuY1kgbmV0IGFsbERpciBoYXNUYXBJbkNlbnRlciBkb3VibGVNYXhEaXN0YW5jZVRvVGFwIG1heENvbnNlY0RpZmZDb250YWN0cyB2aWExWG9yaWdpbiB2aWExWGVuZCB0YXBYb3JpZ2luIHRhcFhlbmQgdGJUYXBYb3JpZ2luIHRiVGFwWGVuZCBkaWZmWG9yaWdpbiBkaWZmWGVuZCBkaWZmQ29uWW9mZnNldEFidXR0aW5nVGFwIGZpcnN0RGlmZkNvbllvZmZzZXQgbGFzdERpZmZDb25Zb2Zmc2V0IHRhcFlvZmZzZXQgbWluVyBzbWFsbGVyTWluVyBkaWZmRGl2aXNvciBkaWZmU3ByZWFkIHlWYWx1ZSB5UmVtYWluaW5nIHlWaWExT2Zmc2V0IGNlbnRlckRpZmZDb25Zb2Zmc2V0IGNlbnRlclRhcHMgZGlmZkRlbHRhIGRiSWQgaSB0YXBZV2lkdGhCZXR3ZWVuRGlmZiB0YXBCb3R0b21FZGdlIHRhcFRvcEVkZ2UgdmlhRHJhd1NwYWNlWSB2aWExUm93IHZpYTFZb2Zmc2V0IHZpYTFZb3JpZ2luIHRoZVkgciB0YXBWaWExWE8gdGFwVmlhMVhFIGRiaWQgcGluSWQgdmlhMU1pblkgdmlhMU1heFkgbGF5ZXIyTGVuZ3RoIGxheWVyMlhvcmlnaW4gbGF5ZXIyWGVuZCBsYXllcjJZb3JpZ2luIG51bVZpYTIgbGFzdFZpYTJZZW5kIGxheWVyMlllbmQgdmlhMllvcmlnaW4gbGFzdFZpYTJZb3JpZ2luIHZpYTJYb3JpZ2luIHZpYTJYZW5kIHZpYTJSb3cgdmlhMllvZmZzZXQgbGF5ZXIyWXdpZHRoIHZpYTJEcmF3U3BhY2VZIGxheWVyM1hvcmlnaW4gbGF5ZXIzWGVuZCBsYXllcjNZb3JpZ2luIGxheWVyM1llbmQpACgodyAwLjApIChpbXBsYW50IHQpIChpbldlbGwgIkZBTFNFIikgKGNlbnRlclRhcCAiRkFMU0UiKSAodG9wRW5kVGFwIHQpIChib3R0b21FbmRUYXAgdCkgKG5vRGlmZkNvbnRhY3QgIkZBTFNFIikgKGFsbG93Q2VudGVyZWRNQ09OcyAiRkFMU0UiKSAoZGlmZkltcENob2ljZSAwKSAodGFwSW1wQ2hvaWNlIDApKQAoKGRpZmYgImhpbGl0ZSIpICh0YXAgInByQm91bmRhcnkiKSAobGF5ZXIyICgibWFya2VyIiAid2FybmluZyIpKSAobGF5ZXIzIG5pbCkgKHZpYTFMYXllciAoIm1hcmtlciIgImVycm9yIikpICh2aWEyTGF5ZXIgbmlsKSAoY2VudGVyUmVjb2duaXRpb24gbmlsKSAoZGlmZldpZHRoIDAuMCkgKHRhcFdpZHRoIDAuMCkgKHRhcFdpZHRoQmV0d2VlbkRpZmYgMC4wKSAodGFwV2lkdGhCdXR0aW5nRGlmZiAwLjApIChsYXllcjJXaWR0aCAwLjApIChsYXllcjNXaWR0aCAwLjApICh2aWExV2lkdGggMC4wKSAodmlhMldpZHRoIDAuMCkgKHZpYTFTcGFjZSAwLjApICh2aWEyU3BhY2UgMC4wKSAoZGlmZllFbmNWaWEgMC4wKSAoZGlmZlhFbmNWaWEgMC4wKSAoZGlmZlhPdXRFbmNWaWEgMC4wKSAodGlwVGFwWUluRW5jVmlhIDAuMCkgKHRpcFRhcFlPdXRFbmNWaWEgMC4wKSAodGlwVGFwWEVuY1ZpYSAwLjApIChjZW50ZXJUYXBYRW5jVmlhIDAuMCkgKGNlbnRlclRhcFlFbmNWaWEgMC4wKSAobGF5ZXIyWEVuY1ZpYSAwLjApIChsYXllcjJZRW5jVmlhIDAuMCkgKGxheWVyMlhFbmNWaWEyIDAuMCkgKGxheWVyMllFbmNWaWEyIDAuMCkgKGxheWVyM1hFbmNWaWEyIDAuMCkgKGxheWVyM1lFbmNWaWEyIDAuMCkgKHRhcFNwYWNlR2F0ZSAwLjApICh0YXBTcGFjZVBvbHkgMC4wKSAobWF4RGlmZlRvVGFwQ29udGFjdFNwYWNlIDk5OTk5LjkpIChoYWxmRGlmZnVzaW9uR3JpZCAwLjApIChtaW5QaW5XaWR0aCAwLjA1KSAoZGlmZkltcGxhbnQgbmlsKSAoZGlmZkltcEVuYyBsaXN0KDAuMCAwLjApKSAoZGlmZkltcEVuY0J1dHQgbGlzdCgwLjAgMC4wKSkgKHRhcEltcGxhbnQgbmlsKSAodGFwSW1wRW5jIGxpc3QoMC4wIDAuMCkpICh0YXBJbXBFbmNCdXR0IGxpc3QoMC4wIDAuMCkpIChkaWZmSW1wRW5jTGlzdCBuaWwpICh0YXBJbXBFbmNMaXN0IG5pbCkgKHdlbGxMYXllciBuaWwpICh3ZWxsTGF5ZXJEaWZmRW5jIDAuMCkgKHdlbGxMYXllclRhcEVuYyAwLjApIChzbmFwR3JpZCAoVEVDSGdldFByb3Agc25hcEdyaWQpKSAoZW11bGF0ZVNsb3RWaWEgbmlsKSAoY2VudGVyVmlhMSBuaWwpIChjZW50ZXJWaWEyIG5pbCkgKGNlbnRlckxheWVyMiBuaWwpKQAoKGdOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiZyIpKSAoc05ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJzIikpIChkTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImQiKSkgKHNyY0NvbklkID0gKGRybkNvbklkID0gKHNyY1BpbklkID0gKGRyblBpbklkID0gbmlsKSkpKSB3aGVuKHN0cmluZ3AoZGlmZkxheWVyKSAoZGlmZkxheWVyID0gbGlzdChkaWZmTGF5ZXIgImRyYXdpbmciKSkpIHdoZW4oKHNvdXJjZUNvbnRhY3QgIT0gIiIpIChzcmNDb25JZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBzb3VyY2VDb250YWN0ICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3Moc3JjQ29uSWQgZXJyb3Ioc3RyY2F0KCJDYW5ub3QgZmluZC9vcGVuIHNvdXJjZUNvbnRhY3QgY29udGFjdCBjZWxsIGAiIHNvdXJjZUNvbnRhY3QgIiciKSkpKSB3aGVuKChkcmFpbkNvbnRhY3QgIT0gIiIpIChkcm5Db25JZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBkcmFpbkNvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhkcm5Db25JZCBlcnJvcihzdHJjYXQoIkNhbm5vdCBmaW5kL29wZW4gZHJhaW5Db250YWN0IGNvbnRhY3QgY2VsbCBgIiBkcmFpbkNvbnRhY3QgIiciKSkpKSBjb25kKCgodGFwU291cmNlID09ICJUUlVFIikgKHRhcFhvcmlnaW4gPSAoLSB0YXBFeHQpKSB3aGVuKHNyY0NvbklkIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgc3JjQ29uSWQgImMwIiAoKC0gc3JjT2Zmc2V0KTowKSAiTVkiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHcpKSkpIHVubGVzcyhpbnN0IGVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIHNvdXJjZSBjb250YWN0IikpIHdoZW4oKChtYXN0ZXIgPSAoaW5zdH4+bWFzdGVyKSkgJiYgKHRvcEJib3ggPSAobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSAmJiAodG9wTGF5ZXIgPSAobWFzdGVyfj50b3BMYXllcikpICYmIChkaWZmQmJveCA9IChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdG9wTGF5ZXIgbGlzdCgoKDAuMCAtIHNyY09mZnNldCAtIGNhYXIodG9wQmJveCkpOmNhZGFyKHRvcEJib3gpKSAoKDAuMCAtIHNyY09mZnNldCAtIGNhYWRyKHRvcEJib3gpKTpjYWRhZHIodG9wQmJveCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgc05ldCkgKHNyY1BpbklkID0gKGRiQ3JlYXRlUGluIHNOZXQgZGJJZCkpICh0YXBYb3JpZ2luID0gbWluKCgtIHRhcEV4dCkgKDAuMCAtIHNyY09mZnNldCAtIG1heChjYWFyKGRpZmZCYm94KSBjYWFkcihkaWZmQmJveCkpKSkpICh3ZWxsWG9yaWdpbiA9IG1pbigoLSB3ZWxsRW5jRGlmZikgKDAuMCAtIHdlbGxFbmNUYXAgLSBtYXgodGFwRXh0IChzcmNPZmZzZXQgKyBtYXgoY2FhcihkaWZmQmJveCkgY2FhZHIoZGlmZkJib3gpKSkpKSkpICh3ZWxsWW9yaWdpbiA9IG1pbigoMC4wIC0gd2VsbEVuY1RhcCAtIG1pbigwLjAgY2FkYXIoZGlmZkJib3gpIGNhZGFkcihkaWZmQmJveCkpKSAoLSB3ZWxsRW5jVGFwKSkpICh3ZWxsWWVuZCA9IG1heCgod2VsbEVuY1RhcCArIG1heChjYWRhcihkaWZmQmJveCkgY2FkYWRyKGRpZmZCYm94KSkpICh3ICsgd2VsbEVuY1RhcCkpKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGxpc3QoKHRhcFhvcmlnaW46MC4wKSAoMC4wOncpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgc05ldCkgdW5sZXNzKHNyY1BpbklkIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBzTmV0IGRiSWQpKSBzZXRTR3EocGluSWQgbGlzdCgibGVmdCIpIGFjY2Vzc0RpcikgKHdlbGxYb3JpZ2luID0gKDAuMCAtIHRhcEV4dCAtIHdlbGxFbmNUYXApKSAod2VsbFlvcmlnaW4gPSBtaW4oKC0gd2VsbEVuY0RpZmYpICgtIHdlbGxFbmNUYXApKSkgKHdlbGxZZW5kID0gKHcgLSB3ZWxsWW9yaWdpbikpKSkgKHQgKHdlbGxYb3JpZ2luID0gKC0gd2VsbEVuY0RpZmYpKSAod2VsbFlvcmlnaW4gPSAoLSB3ZWxsRW5jRGlmZikpICh3ZWxsWWVuZCA9ICh3IC0gd2VsbFlvcmlnaW4pKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciBsaXN0KCgwLjA6MC4wKSAobDp3KSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIGdOZXQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciBsaXN0KCgwLjA6KC0gcG9seUV4dCkpIChsOjAuMCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBnTmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYklkKSkgc2V0U0dxKHBpbklkIGxpc3QoImJvdHRvbSIpIGFjY2Vzc0RpcikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIGxpc3QoKDAuMDp3KSAobDoodyArIHBvbHlFeHQpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIGdOZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBnTmV0IGRiSWQpKSBzZXRTR3EocGluSWQgbGlzdCgidG9wIikgYWNjZXNzRGlyKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoMC4wOjAuMCkgKGw6dykpKSkgKGRpZmZYZW5kID0gKGwgKyBkaWZmRXh0KSkgd2hlbihkcm5Db25JZCAoaW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGRybkNvbklkICJjMSIgKChsICsgZHJuT2Zmc2V0KTowKSAiMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgdykpKSkgdW5sZXNzKGluc3QgZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgZHJhaW4gY29udGFjdCIpKSB3aGVuKCgobWFzdGVyID0gKGluc3R+Pm1hc3RlcikpICYmICh0b3BCYm94ID0gKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgJiYgKHRvcExheWVyID0gKG1hc3Rlcn4+dG9wTGF5ZXIpKSAmJiAoZGlmZkJib3ggPSAobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRvcExheWVyIGxpc3QoKChsICsgZHJuT2Zmc2V0ICsgY2Fhcih0b3BCYm94KSk6Y2FkYXIodG9wQmJveCkpICgobCArIGRybk9mZnNldCArIGNhYWRyKHRvcEJib3gpKTpjYWRhZHIodG9wQmJveCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgZE5ldCkgKGRyblBpbklkID0gKGRiQ3JlYXRlUGluIGROZXQgZGJJZCkpIChkaWZmWGVuZCA9IChsICsgbWF4KGRpZmZFeHQgKGRybk9mZnNldCArIG1heChjYWFyKGRpZmZCYm94KSBjYWFkcihkaWZmQmJveCkpKSkpKSAod2VsbFhlbmQgPSAobCArIHdlbGxFbmNEaWZmICsgbWF4KGRpZmZFeHQgKGRybk9mZnNldCArIG1heChjYWFyKGRpZmZCYm94KSBjYWFkcihkaWZmQmJveCkpKSkpKSAod2VsbFlvcmlnaW4gPSBtaW4od2VsbFlvcmlnaW4gKDAuMCAtIHdlbGxFbmNEaWZmIC0gbWluKGNhZGFyKGRpZmZCYm94KSBjYWRhZHIoZGlmZkJib3gpKSkpKSAod2VsbFllbmQgPSBtYXgod2VsbFllbmQgKHdlbGxFbmNEaWZmICsgbWF4KGNhZGFyKGRpZmZCYm94KSBjYWRhZHIoZGlmZkJib3gpKSkpKSB3aGVuKCh0YXBCYm94ID0gKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkgKHdlbGxZb3JpZ2luID0gbWluKHdlbGxZb3JpZ2luIChtaW4oY2FkYXIodGFwQmJveCkgY2FkYWRyKHRhcEJib3gpKSAtIHdlbGxFbmNUYXApKSkgKHdlbGxZZW5kID0gbWF4KHdlbGxZZW5kICh3ZWxsRW5jVGFwICsgbWF4KGNhZGFyKHRhcEJib3gpIGNhZGFkcih0YXBCYm94KSkpKSkgKHdlbGxYZW5kID0gbWF4KHdlbGxYZW5kIChsICsgZHJuT2Zmc2V0ICsgd2VsbEVuY1RhcCArIG1heChjYWFyKHRhcEJib3gpIGNhYWRyKHRhcEJib3gpKSkpKSkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgobDowLjApIChkaWZmWGVuZDp3KSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIGROZXQpIHVubGVzcyhkcm5QaW5JZCAocGluSWQgPSAoZGJDcmVhdGVQaW4gZE5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGxpc3QoInJpZ2h0IikgYWNjZXNzRGlyKSAod2VsbFhlbmQgPSAobCArIGRpZmZFeHQgKyB3ZWxsRW5jRGlmZikpKSB3aGVuKHdlbGxMYXllciB3aGVuKCgod2VsbFhlbmQgLSB3ZWxsWG9yaWdpbikgPCB3ZWxsbWluV2lkdGgpIChEaWZmX3dlbGxfd2lkdGggPSAod2VsbG1pbldpZHRoIC0gKHdlbGxYZW5kIC0gd2VsbFhvcmlnaW4pKSkgKHdlbGxYZW5kID0gKHdlbGxYZW5kICsgKERpZmZfd2VsbF93aWR0aCAvIDIpKSkgKHdlbGxYb3JpZ2luID0gKHdlbGxYb3JpZ2luIC0gKERpZmZfd2VsbF93aWR0aCAvIDIpKSkpIHdoZW4oKCh3ZWxsWWVuZCAtIHdlbGxZb3JpZ2luKSA8IHdlbGxtaW5XaWR0aCkgKERpZmZfd2VsbF93aWR0aCA9ICh3ZWxsbWluV2lkdGggLSAod2VsbFllbmQgLSB3ZWxsWW9yaWdpbikpKSAod2VsbFllbmQgPSAod2VsbFllbmQgKyAoRGlmZl93ZWxsX3dpZHRoIC8gMikpKSAod2VsbFlvcmlnaW4gPSAod2VsbFlvcmlnaW4gLSAoRGlmZl93ZWxsX3dpZHRoIC8gMikpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgd2VsbExheWVyIGxpc3QoKHdlbGxYb3JpZ2luOndlbGxZb3JpZ2luKSAod2VsbFhlbmQ6d2VsbFllbmQpKSkpKSB3aGVuKGRlcExheWVyIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRlcExheWVyIGxpc3QoKCgtIGRlcEVuY0RpZmYpOigtIGRlcEVuY0dhdGUpKSAoKGwgKyBkZXBFbmNEaWZmKToodyArIGRlcEVuY0dhdGUpKSkpKSkpAChkaWZmTGF5ZXIgZ2F0ZUxheWVyIHRhcExheWVyIHdlbGxMYXllciB3ZWxsbWluV2lkdGggZGVwTGF5ZXIgZGlmZkV4dCB0YXBFeHQgd2VsbEVuY0RpZmYgd2VsbEVuY1RhcCBkZXBFbmNEaWZmIGRlcEVuY0dhdGUgZHJhaW5Db250YWN0IHNvdXJjZUNvbnRhY3QgcG9seUV4dCBzcmNPZmZzZXQgZHJuT2Zmc2V0IGwgdyB0YXBTb3VyY2UgZ05ldCBzTmV0IGROZXQgc3JjQ29uSWQgZHJuQ29uSWQgc3JjUGluSWQgZHJuUGluSWQgdGFwWG9yaWdpbiBpbnN0IG1hc3RlciB0b3BCYm94IHRvcExheWVyIGRpZmZCYm94IGRiSWQgd2VsbFhvcmlnaW4gd2VsbFlvcmlnaW4gd2VsbFllbmQgcGluSWQgZGlmZlhlbmQgd2VsbFhlbmQgdGFwQmJveCBEaWZmX3dlbGxfd2lkdGgpACgoZHJhaW5Db250YWN0ICIiKSAoc291cmNlQ29udGFjdCAiIikgKHBvbHlFeHQgMC4wKSAoc3JjT2Zmc2V0IDAuMCkgKGRybk9mZnNldCAwLjApIChsIDAuMCkgKHcgMC4wKSAodGFwU291cmNlIHQpKQAoKGRpZmZMYXllciAiaGlsaXRlIikgKGdhdGVMYXllciAibWFya2VyIikgKHRhcExheWVyICJ5NCIpICh3ZWxsTGF5ZXIgbmlsKSAod2VsbG1pbldpZHRoIDAuMCkgKGRlcExheWVyIG5pbCkgKGRpZmZFeHQgMC4wKSAodGFwRXh0IDAuMCkgKHdlbGxFbmNEaWZmIDAuMCkgKHdlbGxFbmNUYXAgMC4wKSAoZGVwRW5jRGlmZiAwLjApIChkZXBFbmNHYXRlIDAuMCkpAChpZigoKGltcGxhbnQgPT0gdCkgfHwgKGltcGxhbnQgPT0gIlRSVUUiKSkgdGhlbiAoaW1wbGFudCA9IHQpIGVsc2UgKGltcGxhbnQgPSBuaWwpKSBpZigoKGluV2VsbCA9PSB0KSB8fCAoaW5XZWxsID09ICJUUlVFIikpIHRoZW4gKGluV2VsbCA9IHQpIGVsc2UgKGluV2VsbCA9IG5pbCkpIChuZXRJZCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJwZGQiKSkgd2hlbihzdHJpbmdwKGRpZmZMYXllcikgKGRpZmZMYXllciA9IGxpc3QoZGlmZkxheWVyICJkcmF3aW5nIikpKSB3aGVuKHN0cmluZ3AobGF5ZXIzKSAobGF5ZXIzID0gbGlzdChsYXllcjMgImRyYXdpbmciKSkpIHdoZW4oaW1wbGFudCB3aGVuKGRpZmZJbXBsYW50IGlmKGluV2VsbCB0aGVuIChkaWZmSW1wbGFudCA9IGNhZHIoZGlmZkltcGxhbnQpKSAoZGlmZkltcFhMRW5jID0gY2FkcihkaWZmSW1wWExFbmMpKSAoZGlmZkltcFhSRW5jID0gY2FkcihkaWZmSW1wWFJFbmMpKSAoZGlmZkltcFlFbmMgPSBjYWRyKGRpZmZJbXBZRW5jKSkgZWxzZSAoZGlmZkltcGxhbnQgPSBjYXIoZGlmZkltcGxhbnQpKSAoZGlmZkltcFhMRW5jID0gY2FyKGRpZmZJbXBYTEVuYykpIChkaWZmSW1wWFJFbmMgPSBjYXIoZGlmZkltcFhSRW5jKSkgKGRpZmZJbXBZRW5jID0gY2FyKGRpZmZJbXBZRW5jKSkpKSkgd2hlbihkaWZmQ29yZUltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGRpZmZDb3JlSW1wbGFudCA9IGNhZHIoZGlmZkNvcmVJbXBsYW50KSkgKGRpZmZDb3JlSW1wWExFbmMgPSBjYWRyKGRpZmZDb3JlSW1wWExFbmMpKSAoZGlmZkNvcmVJbXBYUkVuYyA9IGNhZHIoZGlmZkNvcmVJbXBYUkVuYykpIChkaWZmQ29yZUltcFlFbmMgPSBjYWRyKGRpZmZDb3JlSW1wWUVuYykpIGVsc2UgKGRpZmZDb3JlSW1wbGFudCA9IGNhcihkaWZmQ29yZUltcGxhbnQpKSAoZGlmZkNvcmVJbXBYTEVuYyA9IGNhcihkaWZmQ29yZUltcFhMRW5jKSkgKGRpZmZDb3JlSW1wWFJFbmMgPSBjYXIoZGlmZkNvcmVJbXBYUkVuYykpIChkaWZmQ29yZUltcFlFbmMgPSBjYXIoZGlmZkNvcmVJbXBZRW5jKSkpKSAoZGlmZkxlbiA9ICh2aWExV2lkdGggKyBkaWZmTEVuY1ZpYTEgKyBkaWZmUkVuY1ZpYTEpKSB3aGVuKCgoKHZpYTFXaWR0aCArICgyLjAgKiBkaWZmWUVuY1ZpYTEpKSAtIHcpID4gMWUtMDYpIGVycm9yKHNwcmludGYobmlsICJTcGVjaWZpZWQgd2lkdGggJWYgaXMgbGVzcyB0aGFuIHRoYXQgcmVxdWlyZWQgJWZcbiIgdyAodmlhMVdpZHRoICsgKDIuMCAqIGRpZmZZRW5jVmlhMSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgwOjApIChkaWZmTGVuOncpKSkpIChkYkNyZWF0ZVBpbiBuZXRJZCBkYmlkKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImRpZmZMYXllciIgIklMTGlzdCIgZGlmZkxheWVyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImRpZmZMYXllckJib3giICJJTExpc3QiIGxpc3QobGlzdCgwLjAgMC4wKSBsaXN0KGRpZmZMZW4gdykpKSB3aGVuKG1heHZMYXllciAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbWF4dkxheWVyIGxpc3QoKDA6MCkgKGRpZmZMZW46dykpKSkgd2hlbihpbXBsYW50IHdoZW4oZGlmZkltcGxhbnQgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoLSBkaWZmSW1wWExFbmMpICgtIGRpZmZJbXBZRW5jKSkgbGlzdCgoZGlmZkxlbiArIGRpZmZJbXBYUkVuYykgKHcgKyBkaWZmSW1wWUVuYykpKSkpIHdoZW4oZGlmZkNvcmVJbXBsYW50IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KCgtIGRpZmZDb3JlSW1wWExFbmMpICgtIGRpZmZDb3JlSW1wWUVuYykpIGxpc3QoKGRpZmZMZW4gKyBkaWZmQ29yZUltcFhSRW5jKSAodyArIGRpZmZDb3JlSW1wWUVuYykpKSkpIHdoZW4oKGluV2VsbCAmJiB3ZWxsTGF5ZXIpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgbGlzdChsaXN0KCgtIHdlbGxMYXllckVuYykgKC0gd2VsbExheWVyRW5jKSkgbGlzdCgoZGlmZkxlbiArIHdlbGxMYXllckVuYykgKHcgKyB3ZWxsTGF5ZXJFbmMpKSkpKSkgKHgxQ29vcmQgPSBkaWZmTEVuY1ZpYTEpICh5MUNvb3JkID0gZGlmZllFbmNWaWExKSAoeDJDb29yZCA9IChkaWZmTEVuY1ZpYTEgKyB2aWExV2lkdGgpKSAodmlhMVBpdGNoID0gKHZpYTFXaWR0aCArIHZpYTFTcGFjZSkpIGlmKGNlbnRlclZpYTEgdGhlbiAodmlhMURyYXdTcGFjZVkgPSAodyAtIChkaWZmWUVuY1ZpYTEgKiAyKSkpICh2aWExUm93ID0gKGZsb29yICgodmlhMURyYXdTcGFjZVkgKyB2aWExU3BhY2UpIC8gdmlhMVBpdGNoKSkpIGlmKCh2aWExUm93ID09IDApICh2aWExUm93ID0gMSkpICh2aWExWW9mZnNldCA9ICgodmlhMURyYXdTcGFjZVkgLSAoKHZpYTFSb3cgKiB2aWExUGl0Y2gpIC0gdmlhMVNwYWNlKSkgLyAyKSkgKHkxQ29vcmQgPSAoZGlmZllFbmNWaWExICsgKGZpeCgoKHZpYTFZb2Zmc2V0IC8gc25hcEdyaWQpICsgMWUtMDYpKSAqIHNuYXBHcmlkKSkpICh0aGVZID0geTFDb29yZCkgZm9yKHIgMSB2aWExUm93IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KCh4MUNvb3JkOnRoZVkpICh4MkNvb3JkOih0aGVZICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXRJZCkgKHRoZVkgPSAodGhlWSArIHZpYTFQaXRjaCkpKSAoeTJDb29yZCA9ICh0aGVZIC0gdmlhMVNwYWNlKSkgZWxzZSAoeU5vdENvdmVyZWQgPSAodyAtICgyLjAgKiBkaWZmWUVuY1ZpYTEpKSkgd2hpbGUoKCh5Tm90Q292ZXJlZCAtIHZpYTFXaWR0aCkgPiAtMWUtMDYpICh5MkNvb3JkID0gKHkxQ29vcmQgKyB2aWExV2lkdGgpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoeDJDb29yZDp5MkNvb3JkKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldElkKSAoeTFDb29yZCA9ICh5MUNvb3JkICsgdmlhMVBpdGNoKSkgKHlOb3RDb3ZlcmVkID0gKHlOb3RDb3ZlcmVkIC0gdmlhMVBpdGNoKSkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJCb3hWaWExIiAibGlzdCIgbGlzdCgoZGlmZkxFbmNWaWExOmRpZmZZRW5jVmlhMSkgKHgyQ29vcmQ6eTJDb29yZCkpKSAobGF5ZXIyTGVuID0gbWF4KGxheWVyMldpZHRoICh2aWExV2lkdGggKyAoMi4wICogbGF5ZXIyWEVuY1ZpYTEpKSAodmlhMldpZHRoICsgKDIuMCAqIGxheWVyMlhFbmNWaWEyKSkpKSAobnVtVmlhMiA9IG1heChmaXgoKCgodyArIHZpYTJTcGFjZSArICgtIChsYXllcjJZRW5jVmlhMiArIGxheWVyMllFbmNWaWEyKSkgKyAoLSAoZGlmZllFbmNWaWExIC0gbGF5ZXIyWUVuY1ZpYTEpKSkgLyAodmlhMldpZHRoICsgdmlhMlNwYWNlKSkgKyAxZS0wNikpIDEpKSAobGF5ZXIyV2lkID0gbWF4KGxheWVyMldpZHRoICgoeTJDb29yZCArIGxheWVyMllFbmNWaWExKSAtIChkaWZmWUVuY1ZpYTEgLSBsYXllcjJZRW5jVmlhMSkpICgodmlhMldpZHRoICogbnVtVmlhMikgKyAodmlhMlNwYWNlICogKG51bVZpYTIgLSAxKSkgKyAoMi4wICogbGF5ZXIyWUVuY1ZpYTIpKSkpIGNvbmQoKChjZW50ZXJWaWEyICYmIChjZW50ZXJWaWEyICE9ICJGQUxTRSIpKSAoaGFsZlZpYTJHcmlkID0gKHZpYTJHcmlkIC8gMi4wKSkgKHgxQ29vcmQgPSAoeDFDb29yZCArICgtIGxheWVyMlhFbmNWaWEyKSArICgodmlhMVdpZHRoIC0gdmlhMldpZHRoKSAvIDIuMCkpKSB3aGVuKG9kZHAoZml4KCgwLjk5ICsgKHgxQ29vcmQgLyBoYWxmVmlhMkdyaWQpKSkpICh4MUNvb3JkID0gKGhhbGZWaWEyR3JpZCAqIGZpeCgoMS45OSArICh4MUNvb3JkIC8gaGFsZlZpYTJHcmlkKSkpKSkpKSAodCAoeDFDb29yZCA9ICh4MUNvb3JkIC0gbGF5ZXIyWEVuY1ZpYTIpKSkpICh4MkNvb3JkID0gKHgxQ29vcmQgKyBsYXllcjJMZW4pKSBpZihlbXVsYXRlU2xvdFZpYSB0aGVuICh5MUNvb3JkID0gKGRpZmZZRW5jVmlhMSAtIGxheWVyMllFbmNWaWExKSkgKHkyQ29vcmQgPSAoKHcgLSBkaWZmWUVuY1ZpYTEpICsgbGF5ZXIyWUVuY1ZpYTEpKSBlbHNlIGlmKGNlbnRlclZpYTEgdGhlbiAoeTFDb29yZCA9ICh5MUNvb3JkIC0gbGF5ZXIyWUVuY1ZpYTEpKSBlbHNlICh5MUNvb3JkID0gKGRpZmZZRW5jVmlhMSAtIGxheWVyMllFbmNWaWExKSkpICh5MkNvb3JkID0gKHkxQ29vcmQgKyBsYXllcjJXaWQpKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKHgyQ29vcmQ6eTJDb29yZCkpKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJiQm94TGF5ZXIyIiAibGlzdCIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoeDJDb29yZDp5MkNvb3JkKSkpIChkYkNyZWF0ZVBpbiBuZXRJZCBkYmlkKSAodmlhMlBpdGNoID0gKHZpYTJXaWR0aCArIHZpYTJTcGFjZSkpICh2aWEyTG93ZXJYID0gKHgxQ29vcmQgKyBsYXllcjJYRW5jVmlhMikpICh4MUNvb3JkID0gdmlhMkxvd2VyWCkgKHgyQ29vcmQgPSAoeDFDb29yZCArIHZpYTJXaWR0aCkpIGlmKGVtdWxhdGVTbG90VmlhIHRoZW4gKHZpYTJSb3cgPSAoZmxvb3IgKHcgLyB2aWEyUGl0Y2gpKSkgaWYoKHZpYTJSb3cgPT0gMCkgKHZpYTJSb3cgPSAxKSkgKHZpYTJZb2Zmc2V0ID0gKCh3IC0gKCh2aWEyUm93ICogdmlhMlBpdGNoKSAtIHZpYTJTcGFjZSkpIC8gMikpICh2aWEyTG93ZXJZID0gKGZpeCgoKHZpYTJZb2Zmc2V0IC8gc25hcEdyaWQpICsgMWUtMDYpKSAqIHNuYXBHcmlkKSkgKHRoZVkgPSB2aWEyTG93ZXJZKSBmb3IociAxIHZpYTJSb3cgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHgxQ29vcmQ6dGhlWSkgKHgyQ29vcmQ6KHRoZVkgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldElkKSAodGhlWSA9ICh0aGVZICsgdmlhMlBpdGNoKSkpICh5MkNvb3JkID0gKHRoZVkgLSB2aWEyU3BhY2UpKSBlbHNlICh2aWEyTG93ZXJZID0gKHkxQ29vcmQgKyBsYXllcjJZRW5jVmlhMikpICh5MUNvb3JkID0gdmlhMkxvd2VyWSkgKHlOb3RDb3ZlcmVkID0gKGxheWVyMldpZCAtICgyLjAgKiBsYXllcjJZRW5jVmlhMikpKSB3aGlsZSgoKHlOb3RDb3ZlcmVkIC0gdmlhMldpZHRoKSA+IC0xZS0wNikgKHkyQ29vcmQgPSAoeTFDb29yZCArIHZpYTJXaWR0aCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICh4MkNvb3JkOnkyQ29vcmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0SWQpICh5MUNvb3JkID0gKHkxQ29vcmQgKyB2aWEyUGl0Y2gpKSAoeU5vdENvdmVyZWQgPSAoeU5vdENvdmVyZWQgLSB2aWEyUGl0Y2gpKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYkJveFZpYTIiICJsaXN0IiBsaXN0KCh2aWEyTG93ZXJYOnZpYTJMb3dlclkpICh4MkNvb3JkOnkyQ29vcmQpKSkgKGxheWVyM0xlbiA9IG1heChsYXllcjNXaWR0aCAodmlhMldpZHRoICsgbGF5ZXIzUkVuY1ZpYTIgKyBsYXllcjNMRW5jVmlhMikpKSAobGF5ZXIzV2lkID0gbWF4KGxheWVyM1dpZHRoICgoeTJDb29yZCArIGxheWVyM1lFbmNWaWEyKSAtICh2aWEyTG93ZXJZIC0gbGF5ZXIzWUVuY1ZpYTIpKSkpICh4MUNvb3JkID0gKHgxQ29vcmQgLSBsYXllcjNMRW5jVmlhMikpICh4MkNvb3JkID0gKHgxQ29vcmQgKyBsYXllcjNMZW4pKSAoeTFDb29yZCA9ICh2aWEyTG93ZXJZIC0gbGF5ZXIzWUVuY1ZpYTIpKSAoeTJDb29yZCA9ICh5MUNvb3JkICsgbGF5ZXIzV2lkKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKHgyQ29vcmQ6eTJDb29yZCkpKSkgKGRiQ3JlYXRlUGluIG5ldElkIGRiaWQpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjMpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAiSUxMaXN0IiBsaXN0KGxpc3QoeDFDb29yZCB5MUNvb3JkKSBsaXN0KHgyQ29vcmQgeTJDb29yZCkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJCb3hMYXllcjMiICJJTExpc3QiIGxpc3QobGlzdCh4MUNvb3JkIHkxQ29vcmQpIGxpc3QoeDJDb29yZCB5MkNvb3JkKSkpKQAoZGlmZkxheWVyIGxheWVyMiBsYXllcjMgbWF4dkxheWVyIHZpYTFMYXllciB2aWExV2lkdGggdmlhMVNwYWNlIHZpYTJMYXllciB2aWEyV2lkdGggdmlhMlNwYWNlIGRpZmZSRW5jVmlhMSBkaWZmTEVuY1ZpYTEgZGlmZllFbmNWaWExIGxheWVyMlhFbmNWaWExIGxheWVyMllFbmNWaWExIGxheWVyMlhFbmNWaWEyIGxheWVyMllFbmNWaWEyIGxheWVyM1JFbmNWaWEyIGxheWVyM0xFbmNWaWEyIGxheWVyM1lFbmNWaWEyIGxheWVyMldpZHRoIGxheWVyM1dpZHRoIGNlbnRlclZpYTIgdmlhMkdyaWQgZGlmZkltcGxhbnQgZGlmZkltcFhMRW5jIGRpZmZJbXBYUkVuYyBkaWZmSW1wWUVuYyBkaWZmQ29yZUltcGxhbnQgZGlmZkNvcmVJbXBYTEVuYyBkaWZmQ29yZUltcFhSRW5jIGRpZmZDb3JlSW1wWUVuYyB3ZWxsTGF5ZXIgd2VsbExheWVyRW5jIGVtdWxhdGVTbG90VmlhIGNlbnRlclZpYTEgc25hcEdyaWQgdyBpbldlbGwgaW1wbGFudCBuZXRJZCBkaWZmTGVuIGRiaWQgeDFDb29yZCB5MUNvb3JkIHgyQ29vcmQgdmlhMVBpdGNoIHZpYTFEcmF3U3BhY2VZIHZpYTFSb3cgdmlhMVlvZmZzZXQgdGhlWSByIGRiSWQgeTJDb29yZCB5Tm90Q292ZXJlZCBsYXllcjJMZW4gbnVtVmlhMiBsYXllcjJXaWQgaGFsZlZpYTJHcmlkIHZpYTJQaXRjaCB2aWEyTG93ZXJYIHZpYTJSb3cgdmlhMllvZmZzZXQgdmlhMkxvd2VyWSBsYXllcjNMZW4gbGF5ZXIzV2lkKQAoKHcgMC4wKSAoaW5XZWxsICJGQUxTRSIpIChpbXBsYW50ICJGQUxTRSIpKQAoKGRpZmZMYXllciAiaGlsaXRlIikgKGxheWVyMiAicHJCb3VuZGFyeSIpIChsYXllcjMgImhpbGl0ZSIpIChtYXh2TGF5ZXIgbmlsKSAodmlhMUxheWVyICJ0ZXh0IikgKHZpYTFXaWR0aCAwLjApICh2aWExU3BhY2UgMC4wKSAodmlhMkxheWVyICJ0ZXh0IikgKHZpYTJXaWR0aCAwLjApICh2aWEyU3BhY2UgMC4wKSAoZGlmZlJFbmNWaWExIDAuMCkgKGRpZmZMRW5jVmlhMSAwLjApIChkaWZmWUVuY1ZpYTEgMC4wKSAobGF5ZXIyWEVuY1ZpYTEgMC4wKSAobGF5ZXIyWUVuY1ZpYTEgMC4wKSAobGF5ZXIyWEVuY1ZpYTIgMC4wKSAobGF5ZXIyWUVuY1ZpYTIgMC4wKSAobGF5ZXIzUkVuY1ZpYTIgMC4wKSAobGF5ZXIzTEVuY1ZpYTIgMC4wKSAobGF5ZXIzWUVuY1ZpYTIgMC4wKSAobGF5ZXIyV2lkdGggMC4wKSAobGF5ZXIzV2lkdGggMC4wKSAoY2VudGVyVmlhMiAiRkFMU0UiKSAodmlhMkdyaWQgMC4wKSAoZGlmZkltcGxhbnQgbmlsKSAoZGlmZkltcFhMRW5jIGxpc3QoMC4wIDAuMCkpIChkaWZmSW1wWFJFbmMgbGlzdCgwLjAgMC4wKSkgKGRpZmZJbXBZRW5jIGxpc3QoMC4wIDAuMCkpIChkaWZmQ29yZUltcGxhbnQgbmlsKSAoZGlmZkNvcmVJbXBYTEVuYyBsaXN0KDAuMCAwLjApKSAoZGlmZkNvcmVJbXBYUkVuYyBsaXN0KDAuMCAwLjApKSAoZGlmZkNvcmVJbXBZRW5jIGxpc3QoMC4wIDAuMCkpICh3ZWxsTGF5ZXIgbmlsKSAod2VsbExheWVyRW5jIDAuMCkgKGVtdWxhdGVTbG90VmlhIG5pbCkgKGNlbnRlclZpYTEgbmlsKSAoc25hcEdyaWQgKFRFQ0hnZXRQcm9wIHNuYXBHcmlkKSkpAChpZigoKGltcGxhbnQgPT0gdCkgfHwgKGltcGxhbnQgPT0gIlRSVUUiKSkgdGhlbiAoaW1wbGFudCA9IHQpIGVsc2UgKGltcGxhbnQgPSBuaWwpKSBpZigoKGluV2VsbCA9PSB0KSB8fCAoaW5XZWxsID09ICJUUlVFIikpIHRoZW4gKGluV2VsbCA9IHQpIGVsc2UgKGluV2VsbCA9IG5pbCkpIHdoZW4oc3RyaW5ncChkaWZmTGF5ZXIpIChkaWZmTGF5ZXIgPSBsaXN0KGRpZmZMYXllciAiZHJhd2luZyIpKSkgd2hlbihzdHJpbmdwKG1heHZMYXllcikgKG1heHZMYXllciA9IGxpc3QobWF4dkxheWVyICJkcmF3aW5nIikpKSB3aGVuKHN0cmluZ3AodmlhTGF5ZXIpICh2aWFMYXllciA9IGxpc3QodmlhTGF5ZXIgImRyYXdpbmciKSkpIHdoZW4oc3RyaW5ncChsYXllcjIpIChsYXllcjIgPSBsaXN0KGxheWVyMiAiZHJhd2luZyIpKSkgd2hlbihpbXBsYW50IHdoZW4oZGlmZkltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGRpZmZJbXBsYW50ID0gY2FkcihkaWZmSW1wbGFudCkpIChkaWZmSW1wWExFbmMgPSBjYWRyKGRpZmZJbXBYTEVuYykpIChkaWZmSW1wWFJFbmMgPSBjYWRyKGRpZmZJbXBYUkVuYykpIChkaWZmSW1wWUVuYyA9IGNhZHIoZGlmZkltcFlFbmMpKSBlbHNlIChkaWZmSW1wbGFudCA9IGNhcihkaWZmSW1wbGFudCkpIChkaWZmSW1wWExFbmMgPSBjYXIoZGlmZkltcFhMRW5jKSkgKGRpZmZJbXBYUkVuYyA9IGNhcihkaWZmSW1wWFJFbmMpKSAoZGlmZkltcFlFbmMgPSBjYXIoZGlmZkltcFlFbmMpKSkpIHdoZW4oZGlmZkNvcmVJbXBsYW50IGlmKGluV2VsbCB0aGVuIChkaWZmQ29yZUltcGxhbnQgPSBjYWRyKGRpZmZDb3JlSW1wbGFudCkpIChkaWZmQ29yZUltcFhMRW5jID0gY2FkcihkaWZmQ29yZUltcFhMRW5jKSkgKGRpZmZDb3JlSW1wWFJFbmMgPSBjYWRyKGRpZmZDb3JlSW1wWFJFbmMpKSAoZGlmZkNvcmVJbXBZRW5jID0gY2FkcihkaWZmQ29yZUltcFlFbmMpKSBlbHNlIChkaWZmQ29yZUltcGxhbnQgPSBjYXIoZGlmZkNvcmVJbXBsYW50KSkgKGRpZmZDb3JlSW1wWExFbmMgPSBjYXIoZGlmZkNvcmVJbXBYTEVuYykpIChkaWZmQ29yZUltcFhSRW5jID0gY2FyKGRpZmZDb3JlSW1wWFJFbmMpKSAoZGlmZkNvcmVJbXBZRW5jID0gY2FyKGRpZmZDb3JlSW1wWUVuYykpKSkpIHdoZW4oaW1wbGFudCB3aGVuKGRpZmZJbXBFbmNMaXN0IGlmKGluV2VsbCB0aGVuIChlbmNMaXN0ID0gY2FkcihudGgoZGlmZkltcENob2ljZSBkaWZmSW1wRW5jTGlzdCkpKSBlbHNlIChlbmNMaXN0ID0gY2FyKG50aChkaWZmSW1wQ2hvaWNlIGRpZmZJbXBFbmNMaXN0KSkpKSAoZGlmZkltcFhMRW5jID0gbnRoKDAgZW5jTGlzdCkpIChkaWZmSW1wWFJFbmMgPSBudGgoMSBlbmNMaXN0KSkgKGRpZmZJbXBZRW5jID0gbnRoKDIgZW5jTGlzdCkpKSkgKG5ldElkID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgInBkZCIpKSAoZGlmZkxlbiA9ICh2aWFXaWR0aCArIGRpZmZMRW5jICsgZGlmZlJFbmMpKSB3aGVuKCgoKHZpYVdpZHRoICsgKDIuMCAqIGRpZmZZRW5jKSkgLSB3KSA+IDFlLTA2KSBlcnJvcihzcHJpbnRmKG5pbCAiU3BlY2lmaWVkIHdpZHRoICVMIGlzIGxlc3MgdGhhbiBuZWVkZWQgJUxcbiIgdyAodmlhV2lkdGggKyAoMi4wICogZGlmZllFbmMpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoMDowKSAoZGlmZkxlbjp3KSkpKSAoZGJDcmVhdGVQaW4gbmV0SWQgZGJpZCkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJkaWZmTGF5ZXIiICJJTExpc3QiIGRpZmZMYXllcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJkaWZmTGF5ZXJCYm94IiAiSUxMaXN0IiBsaXN0KGxpc3QoMC4wIDAuMCkgbGlzdChkaWZmTGVuIHcpKSkgd2hlbihtYXh2TGF5ZXIgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IG1heHZMYXllciBsaXN0KCgwOjApIChkaWZmTGVuOncpKSkpIHdoZW4oaW1wbGFudCB3aGVuKGRpZmZJbXBsYW50IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKC0gZGlmZkltcFhMRW5jKSAoLSBkaWZmSW1wWUVuYykpIGxpc3QoKGRpZmZMZW4gKyBkaWZmSW1wWFJFbmMpICh3ICsgZGlmZkltcFlFbmMpKSkpKSB3aGVuKGRpZmZDb3JlSW1wbGFudCAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoLSBkaWZmQ29yZUltcFhMRW5jKSAoLSBkaWZmQ29yZUltcFlFbmMpKSBsaXN0KChkaWZmTGVuICsgZGlmZkNvcmVJbXBYUkVuYykgKHcgKyBkaWZmQ29yZUltcFlFbmMpKSkpKSB3aGVuKChpbldlbGwgJiYgd2VsbExheWVyKSAod2VsbExheWVyX1hvcmlnaW4gPSAoLSB3ZWxsTGF5ZXJFbmMpKSAod2VsbExheWVyX1lvcmlnaW4gPSAoLSB3ZWxsTGF5ZXJFbmMpKSAod2VsbExheWVyX1hlbmQgPSAoZGlmZkxlbiArIHdlbGxMYXllckVuYykpICh3ZWxsTGF5ZXJfWWVuZCA9ICh3ICsgd2VsbExheWVyRW5jKSkgd2hlbigoKHdlbGxMYXllcl9YZW5kIC0gd2VsbExheWVyX1hvcmlnaW4pIDwgd2VsbG1pbldpZHRoKSAoRGlmZl93ZWxsX3dpZHRoID0gKHdlbGxtaW5XaWR0aCAtICh3ZWxsTGF5ZXJfWGVuZCAtIHdlbGxMYXllcl9Yb3JpZ2luKSkpICh3ZWxsTGF5ZXJfWGVuZCA9ICh3ZWxsTGF5ZXJfWGVuZCArIChEaWZmX3dlbGxfd2lkdGggLyAyKSkpICh3ZWxsTGF5ZXJfWG9yaWdpbiA9ICh3ZWxsTGF5ZXJfWG9yaWdpbiAtIChEaWZmX3dlbGxfd2lkdGggLyAyKSkpKSB3aGVuKCgod2VsbExheWVyX1llbmQgLSB3ZWxsTGF5ZXJfWW9yaWdpbikgPCB3ZWxsbWluV2lkdGgpIChEaWZmX3dlbGxfd2lkdGggPSAod2VsbG1pbldpZHRoIC0gKHdlbGxMYXllcl9ZZW5kIC0gd2VsbExheWVyX1lvcmlnaW4pKSkgKHdlbGxMYXllcl9ZZW5kID0gKHdlbGxMYXllcl9ZZW5kICsgKERpZmZfd2VsbF93aWR0aCAvIDIpKSkgKHdlbGxMYXllcl9Zb3JpZ2luID0gKHdlbGxMYXllcl9Zb3JpZ2luIC0gKERpZmZfd2VsbF93aWR0aCAvIDIpKSkpICh3ZWxsTGF5ZXJfYkJveCA9IGxpc3QoKHdlbGxMYXllcl9Yb3JpZ2luOndlbGxMYXllcl9Zb3JpZ2luKSAod2VsbExheWVyX1hlbmQ6d2VsbExheWVyX1llbmQpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciB3ZWxsTGF5ZXJfYkJveCkpKSAoeDFDb29yZCA9IGRpZmZMRW5jKSAoeDJDb29yZCA9IChkaWZmTEVuYyArIHZpYVdpZHRoKSkgKHZpYVBpdGNoID0gKHZpYVdpZHRoICsgdmlhU3BhY2UpKSBpZihjZW50ZXJWaWExIHRoZW4gKHZpYURyYXdTcGFjZVkgPSAodyAtIChkaWZmWUVuYyAqIDIpKSkgKHZpYVJvdyA9IChmbG9vciAoKHZpYURyYXdTcGFjZVkgKyB2aWFTcGFjZSkgLyB2aWFQaXRjaCkpKSBpZigodmlhUm93ID09IDApICh2aWFSb3cgPSAxKSkgKHZpYVlvZmZzZXQgPSAoKHZpYURyYXdTcGFjZVkgLSAoKHZpYVJvdyAqIHZpYVBpdGNoKSAtIHZpYVNwYWNlKSkgLyAyKSkgKHkxQ29vcmQgPSAoZGlmZllFbmMgKyAoZml4KCgodmlhWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpKSAodGhlWSA9IHkxQ29vcmQpIGZvcihyIDEgdmlhUm93IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYUxheWVyIGxpc3QoKHgxQ29vcmQ6dGhlWSkgKHgyQ29vcmQ6KHRoZVkgKyB2aWFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0SWQpICh0aGVZID0gKHRoZVkgKyB2aWFQaXRjaCkpKSAoeTJDb29yZCA9ICh0aGVZIC0gdmlhU3BhY2UpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJCb3hWaWExIiAibGlzdCIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoeDJDb29yZDp5MkNvb3JkKSkpIGVsc2UgKHkxQ29vcmQgPSBkaWZmWUVuYykgKHlOb3RDb3ZlcmVkID0gKHcgLSAoMi4wICogZGlmZllFbmMpKSkgd2hpbGUoKCh5Tm90Q292ZXJlZCAtIHZpYVdpZHRoKSA+IC0xZS0wNikgKHkyQ29vcmQgPSAoeTFDb29yZCArIHZpYVdpZHRoKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoeDJDb29yZDp5MkNvb3JkKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldElkKSAoeTFDb29yZCA9ICh5MUNvb3JkICsgdmlhUGl0Y2gpKSAoeU5vdENvdmVyZWQgPSAoeU5vdENvdmVyZWQgLSB2aWFQaXRjaCkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJCb3hWaWExIiAibGlzdCIgbGlzdCgoeDFDb29yZDpkaWZmWUVuYykgKHgyQ29vcmQ6eTJDb29yZCkpKSkgKGxheWVyMkxlbiA9IG1heChsYXllcjJXaWR0aCAodmlhV2lkdGggKyBsYXllcjJSRW5jICsgbGF5ZXIyTEVuYykpKSBpZihjZW50ZXJMYXllcjIgdGhlbiAobGF5ZXIybG93ZXJZID0gKHkxQ29vcmQgLSBsYXllcjJZRW5jKSkgZWxzZSAobGF5ZXIybG93ZXJZID0gKGRpZmZZRW5jIC0gbGF5ZXIyWUVuYykpKSAobGF5ZXIyV2lkID0gbWF4KGxheWVyMldpZHRoICgoeTJDb29yZCArIGxheWVyMllFbmMpIC0gbGF5ZXIybG93ZXJZKSkpICh4MUNvb3JkID0gKHgxQ29vcmQgLSBsYXllcjJMRW5jKSkgKHgyQ29vcmQgPSAoeDFDb29yZCArIGxheWVyMkxlbikpIGlmKGVtdWxhdGVTbG90VmlhIHRoZW4gKHkxQ29vcmQgPSAoZGlmZllFbmMgLSBsYXllcjJZRW5jKSkgKHkyQ29vcmQgPSAoKHcgLSBkaWZmWUVuYykgKyBsYXllcjJZRW5jKSkgZWxzZSBpZihjZW50ZXJWaWExIHRoZW4gKHkxQ29vcmQgPSAoeTFDb29yZCAtIGxheWVyMllFbmMpKSBlbHNlICh5MUNvb3JkID0gKGRpZmZZRW5jIC0gbGF5ZXIyWUVuYykpKSAoeTJDb29yZCA9ICh5MUNvb3JkICsgbGF5ZXIyV2lkKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICh4MkNvb3JkOnkyQ29vcmQpKSkpIChkYkNyZWF0ZVBpbiBuZXRJZCBkYmlkKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyIiAiSUxMaXN0IiBsYXllcjIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAiSUxMaXN0IiBsaXN0KGxpc3QoeDFDb29yZCB5MUNvb3JkKSBsaXN0KHgyQ29vcmQgeTJDb29yZCkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJCb3hMYXllcjIiICJJTExpc3QiIGxpc3QobGlzdCh4MUNvb3JkIHkxQ29vcmQpIGxpc3QoeDJDb29yZCB5MkNvb3JkKSkpKQAoZGlmZkxheWVyIGxheWVyMiBtYXh2TGF5ZXIgdmlhTGF5ZXIgdmlhV2lkdGggdmlhU3BhY2UgZGlmZlJFbmMgZGlmZkxFbmMgZGlmZllFbmMgbGF5ZXIyUkVuYyBsYXllcjJMRW5jIGxheWVyMllFbmMgbGF5ZXIyV2lkdGggZGlmZkltcGxhbnQgZGlmZkltcFhMRW5jIGRpZmZJbXBYUkVuYyBkaWZmSW1wWUVuYyBkaWZmQ29yZUltcGxhbnQgZGlmZkNvcmVJbXBYTEVuYyBkaWZmQ29yZUltcFhSRW5jIGRpZmZDb3JlSW1wWUVuYyBkaWZmSW1wRW5jTGlzdCB3ZWxsTGF5ZXIgd2VsbG1pbldpZHRoIHdlbGxMYXllckVuYyBlbXVsYXRlU2xvdFZpYSBjZW50ZXJWaWExIGNlbnRlckxheWVyMiBzbmFwR3JpZCB3IGluV2VsbCBpbXBsYW50IGRpZmZJbXBDaG9pY2UgZW5jTGlzdCBuZXRJZCBkaWZmTGVuIGRiaWQgd2VsbExheWVyX1hvcmlnaW4gd2VsbExheWVyX1lvcmlnaW4gd2VsbExheWVyX1hlbmQgd2VsbExheWVyX1llbmQgRGlmZl93ZWxsX3dpZHRoIHdlbGxMYXllcl9iQm94IHgxQ29vcmQgeDJDb29yZCB2aWFQaXRjaCB2aWFEcmF3U3BhY2VZIHZpYVJvdyB2aWFZb2Zmc2V0IHkxQ29vcmQgdGhlWSByIGRiSWQgeTJDb29yZCB5Tm90Q292ZXJlZCBsYXllcjJMZW4gbGF5ZXIybG93ZXJZIGxheWVyMldpZCkAKCh3IDAuMCkgKGluV2VsbCAiRkFMU0UiKSAoaW1wbGFudCAiRkFMU0UiKSAoZGlmZkltcENob2ljZSAwKSkAKChkaWZmTGF5ZXIgImhpbGl0ZSIpIChsYXllcjIgInByQm91bmRhcnkiKSAobWF4dkxheWVyIG5pbCkgKHZpYUxheWVyIG5pbCkgKHZpYVdpZHRoIDAuMCkgKHZpYVNwYWNlIDAuMCkgKGRpZmZSRW5jIDAuMCkgKGRpZmZMRW5jIDAuMCkgKGRpZmZZRW5jIDAuMCkgKGxheWVyMlJFbmMgMC4wKSAobGF5ZXIyTEVuYyAwLjApIChsYXllcjJZRW5jIDAuMCkgKGxheWVyMldpZHRoIDAuMCkgKGRpZmZJbXBsYW50IG5pbCkgKGRpZmZJbXBYTEVuYyBsaXN0KDAuMCAwLjApKSAoZGlmZkltcFhSRW5jIGxpc3QoMC4wIDAuMCkpIChkaWZmSW1wWUVuYyBsaXN0KDAuMCAwLjApKSAoZGlmZkNvcmVJbXBsYW50IG5pbCkgKGRpZmZDb3JlSW1wWExFbmMgbGlzdCgwLjAgMC4wKSkgKGRpZmZDb3JlSW1wWFJFbmMgbGlzdCgwLjAgMC4wKSkgKGRpZmZDb3JlSW1wWUVuYyBsaXN0KDAuMCAwLjApKSAoZGlmZkltcEVuY0xpc3QgbmlsKSAod2VsbExheWVyIG5pbCkgKHdlbGxtaW5XaWR0aCAwLjApICh3ZWxsTGF5ZXJFbmMgMC4wKSAoZW11bGF0ZVNsb3RWaWEgbmlsKSAoY2VudGVyVmlhMSBuaWwpIChjZW50ZXJMYXllcjIgbmlsKSAoc25hcEdyaWQgKFRFQ0hnZXRQcm9wIHNuYXBHcmlkKSkpACgoZXh0cmFMTGN1dF9vcmlnID0gZXh0cmFMTGN1dCkgKGV4dHJhVUxjdXRfb3JpZyA9IGV4dHJhVUxjdXQpIChleHRyYUxSY3V0X29yaWcgPSBleHRyYUxSY3V0KSAoZXh0cmFVUmN1dF9vcmlnID0gZXh0cmFVUmN1dCkgKGRidXBlcnV1ID0gKHRjQ2VsbFZpZXd+PkRCVVBlclVVKSkgKGdyaWQgPSBmaXgoKGRidXBlcnV1ICogc2VhbHJpbmdHcmlkKSkpIChzMiA9IHNxcnQoMi4wKSkgZm9yZWFjaChwYXJhbSAnKHNlYWxyaW5nSWRXaWR0aCBwYWRFbmNOaWtvbiBwYWRFbmNOaWtvbkluc2lkZSB3IGwgZXh0cmFMTGN1dCBleHRyYVVMY3V0IGV4dHJhTFJjdXQgZXh0cmFVUmN1dCBwYWRHcmlkKSBzZXQocGFyYW0gZml4KChkYnVwZXJ1dSAqIGV2YWwocGFyYW0pKSkpIHVubGVzcyh6ZXJvcChtb2QoZXZhbChwYXJhbSkgZ3JpZCkpIHNldChwYXJhbSAoKChldmFsKHBhcmFtKSArIGdyaWQpIC8gZ3JpZCkgKiBncmlkKSkpKSAobmV0ID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJwcGQiKSkgKG1pblNlYWxSaW5nSWRXaWR0aCA9IDApIChyaW5nSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZ2VuZXJpY1JpbmdOYW1lICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MocmluZ0lkIGVycm9yKCJkaWVTZWFsUmluZ0NsYXNzOiAgQ2Fubm90IGZpbmQvb3BlbiBnZW5lcmljIHJpbmcgJXNcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgdW5sZXNzKChyaW5nSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigiZGllU2VhbFJpbmdDbGFzczogIFJpbmcgJXMgaXMgbm90IGEgcGNlbGxcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgd2hlbigoZ2VuZXJpY1JpdmV0UmluZ05hbWUgIT0gIiIpIChyaXZldFJpbmdJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBnZW5lcmljUml2ZXRSaW5nTmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHJpdmV0UmluZ0lkIGVycm9yKCJkaWVTZWFsUmluZ0NsYXNzOiAgQ2Fubm90IGZpbmQvb3BlbiBnZW5lcmljIHJpdmV0IHJpbmcgJXNcbiIgZ2VuZXJpY1JpdmV0UmluZ05hbWUpKSB1bmxlc3MoKHJpdmV0UmluZ0lkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoImRpZVNlYWxSaW5nQ2xhc3M6ICBSaXZldCByaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIGdlbmVyaWNSaXZldFJpbmdOYW1lKSkpIChuaWtvbklkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIG5pa29uQ3Jvc3NOYW1lICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3Mobmlrb25JZCBlcnJvcigiZGllU2VhbFJpbmdDbGFzczogIENhbm5vdCBmaW5kL29wZW4gbmlrb24gY3Jvc3MgJXNcbiIgbmlrb25Dcm9zc05hbWUpKSB1bmxlc3MoKG5pa29uSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigiZGllU2VhbFJpbmdDbGFzczogIE5pa29uIGNyb3NzICVzIGlzIG5vdCBhIHBjZWxsXG4iIG5pa29uQ3Jvc3NOYW1lKSkgZm9yZWFjaChsYXllciByaW5nTGF5ZXJzICh0aGlzTHBwID0gY2FyKGxheWVyKSkgKHNwYWNpbmcgPSBmaXgoKGRidXBlcnV1ICogY2FkcihsYXllcikpKSkgKHJpbmdXaWR0aCA9IGZpeCgoZGJ1cGVydXUgKiBjYWRkcihsYXllcikpKSkgKG1ha2VQaW4gPSBudGgoMyBsYXllcikpIChsYXlHcmlkID0gZml4KChkYnVwZXJ1dSAqIG50aCg0IGxheWVyKSkpKSAoaW50UmluZ0xheWVycyA9IGNvbnMobGlzdCh0aGlzTHBwIHNwYWNpbmcgcmluZ1dpZHRoIG1ha2VQaW4gbGF5R3JpZCkgaW50UmluZ0xheWVycykpIHdoZW4oKG1pblNlYWxSaW5nSWRXaWR0aCA8IChzcGFjaW5nICsgcmluZ1dpZHRoKSkgKG1pblNlYWxSaW5nSWRXaWR0aCA9IChzcGFjaW5nICsgcmluZ1dpZHRoKSkpKSAoc2VhbHJpbmdJZFdpZHRoID0gbWF4KHNlYWxyaW5nSWRXaWR0aCBtaW5TZWFsUmluZ0lkV2lkdGgpKSAodyA9ICh3ICsgKDIgKiBzZWFscmluZ0lkV2lkdGgpKSkgKGwgPSAobCArICgyICogc2VhbHJpbmdJZFdpZHRoKSkpIChsZW4gPSAobCAvIGRidXBlcnV1KSkgKHdpZCA9ICh3IC8gZGJ1cGVydXUpKSAoc21hbGxkaWUgPSBuaWwpIGlmKChsID4gdykgdGhlbiAoYXIgPSAobGVuIC8gd2lkKSkgaWYoKGxlbiA8IChjcml0aWNhbEwgLyBzY2FsZUYpKSB0aGVuIChzbWFsbGRpZSA9IHQpKSBlbHNlIChhciA9ICh3aWQgLyBsZW4pKSBpZigod2lkIDwgKGNyaXRpY2FsTCAvIHNjYWxlRikpIHRoZW4gKHNtYWxsZGllID0gdCkpKSBpZihzbWFsbGRpZSB0aGVuIChyZCA9IChkZWZSZCAvIHNjYWxlRikpIChyYyA9IChkZWZSYyAvIHNjYWxlRikpIChkID0gKGRlZkQgLyBzY2FsZUYpKSBlbHNlIChyZCA9ICgoKCg2LjQzIC0gKDEuMjggKiBhcikpICsgKDAuNjkgKiBhciAqIGFyKSkgKiAyNS40KSAvIHNjYWxlRikpIChyYyA9ICgoKDExLjI1ICsgKDMuNDcgKiBhcikpICogMjUuNCkgLyBzY2FsZUYpKSAoZCA9ICgoKC0xLjMxICsgKDMuODcgKiBhcikpICogMjUuNCkgLyBzY2FsZUYpKSkgaWYoKHJkTGF5ZXIgJiYgKHJkID4gMCkpIHRoZW4gKGRiQ3JlYXRlRWxsaXBzZSB0Y0NlbGxWaWV3IHJkTGF5ZXIgbGlzdCgoKC0gcmQpOigtIHJkKSkgKHJkOnJkKSkpIChkYkNyZWF0ZUVsbGlwc2UgdGNDZWxsVmlldyByZExheWVyIGxpc3QoKCgtIHJkKTood2lkIC0gcmQpKSAocmQ6KHdpZCArIHJkKSkpKSAoZGJDcmVhdGVFbGxpcHNlIHRjQ2VsbFZpZXcgcmRMYXllciBsaXN0KCgobGVuIC0gcmQpOigtIHJkKSkgKChsZW4gKyByZCk6cmQpKSkgKGRiQ3JlYXRlRWxsaXBzZSB0Y0NlbGxWaWV3IHJkTGF5ZXIgbGlzdCgoKGxlbiAtIHJkKTood2lkIC0gcmQpKSAoKGxlbiArIHJkKTood2lkICsgcmQpKSkpKSBpZihyY0xheWVyIHRoZW4gKGRiQ3JlYXRlRWxsaXBzZSB0Y0NlbGxWaWV3IHJjTGF5ZXIgbGlzdCgoKC0gcmMpOigtIHJjKSkgKHJjOnJjKSkpIChkYkNyZWF0ZUVsbGlwc2UgdGNDZWxsVmlldyByY0xheWVyIGxpc3QoKCgtIHJjKTood2lkIC0gcmMpKSAocmM6KHdpZCArIHJjKSkpKSAoZGJDcmVhdGVFbGxpcHNlIHRjQ2VsbFZpZXcgcmNMYXllciBsaXN0KCgobGVuIC0gcmMpOigtIHJjKSkgKChsZW4gKyByYyk6cmMpKSkgKGRiQ3JlYXRlRWxsaXBzZSB0Y0NlbGxWaWV3IHJjTGF5ZXIgbGlzdCgoKGxlbiAtIHJjKTood2lkIC0gcmMpKSAoKGxlbiArIHJjKTood2lkICsgcmMpKSkpKSBpZihkTGF5ZXIgdGhlbiAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZExheWVyIGxpc3QoKDA6MCkgKGQ6d2lkKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkTGF5ZXIgbGlzdCgoMDowKSAobGVuOmQpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRMYXllciBsaXN0KCgwOih3aWQgLSBkKSkgKGxlbjp3aWQpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRMYXllciBsaXN0KCgobGVuIC0gZCk6MCkgKGxlbjp3aWQpKSkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbmlrb25JZCAibGxOaWtvbiIgKChwYWRFbmNOaWtvbiAvIGRidXBlcnV1KToocGFkRW5jTmlrb24gLyBkYnVwZXJ1dSkpICJSMCIgMSBuaWwpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChjdXRQb2ludHMgPSBuaWwpIGZvcmVhY2gocG9pbnQgKHRoZU1hc3Rlcn4+b3V0bGluZVBvaW50cykgKGN1dFBvaW50cyA9IGNvbnMoKChwYWRFbmNOaWtvbiArIGZpeCgoZGJ1cGVydXUgKiBjYXIocG9pbnQpKSkpOihwYWRFbmNOaWtvbiArIGZpeCgoZGJ1cGVydXUgKiBjYWRyKHBvaW50KSkpKSkgY3V0UG9pbnRzKSkpIHdoZW4oemVyb3AocGFkRW5jTmlrb25JbnNpZGUpIChwYWRFbmNOaWtvbkluc2lkZSA9IHBhZEVuY05pa29uKSkgKGNvcm5lckN1dCA9IGZpeCgoKDIuMCAqIHBhZEVuY05pa29uKSArIChzMiAqIHBhZEVuY05pa29uSW5zaWRlKSArIChkYnVwZXJ1dSAqIGNhcihudGgoMyAodGhlTWFzdGVyfj5vdXRsaW5lUG9pbnRzKSkpKSArIChkYnVwZXJ1dSAqIGNhcihudGgoMiAodGhlTWFzdGVyfj5vdXRsaW5lUG9pbnRzKSkpKSkpKSB1bmxlc3MoemVyb3AobW9kKGNvcm5lckN1dCBwYWRHcmlkKSkgKGNvcm5lckN1dCA9ICgoKGNvcm5lckN1dCArIHBhZEdyaWQpIC8gcGFkR3JpZCkgKiBwYWRHcmlkKSkpIChiZXZlbEFkZCA9IDApIGZvcmVhY2gobGF5ZXIgaW50UmluZ0xheWVycyAoc3BhY2luZyA9IGNhZHIobGF5ZXIpKSAoYmV2ZWxMZW5ndGggPSAoY29ybmVyQ3V0ICsgKC0gc3BhY2luZykgKyBmaXgoKHNwYWNpbmcgKiAoczIgLSAxLjApKSkpKSAobWluQmV2ZWxSZXF1aXJlZCA9IChjZWlsaW5nIChjYWRkcihsYXllcikgKiAxLjApKSkgKGJldmVsQWpkdXN0ID0gKG1pbkJldmVsUmVxdWlyZWQgLSBiZXZlbExlbmd0aCkpIGlmKCgoYmV2ZWxBamR1c3QgPiAwKSAmJiAoYmV2ZWxBZGQgPD0gYmV2ZWxBamR1c3QpKSB0aGVuIChiZXZlbEFkZCA9IGJldmVsQWpkdXN0KSkpIChwYWRHcmlkRmxvYXQgPSAocGFkR3JpZCAqIDEuMCkpIChiZXZlbEFkZCA9ICgoY2VpbGluZyAoYmV2ZWxBZGQgLyBwYWRHcmlkRmxvYXQpKSAqIHBhZEdyaWQpKSAoZXh0cmFMTGN1dCA9IChleHRyYUxMY3V0ICsgYmV2ZWxBZGQpKSAoZXh0cmFVTGN1dCA9IChleHRyYVVMY3V0ICsgYmV2ZWxBZGQpKSAoZXh0cmFMUmN1dCA9IChleHRyYUxSY3V0ICsgYmV2ZWxBZGQpKSAoZXh0cmFVUmN1dCA9IChleHRyYVVSY3V0ICsgYmV2ZWxBZGQpKSAocmVhbEN1dFBvaW50cyA9IG5pbCkgZm9yZWFjaChwb2ludCBjdXRQb2ludHMgKHJlYWxDdXRQb2ludHMgPSBjb25zKCgoY2FyKHBvaW50KSAvIGRidXBlcnV1KTooY2Fkcihwb2ludCkgLyBkYnVwZXJ1dSkpIHJlYWxDdXRQb2ludHMpKSkgKHJlYWxDdXRQb2ludHMgPSByZXZlcnNlKHJlYWxDdXRQb2ludHMpKSAocGFkTGF5ZXJJZF8xID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHBhZExheWVyIGNvbnMoKDAuMDowLjApIGFwcGVuZChyZWFsQ3V0UG9pbnRzIGxpc3QoY2FyKHJlYWxDdXRQb2ludHMpICgwLjA6MC4wKSAoKChjb3JuZXJDdXQgKyBleHRyYUxMY3V0KSAvIGRidXBlcnV1KTowLjApICgwLjA6KChjb3JuZXJDdXQgKyBleHRyYUxMY3V0KSAvIGRidXBlcnV1KSkpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IG5pa29uSWQgImxyTmlrb24iICgoKGwgLSBwYWRFbmNOaWtvbikgLyBkYnVwZXJ1dSk6KHBhZEVuY05pa29uIC8gZGJ1cGVydXUpKSAiTVkiIDEgbmlsKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoY3V0UG9pbnRzID0gbmlsKSBmb3JlYWNoKHBvaW50ICh0aGVNYXN0ZXJ+Pm91dGxpbmVQb2ludHMpIChjdXRQb2ludHMgPSBjb25zKCgobCAtIHBhZEVuY05pa29uIC0gZml4KChkYnVwZXJ1dSAqIGNhcihwb2ludCkpKSk6KHBhZEVuY05pa29uICsgZml4KChkYnVwZXJ1dSAqIGNhZHIocG9pbnQpKSkpKSBjdXRQb2ludHMpKSkgKHJlYWxDdXRQb2ludHMgPSBuaWwpIGZvcmVhY2gocG9pbnQgY3V0UG9pbnRzIChyZWFsQ3V0UG9pbnRzID0gY29ucygoKGNhcihwb2ludCkgLyBkYnVwZXJ1dSk6KGNhZHIocG9pbnQpIC8gZGJ1cGVydXUpKSByZWFsQ3V0UG9pbnRzKSkpIChyZWFsQ3V0UG9pbnRzID0gcmV2ZXJzZShyZWFsQ3V0UG9pbnRzKSkgKHBhZExheWVySWRfMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBwYWRMYXllciBjb25zKCgobCAvIGRidXBlcnV1KTowLjApIGFwcGVuZChyZWFsQ3V0UG9pbnRzIGxpc3QoY2FyKHJlYWxDdXRQb2ludHMpICgobCAvIGRidXBlcnV1KTowLjApICgoKGwgLSBjb3JuZXJDdXQgLSBleHRyYUxSY3V0KSAvIGRidXBlcnV1KTowLjApICgobCAvIGRidXBlcnV1KTooKGNvcm5lckN1dCArIGV4dHJhTFJjdXQpIC8gZGJ1cGVydXUpKSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbmlrb25JZCAidXJOaWtvbiIgKCgobCAtIHBhZEVuY05pa29uKSAvIGRidXBlcnV1KTooKHcgLSBwYWRFbmNOaWtvbikgLyBkYnVwZXJ1dSkpICJSMTgwIiAxIG5pbCkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGN1dFBvaW50cyA9IG5pbCkgZm9yZWFjaChwb2ludCAodGhlTWFzdGVyfj5vdXRsaW5lUG9pbnRzKSAoY3V0UG9pbnRzID0gY29ucygoKGwgLSBwYWRFbmNOaWtvbiAtIGZpeCgoZGJ1cGVydXUgKiBjYXIocG9pbnQpKSkpOih3IC0gcGFkRW5jTmlrb24gLSBmaXgoKGRidXBlcnV1ICogY2Fkcihwb2ludCkpKSkpIGN1dFBvaW50cykpKSAocmVhbEN1dFBvaW50cyA9IG5pbCkgZm9yZWFjaChwb2ludCBjdXRQb2ludHMgKHJlYWxDdXRQb2ludHMgPSBjb25zKCgoY2FyKHBvaW50KSAvIGRidXBlcnV1KTooY2Fkcihwb2ludCkgLyBkYnVwZXJ1dSkpIHJlYWxDdXRQb2ludHMpKSkgKHJlYWxDdXRQb2ludHMgPSByZXZlcnNlKHJlYWxDdXRQb2ludHMpKSAocGFkTGF5ZXJJZF8zID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHBhZExheWVyIGNvbnMoKChsIC8gZGJ1cGVydXUpOih3IC8gZGJ1cGVydXUpKSBhcHBlbmQocmVhbEN1dFBvaW50cyBsaXN0KGNhcihyZWFsQ3V0UG9pbnRzKSAoKGwgLyBkYnVwZXJ1dSk6KHcgLyBkYnVwZXJ1dSkpICgoKGwgLSBjb3JuZXJDdXQgLSBleHRyYVVSY3V0KSAvIGRidXBlcnV1KToodyAvIGRidXBlcnV1KSkgKChsIC8gZGJ1cGVydXUpOigodyAtIGNvcm5lckN1dCAtIGV4dHJhVVJjdXQpIC8gZGJ1cGVydXUpKSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbmlrb25JZCAidWxOaWtvbiIgKChwYWRFbmNOaWtvbiAvIGRidXBlcnV1KTooKHcgLSBwYWRFbmNOaWtvbikgLyBkYnVwZXJ1dSkpICJNWCIgMSBuaWwpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChjdXRQb2ludHMgPSBuaWwpIGZvcmVhY2gocG9pbnQgKHRoZU1hc3Rlcn4+b3V0bGluZVBvaW50cykgKGN1dFBvaW50cyA9IGNvbnMoKChwYWRFbmNOaWtvbiArIGZpeCgoY2FyKHBvaW50KSAqIGRidXBlcnV1KSkpOih3IC0gcGFkRW5jTmlrb24gLSBmaXgoKGRidXBlcnV1ICogY2Fkcihwb2ludCkpKSkpIGN1dFBvaW50cykpKSAocmVhbEN1dFBvaW50cyA9IG5pbCkgZm9yZWFjaChwb2ludCBjdXRQb2ludHMgKHJlYWxDdXRQb2ludHMgPSBjb25zKCgoY2FyKHBvaW50KSAvIGRidXBlcnV1KTooY2Fkcihwb2ludCkgLyBkYnVwZXJ1dSkpIHJlYWxDdXRQb2ludHMpKSkgKHJlYWxDdXRQb2ludHMgPSByZXZlcnNlKHJlYWxDdXRQb2ludHMpKSAocGFkTGF5ZXJJZF80ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHBhZExheWVyIGNvbnMoKDAuMDoodyAvIGRidXBlcnV1KSkgYXBwZW5kKHJlYWxDdXRQb2ludHMgbGlzdChjYXIocmVhbEN1dFBvaW50cykgKDAuMDoodyAvIGRidXBlcnV1KSkgKCgoY29ybmVyQ3V0ICsgZXh0cmFVTGN1dCkgLyBkYnVwZXJ1dSk6KHcgLyBkYnVwZXJ1dSkpICgwLjA6KCh3IC0gY29ybmVyQ3V0IC0gZXh0cmFVTGN1dCkgLyBkYnVwZXJ1dSkpKSkpKSkgaWYocmVtRGVmYXVsdFBhZCB0aGVuIChkYkRlbGV0ZU9iamVjdCBwYWRMYXllcklkXzQpIChkYkRlbGV0ZU9iamVjdCBwYWRMYXllcklkXzMpIChkYkRlbGV0ZU9iamVjdCBwYWRMYXllcklkXzIpIChkYkRlbGV0ZU9iamVjdCBwYWRMYXllcklkXzEpKSAocmluZ0NvdW50ID0gMCkgZm9yZWFjaChsYXllciBpbnRSaW5nTGF5ZXJzIChzcGFjaW5nID0gY2FkcihsYXllcikpIChyaW5nV2lkdGggPSBjYWRkcihsYXllcikpIChncmlkID0gbnRoKDQgbGF5ZXIpKSAoZXh0cmFPZmZzZXQgPSBmaXgoKHNwYWNpbmcgKiAoczIgLSAxLjApKSkpIChiZXZlbExlbmd0aCA9IChjb3JuZXJDdXQgKyAoLSBzcGFjaW5nKSArIGV4dHJhT2Zmc2V0KSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgc3ByaW50ZihuaWwgInJpbmclZCIgcmluZ0NvdW50KSAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImludCIgZml4KCh3IC0gKDIgKiBzcGFjaW5nKSkpKSBsaXN0KCJsIiAiaW50IiBmaXgoKGwgLSAoMiAqIHNwYWNpbmcpKSkpIGxpc3QoInhPZmZzZXQiICJpbnQiIHNwYWNpbmcpIGxpc3QoInlPZmZzZXQiICJpbnQiIHNwYWNpbmcpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiaW50IiByaW5nV2lkdGgpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJpbnQiIDApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJpbnQiIChleHRyYUxMY3V0ICsgYmV2ZWxMZW5ndGgpKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiaW50IiAoZXh0cmFVTGN1dCArIGJldmVsTGVuZ3RoKSkgbGlzdCgibHJCZXZlbExlbmd0aCIgImludCIgKGV4dHJhTFJjdXQgKyBiZXZlbExlbmd0aCkpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJpbnQiIChleHRyYVVSY3V0ICsgYmV2ZWxMZW5ndGgpKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiaW50IiBncmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQxID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiaWQyID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiaWQ0ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZDEgbmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBuZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQzIG5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDQgbmV0KSB3aGVuKG50aCgzIGxheWVyKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiaWQxKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbmlkID0gKGRiQ3JlYXRlUGluIG5ldCBkYmlkMikpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJpZDMpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiaWQ0KSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikpIChyaW5nQ291bnQgPSAocmluZ0NvdW50ICsgMSkpKSB3aGVuKGxpc3RwKGRpc2NyZXRlVmlhTGF5ZXJzKSB3aGVuKHJpdmV0UmluZ0lkICh2aWFDb3VudCA9IDApIGZvcmVhY2gobGF5ZXIgZGlzY3JldGVWaWFMYXllcnMgKHRoaXNMcHAgPSBjYXIobGF5ZXIpKSAoc3BhY2luZyA9IGNhZHIobGF5ZXIpKSAodmlhV2lkdGggPSBjYWRkcihsYXllcikpICh2aWFTcGFjZVkgPSBudGgoMyBsYXllcikpICh2aWFTcGFjZVggPSBudGgoNCBsYXllcikpIChncmlkX29yaWcgPSBudGgoNSBsYXllcikpIChiZXZlbF9vZmZzZXQgPSBudGgoNiBsYXllcikpIChyaW5nV2lkdGggPSBudGgoNyBsYXllcikpIChsZXNzUml2ZXROZWFyQmV2ZWwgPSBudGgoOCBsYXllcikpIChudW1Db2xzTGVzcyA9IG50aCg5IGxheWVyKSkgKHVwZGF0ZWRDbGFzcyA9IG50aCgxMCBsYXllcikpIChhbHRDb3JDb24gPSBudGgoMTEgbGF5ZXIpKSAocml2ZXRMYXllcjIgPSBudGgoMTIgbGF5ZXIpKSAoZXh0cmFPZmZzZXQgPSBmaXgoKHNwYWNpbmcgKiAoczIgLSAxLjApKSkpIChiZXZlbExlbmd0aCA9ICgoY29ybmVyQ3V0IC8gZGJ1cGVydXUpICsgKC0gc3BhY2luZykgKyBleHRyYU9mZnNldCkpIChwYXJhbUxpc3QgPSBsaXN0KGxpc3QoInciICJmbG9hdCIgKHdpZCAtICgyICogc3BhY2luZykpKSBsaXN0KCJsIiAiZmxvYXQiIChsZW4gLSAoMiAqIHNwYWNpbmcpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBzcGFjaW5nKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIHNwYWNpbmcpIGxpc3QoInJpdmV0TGF5ZXIiICJsaXN0IiBjYXIobGF5ZXIpKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgcmluZ1dpZHRoKSBsaXN0KCJyaXZldFdpZHRoIiAiZmxvYXQiIHZpYVdpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYVNwYWNlWSkgbGlzdCgicml2ZXRTcGFjZVgiICJmbG9hdCIgdmlhU3BhY2VYKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIChleHRyYUxMY3V0X29yaWcgKyBiZXZlbExlbmd0aCArIGJldmVsX29mZnNldCkpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgKGV4dHJhVUxjdXRfb3JpZyArIGJldmVsTGVuZ3RoICsgYmV2ZWxfb2Zmc2V0KSkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiAoZXh0cmFMUmN1dF9vcmlnICsgYmV2ZWxMZW5ndGggKyBiZXZlbF9vZmZzZXQpKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIChleHRyYVVSY3V0X29yaWcgKyBiZXZlbExlbmd0aCArIGJldmVsX29mZnNldCkpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIGdyaWRfb3JpZykgbGlzdCgibGVzc0Nvbk5lYXJiZXZlbCIgImJvb2xlYW4iIGxlc3NSaXZldE5lYXJCZXZlbCkgbGlzdCgibnVtQ29sc0xlc3MiICJpbnQiIG51bUNvbHNMZXNzKSBsaXN0KCJ1cGRhdGVkQ2xhc3MiICJib29sZWFuIiB1cGRhdGVkQ2xhc3MpIGxpc3QoImFsdENvckNvbiIgImJvb2xlYW4iIGFsdENvckNvbikpKSB3aGVuKHJpdmV0TGF5ZXIyIChwYXJhbUxpc3QgPSBjb25zKGxpc3QoInJpdmV0TGF5ZXIyIiAibGlzdCIgcml2ZXRMYXllcjIpIHBhcmFtTGlzdCkpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0UmluZ0lkIHNwcmludGYobmlsICIlcyVkIiBjYWFyKGxheWVyKSB2aWFDb3VudCkgKDAuMDowLjApICJSMCIgMSBwYXJhbUxpc3QpKSAodmlhQ291bnQgPSAodmlhQ291bnQgKyAxKSkpKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgInNlYWxpZCIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJpbnQiIHcpIGxpc3QoImwiICJpbnQiIGwpIGxpc3QoInhPZmZzZXQiICJpbnQiIDApIGxpc3QoInlPZmZzZXQiICJpbnQiIDApIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiaW50IiBzZWFscmluZ0lkV2lkdGgpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJpbnQiIDApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJpbnQiIChjb3JuZXJDdXQgKyBleHRyYUxMY3V0KSkgbGlzdCgidWxCZXZlbExlbmd0aCIgImludCIgKGNvcm5lckN1dCArIGV4dHJhVUxjdXQpKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiaW50IiAoY29ybmVyQ3V0ICsgZXh0cmFMUmN1dCkpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJpbnQiIChjb3JuZXJDdXQgKyBleHRyYVVSY3V0KSkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImludCIgZml4KChkYnVwZXJ1dSAqIHNlYWxyaW5nR3JpZCkpKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpIHdoZW4oc2VhbHJpbmdJZExheWVyICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHNlYWxyaW5nSWRMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpIChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBzZWFscmluZ0lkTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgc2VhbHJpbmdJZExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHNlYWxyaW5nSWRMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJDbG9zZSByaW5nSWQpIChkYkNsb3NlIG5pa29uSWQpKQAocmluZ0xheWVycyBkaXNjcmV0ZVZpYUxheWVycyBzZWFscmluZ0lkTGF5ZXIgc2VhbHJpbmdJZFdpZHRoIHNlYWxyaW5nR3JpZCBnZW5lcmljUmluZ05hbWUgbmlrb25Dcm9zc05hbWUgZ2VuZXJpY1JpdmV0UmluZ05hbWUgcGFkTGF5ZXIgcmVtRGVmYXVsdFBhZCBwYWRHcmlkIHBhZEVuY05pa29uIHBhZEVuY05pa29uSW5zaWRlIHJkTGF5ZXIgcmNMYXllciBkTGF5ZXIgc2NhbGVGIGNyaXRpY2FsTCBkZWZSZCBkZWZSYyBkZWZEIHcgbCBleHRyYUxMY3V0IGV4dHJhVUxjdXQgZXh0cmFMUmN1dCBleHRyYVVSY3V0IGV4dHJhTExjdXRfb3JpZyBleHRyYVVMY3V0X29yaWcgZXh0cmFMUmN1dF9vcmlnIGV4dHJhVVJjdXRfb3JpZyBkYnVwZXJ1dSBncmlkIHMyIHBhcmFtIG5ldCBtaW5TZWFsUmluZ0lkV2lkdGggcmluZ0lkIHJpdmV0UmluZ0lkIG5pa29uSWQgbGF5ZXIgdGhpc0xwcCBzcGFjaW5nIHJpbmdXaWR0aCBtYWtlUGluIGxheUdyaWQgaW50UmluZ0xheWVycyBsZW4gd2lkIHNtYWxsZGllIGFyIHJkIHJjIGQgZGJpZCB0aGVNYXN0ZXIgY3V0UG9pbnRzIHBvaW50IGNvcm5lckN1dCBiZXZlbEFkZCBiZXZlbExlbmd0aCBtaW5CZXZlbFJlcXVpcmVkIGJldmVsQWpkdXN0IHBhZEdyaWRGbG9hdCByZWFsQ3V0UG9pbnRzIHBhZExheWVySWRfMSBwYWRMYXllcklkXzIgcGFkTGF5ZXJJZF8zIHBhZExheWVySWRfNCByaW5nQ291bnQgZXh0cmFPZmZzZXQgZGJpZDEgZGJpZDIgZGJpZDMgZGJpZDQgcGluaWQgdmlhQ291bnQgdmlhV2lkdGggdmlhU3BhY2VZIHZpYVNwYWNlWCBncmlkX29yaWcgYmV2ZWxfb2Zmc2V0IGxlc3NSaXZldE5lYXJCZXZlbCBudW1Db2xzTGVzcyB1cGRhdGVkQ2xhc3MgYWx0Q29yQ29uIHJpdmV0TGF5ZXIyIHBhcmFtTGlzdCkAKCh3IDAuMCkgKGwgMC4wKSAoZXh0cmFMTGN1dCAwLjApIChleHRyYVVMY3V0IDAuMCkgKGV4dHJhTFJjdXQgMC4wKSAoZXh0cmFVUmN1dCAwLjApKQAoKHJpbmdMYXllcnMgJygnKCgidGFwIiAiZHJhd2luZyIpIDUuMCAzLjAgbmlsIDAuMDUpICcoKCJtZXQxIiAiZHJhd2luZyIpIDYuMCAyLjUgbmlsIDAuMDUpICcoKCJtZXQyIiAiZHJhd2luZyIpIDUuNSA0LjAgdCAwLjA1KSkpIChkaXNjcmV0ZVZpYUxheWVycyBuaWwpIChzZWFscmluZ0lkTGF5ZXIgbGlzdCgieTEiICJkcmF3aW5nIikpIChzZWFscmluZ0lkV2lkdGggMC4wKSAoc2VhbHJpbmdHcmlkIDAuMCkgKGdlbmVyaWNSaW5nTmFtZSAiIikgKG5pa29uQ3Jvc3NOYW1lICIiKSAoZ2VuZXJpY1JpdmV0UmluZ05hbWUgIiIpIChwYWRMYXllciBsaXN0KCJ5MCIgImRyYXdpbmciKSkgKHJlbURlZmF1bHRQYWQgbmlsKSAocGFkR3JpZCAwLjApIChwYWRFbmNOaWtvbiAwLjApIChwYWRFbmNOaWtvbkluc2lkZSAwLjApIChyZExheWVyIG5pbCkgKHJjTGF5ZXIgbmlsKSAoZExheWVyIG5pbCkgKHNjYWxlRiAxKSAoY3JpdGljYWxMIDUwODAuMCkgKGRlZlJkIDAuMCkgKGRlZlJjIDE1Mi40KSAoZGVmRCAxMDEuNikpAChpZigoKGltcGxhbnQgPT0gdCkgfHwgKGltcGxhbnQgPT0gIlRSVUUiKSkgdGhlbiAoaW1wbGFudCA9IHQpIGVsc2UgKGltcGxhbnQgPSBuaWwpKSBpZigoKHNlY29uZEltcGxhbnQgPT0gdCkgfHwgKHNlY29uZEltcGxhbnQgPT0gIlRSVUUiKSkgdGhlbiAoc2Vjb25kSW1wbGFudCA9IHQpIGVsc2UgKHNlY29uZEltcGxhbnQgPSBuaWwpKSAobmV0ID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJyMCIpKSAobmV0MiA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicjEiKSkgKGltcE9mZnNldCA9IGltcFNwYWNlQ29udGFjdCkgd2hlbigobWluUmVzU3BhY2UgPiAoMWUtMDYgKyBzcGFjZUJldHdlZW5SdW5zKSkgZXJyb3IoImJlbnRSZXNJbXBDbGFzcyAgc3BhY2VCZXR3ZWVuUnVucyBtdXN0IGJlIGF0IGxlYXN0ICVmXG4iIG1pblJlc1NwYWNlKSkgd2hlbigoKHJ3ICsgc3BhY2VCZXR3ZWVuUnVucykgPiAoKG1heFJ1bkxlbmd0aCAvIDIuMCkgKyAxZS0wNikpIGVycm9yKCJiZW50UmVzSW1wQ2xhc3MgIG1heFJ1bkxlbmd0aCBtdXN0IGJlIGF0IGxlYXN0IDIgKiBydyArIHNwYWNlQmV0d2VlblJ1bnMgKCVmKVxuIiAoc3BhY2VCZXR3ZWVuUnVucyArICgyLjAgKiBydykpKSkgKGNvbnRhY3RJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBjb250YWN0TmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKGNvbnRhY3RJZCBlcnJvcigiYmVudFJlc0ltcENsYXNzICBDYW5ub3QgZmluZC9vcGVuIGNvbnRhY3QgJXNcbiIgY29udGFjdE5hbWUpKSB1bmxlc3MoKGNvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKCJiZW50UmVzSW1wQ2xhc3MgIENvbnRhY3QgJXMgaXMgbm90IGEgcGNlbGxcbiIgY29udGFjdE5hbWUpKSBjb25kKCgocmVzaXN0b3JMYXllciA9PSAoY29udGFjdElkfj5ib3RMYXllcikpIChyZXNJbkNvbnRhY3RCYm94ID0gKGNvbnRhY3RJZH4+Ym90TGF5ZXJCYm94KSkgKGxheWVyMiA9IChjb250YWN0SWR+PnRvcExheWVyKSkpICgocmVzaXN0b3JMYXllciA9PSAoY29udGFjdElkfj50b3BMYXllcikpIChyZXNJbkNvbnRhY3RCYm94ID0gKGNvbnRhY3RJZH4+dG9wTGF5ZXJQaW5CYm94KSkgKGxheWVyMiA9IChjb250YWN0SWR+PmJvdExheWVyKSkpICh0IGVycm9yKCJiZW50UmVzSW1wQ2xhc3MgIENhbm5vdCBmaW5kIGxheWVyICVMIGluIGNvbnRhY3QgJXMgIChmb3VuZCAlTCBhbmQgJUwpXG4iIHJlc2lzdG9yTGF5ZXIgY29udGFjdE5hbWUgKGNvbnRhY3RJZH4+Ym90TGF5ZXIpIChjb250YWN0SWR+PnRvcExheWVyKSkpKSAodmlhQmJveCA9IChjb250YWN0SWR+PmNvbnRhY3RMYXllckJib3gpKSAocmVzQ29udGFjdEVkZ2VUb0VuZE9mVmlhU3BhY2UgPSAoY2FhZHIodmlhQmJveCkgLSBjYWFyKHJlc0luQ29udGFjdEJib3gpKSkgKGRvZ2JvbmUgPSAoY2FkYWRyKHJlc0luQ29udGFjdEJib3gpID4gKHJ3ICsgMWUtMDYpKSkgKGNvbnRhY3RXaWR0aCA9IChjYWRhZHIodmlhQmJveCkgLSBjYWRhcih2aWFCYm94KSkpIChwYXJhbXMgPSAoY29udGFjdElkfj5wYXJhbWV0ZXJzKSkgaWYoKHBhcmFtc34+eVBpdGNoKSB0aGVuIChjb250YWN0UGl0Y2ggPSAocGFyYW1zfj55UGl0Y2gpKSBlbHNlIChjb250YWN0UGl0Y2ggPSAoKGNvbnRhY3RJZH4+Y29udGFjdFdpZHRoKSArIChjb250YWN0SWR+PmNvbnRhY3RTcGFjZSkpKSkgaWYoKHBhcmFtc34+bCkgdGhlbiAoY29udGFjdFNwYWNlID0gKGNvbnRhY3RQaXRjaCAtIChwYXJhbXN+PmwpKSkgZWxzZSAoY29udGFjdFNwYWNlID0gKGNvbnRhY3RJZH4+Y29udGFjdFNwYWNlKSkpIChlZmZlY3RpdmVSdyA9IChydyArICgtMi4wICogY2FkYXIodmlhQmJveCkpICsgY29udGFjdFNwYWNlKSkgKG51bVJvd3NDb250YWN0cyA9IG1heCgxIGZpeCgoMWUtMDYgKyAoZWZmZWN0aXZlUncgLyBjb250YWN0UGl0Y2gpKSkpKSAoaW5zdFBhcmFtcyA9IGxpc3QobGlzdCgicm93IiAiaW50ZWdlciIgbnVtUm93c0NvbnRhY3RzKSBsaXN0KCJjb2x1bW4iICJpbnRlZ2VyIiAxKSkpIHdoZW4oKHBhcmFtc34+aW1wbGFudCkgaWYoaW1wbGFudCB0aGVuIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBsaXN0KCJpbXBsYW50IiAiYm9vbGVhbiIgdCkpKSBlbHNlIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBsaXN0KCJpbXBsYW50IiAiYm9vbGVhbiIgIkZBTFNFIikpKSkpIHdoZW4oKHBhcmFtc34+aW5XZWxsKSBpZih3ZWxsTGF5ZXIgdGhlbiAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgbGlzdCgiaW5XZWxsIiAiYm9vbGVhbiIgdCkpKSBlbHNlIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBsaXN0KCJpbldlbGwiICJib29sZWFuIiAiRkFMU0UiKSkpKSkgKGFjdHVhbENvbnRhY3RXID0gKChjb250YWN0UGl0Y2ggKiBudW1Sb3dzQ29udGFjdHMpICsgKC0gY29udGFjdFNwYWNlKSArICgyLjAgKiBjYWRhcih2aWFCYm94KSkpKSAoY29udGFjdFlkZWx0YSA9ICgocncgLSBhY3R1YWxDb250YWN0VykgLyAyLjApKSAoY29udGFjdFlkZWx0YSA9IChyZXNpc3RvckxheWVyR3JpZCAqIGZpeCgoMC45OTkgKyAoY29udGFjdFlkZWx0YSAvIHJlc2lzdG9yTGF5ZXJHcmlkKSkpKSkgKGVmZmVjdGl2ZVJsID0gKHJsICsgKC0gcncpICsgKDIuMCAqIHJlc0NvbnRhY3RFZGdlVG9FbmRPZlZpYVNwYWNlKSkpIHdoZW4oZG9nYm9uZSAoZWZmZWN0aXZlUmwgPSAoZWZmZWN0aXZlUmwgKyAoMi4wICogY2Fhcih2aWFCYm94KSkpKSkgKGVmZmVjdGl2ZVJsID0gKGVmZmVjdGl2ZVJsICsgKDIuMCAqIGltcE9mZnNldCkgKyAoMi4wICogaW1wRW5jKSkpIGNvbmQoKChlZmZlY3RpdmVSbCA8IG1heFJ1bkxlbmd0aCkgKG51bUJlbmRzID0gMSkgKHRoZVJ1bkxlbmd0aCA9IGVmZmVjdGl2ZVJsKSkgKHQgKGVmZmVjdGl2ZVJsID0gKGVmZmVjdGl2ZVJsICsgc3BhY2VCZXR3ZWVuUnVucykpIChudW1CZW5kcyA9IGZpeCgoMC45OTkgKyAoZWZmZWN0aXZlUmwgLyAobWF4UnVuTGVuZ3RoICsgc3BhY2VCZXR3ZWVuUnVucykpKSkpIGNvbmQoKCh2YXJpYWJpbGl0eSAmJiAodmFyaWFiaWxpdHkgIT0gIkZBTFNFIikpICh0aGVSdW5MZW5ndGggPSBtYXhSdW5MZW5ndGgpKSAodCAocnVuRGVsdGEgPSAoKChudW1CZW5kcyAqIChzcGFjZUJldHdlZW5SdW5zICsgbWF4UnVuTGVuZ3RoKSkgLSBlZmZlY3RpdmVSbCkgLyBudW1CZW5kcykpIChydW5EZWx0YSA9IChmaXgoKDFlLTA2ICsgKHJ1bkRlbHRhIC8gcmVzaXN0b3JMYXllckdyaWQpKSkgKiByZXNpc3RvckxheWVyR3JpZCkpICh0aGVSdW5MZW5ndGggPSAobWF4UnVuTGVuZ3RoIC0gcnVuRGVsdGEpKSkpKSkgd2hlbigoZG9nYm9uZSAmJiAobnVtQmVuZHMgPiAyKSAmJiAoKHNwYWNlQmV0d2VlblJ1bnMgKyBjb250YWN0WWRlbHRhICsgMWUtMDYpIDwgbWluUmVzU3BhY2UpKSBlcnJvcigiYmVudFJlc0ltcENsYXNzICBkb2dib25lJ2QgY29udGFjdHMgcmVxdWlyZSBhIGxhcmdlciBzcGFjZUJldHdlZW5SdW5zXG4iKSkgd2hlbigoZG9nYm9uZSAmJiAobnVtQmVuZHMgPT0gMikgJiYgKChzcGFjZUJldHdlZW5SdW5zICsgKGNvbnRhY3RZZGVsdGEgKiAyKSArIDFlLTA2KSA8IG1pblJlc1NwYWNlKSkgZXJyb3IoImJlbnRSZXNJbXBDbGFzcyAgZG9nYm9uZSdkIGNvbnRhY3RzIHJlcXVpcmUgYSBsYXJnZXIgc3BhY2VCZXR3ZWVuUnVuc1xuIikpIChyZXNYb3JpZ2luID0gKC0gcmVzQ29udGFjdEVkZ2VUb0VuZE9mVmlhU3BhY2UpKSAocmVzWGVuZCA9IChyZXNYb3JpZ2luICsgdGhlUnVuTGVuZ3RoICsgcncpKSAobGVmdEJlbmRYZW5kID0gKHJlc1hvcmlnaW4gKyBydykpIChyaWdodEJlbmRYb3JpZ2luID0gKHJlc1hlbmQgLSBydykpIChyZXNZb3JpZ2luID0gMC4wKSAocmVzWWRlbHRhID0gKHJ3ICsgc3BhY2VCZXR3ZWVuUnVucykpIGNvbmQoKChudW1CZW5kcyA+IDEpIChsYXN0Q29udGFjdFZhcmlhYmlsaXR5ID0gKChudW1CZW5kcyAqICh0aGVSdW5MZW5ndGggKyBzcGFjZUJldHdlZW5SdW5zKSkgKyAoLSBzcGFjZUJldHdlZW5SdW5zKSArIChydyAtICgyLjAgKiByZXNDb250YWN0RWRnZVRvRW5kT2ZWaWFTcGFjZSkpICsgKC0gcmwpKSkpICh0IChsYXN0Q29udGFjdFZhcmlhYmlsaXR5ID0gMC4wKSkpIChmaXJzdENvbnRhY3RWYXJpYWJpbGl0eSA9IDAuMCkgd2hlbigobnVtQmVuZHMgPiAxKSB3aGVuKGRvZ2JvbmUgKGxhc3RDb250YWN0VmFyaWFiaWxpdHkgPSAobGFzdENvbnRhY3RWYXJpYWJpbGl0eSAtICgyLjAgKiBjYWFyKHZpYUJib3gpKSkpKSAobWF4VmFyaWFiaWxpdHkgPSAodGhlUnVuTGVuZ3RoIC0gbWluUmVzU3BhY2UgLSBjYWFkcihyZXNJbkNvbnRhY3RCYm94KSkpIHdoZW4oKGxhc3RDb250YWN0VmFyaWFiaWxpdHkgPiBtYXhWYXJpYWJpbGl0eSkgKGZpcnN0Q29udGFjdFZhcmlhYmlsaXR5ID0gKGxhc3RDb250YWN0VmFyaWFiaWxpdHkgLSBtYXhWYXJpYWJpbGl0eSkpIChsYXN0Q29udGFjdFZhcmlhYmlsaXR5ID0gKGxhc3RDb250YWN0VmFyaWFiaWxpdHkgLSBmaXJzdENvbnRhY3RWYXJpYWJpbGl0eSkpKSkgKGhhbGZSdyA9IChmaXgoKDFlLTA2ICsgKHJ3IC8gKDIuMCAqIHJlc2lzdG9yTGF5ZXJHcmlkICogMi4wKSkpKSAqIHJlc2lzdG9yTGF5ZXJHcmlkKSkgKGN1dExlbmd0aCA9IChybCAvIDIuMCkpIGNvbmQoKGRvZ2JvbmUgKGN1dExlbmd0aCA9IChjdXRMZW5ndGggKyBjYWFkcihyZXNJbkNvbnRhY3RCYm94KSArICgtIGhhbGZSdykgKyBmaXJzdENvbnRhY3RWYXJpYWJpbGl0eSkpKSAodCAoY3V0TGVuZ3RoID0gKGN1dExlbmd0aCArIHJlc0NvbnRhY3RFZGdlVG9FbmRPZlZpYVNwYWNlICsgKC0gaGFsZlJ3KSArIGZpcnN0Q29udGFjdFZhcmlhYmlsaXR5KSkpKSAodGhlTmV0ID0gbmV0KSBmb3Iocm93IDEgbnVtQmVuZHMgY29uZCgoKHRoZVJ1bkxlbmd0aCA8IChjdXRMZW5ndGggKyBoYWxmUncpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByZXNpc3RvckxheWVyIGxpc3QoKHJlc1hvcmlnaW46cmVzWW9yaWdpbikgKHJlc1hlbmQ6KHJlc1lvcmlnaW4gKyBydykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgdGhlTmV0KSkgKHQgY29uZCgoZXZlbnAocm93KSAoY3V0WG9yaWdpbiA9IChyZXNYZW5kIC0gY3V0TGVuZ3RoIC0gaGFsZlJ3KSkgd2hlbigoY3V0WG9yaWdpbiA+IChyZXNYZW5kIC0gcncgLSByZXNDdXRXaWR0aCkpIChjdXRYb3JpZ2luID0gKHJlc1hlbmQgLSBydyAtIHJlc0N1dFdpZHRoKSkpKSAodCAoY3V0WG9yaWdpbiA9IChyZXNYb3JpZ2luICsgY3V0TGVuZ3RoICsgaGFsZlJ3KSkgd2hlbigoY3V0WG9yaWdpbiA8IChyZXNYb3JpZ2luICsgcncpKSAoY3V0WG9yaWdpbiA9IChyZXNYb3JpZ2luICsgcncpKSkpKSAoZGJpZEwgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmVzaXN0b3JMYXllciBsaXN0KChyZXNYb3JpZ2luOnJlc1lvcmlnaW4pIChjdXRYb3JpZ2luOihyZXNZb3JpZ2luICsgcncpKSkpKSAoZGJpZFIgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmVzaXN0b3JMYXllciBsaXN0KChjdXRYb3JpZ2luOnJlc1lvcmlnaW4pIChyZXNYZW5kOihyZXNZb3JpZ2luICsgcncpKSkpKSB1bmxlc3MoKChyb3cgPT0gMSkgfHwgKHJvdyA9PSBudW1CZW5kcykpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByZXNJZExheWVyIGxpc3QoKHJlc1hvcmlnaW46cmVzWW9yaWdpbikgKHJlc1hlbmQ6KHJlc1lvcmlnaW4gKyBydykpKSkgd2hlbigoaW1wbGFudExheWVyICYmIHNlY29uZEltcGxhbnQpIChpbXBYb3JpZ2luID0gKHJlc1hvcmlnaW4gLSBpbXBFbmMpKSAoaW1wWW9yaWdpbiA9IChyZXNZb3JpZ2luIC0gaW1wRW5jKSkgKGltcFhlbmQgPSBtYXgoKHJlc1hlbmQgKyBpbXBFbmMpIChpbXBYb3JpZ2luICsgaW1wV2lkdGgpKSkgKGltcFllbmQgPSBtYXgoKHJlc1lvcmlnaW4gKyBydyArIGltcEVuYykgKGltcFlvcmlnaW4gKyBpbXBXaWR0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaW1wbGFudExheWVyIGxpc3QoKGltcFhvcmlnaW46aW1wWW9yaWdpbikgKGltcFhlbmQ6aW1wWWVuZCkpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByZXNDdXRMYXllciBsaXN0KChjdXRYb3JpZ2luOnJlc1lvcmlnaW4pICgoY3V0WG9yaWdpbiArIHJlc0N1dFdpZHRoKToocmVzWW9yaWdpbiArIHJ3KSkpKSBjb25kKChldmVucChyb3cpIChkYkFkZEZpZ1RvTmV0IGRiaWRMIG5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZFIgbmV0MikpICh0IChkYkFkZEZpZ1RvTmV0IGRiaWRMIG5ldDIpIChkYkFkZEZpZ1RvTmV0IGRiaWRSIG5ldCkpKSAodGhlTmV0ID0gbmV0MikgKGN1dExlbmd0aCA9IChjdXRMZW5ndGggKyB0aGVSdW5MZW5ndGgpKSkpIHdoZW4oKHRoZU5ldCA9PSBuZXQpIChjdXRMZW5ndGggPSAoY3V0TGVuZ3RoIC0gdGhlUnVuTGVuZ3RoKSkpIHdoZW4oKHJvdyAhPSBudW1CZW5kcykgdW5sZXNzKCgxID09IHJvdykgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc0lkTGF5ZXIgKGRiaWR+PmJCb3gpKSB3aGVuKChpbXBsYW50TGF5ZXIgJiYgc2Vjb25kSW1wbGFudCkgKGltcFhvcmlnaW4gPSAoY2FhcigoZGJpZH4+YkJveCkpIC0gaW1wRW5jKSkgKGltcFlvcmlnaW4gPSAoY2FkYXIoKGRiaWR+PmJCb3gpKSAtIGltcEVuYykpIChpbXBYZW5kID0gbWF4KChjYWFkcigoZGJpZC0+YkJveCkpICsgaW1wRW5jKSAoaW1wWG9yaWdpbiArIGltcFdpZHRoKSkpIChpbXBZZW5kID0gbWF4KChjYWRhZHIoKGRiaWR+PmJCb3gpKSArIGltcEVuYykgKGltcFlvcmlnaW4gKyBpbXBXaWR0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaW1wbGFudExheWVyIGxpc3QoKGltcFhvcmlnaW46aW1wWW9yaWdpbikgKGltcFhlbmQ6aW1wWWVuZCkpKSkpIHdoZW4ob2RkcChyb3cpIChzdHViWG9yaWdpbiA9IHJpZ2h0QmVuZFhvcmlnaW4pIChzdHViWGVuZCA9IHJlc1hlbmQpKSB3aGVuKGV2ZW5wKHJvdykgKHN0dWJYb3JpZ2luID0gcmVzWG9yaWdpbikgKHN0dWJYZW5kID0gbGVmdEJlbmRYZW5kKSkgY29uZCgoKHNwYWNlQmV0d2VlblJ1bnMgPCAoY3V0TGVuZ3RoIC0gaGFsZlJ3KSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmVzaXN0b3JMYXllciBsaXN0KChzdHViWG9yaWdpbjpyZXNZb3JpZ2luKSAoc3R1YlhlbmQ6KHJlc1lvcmlnaW4gLSBzcGFjZUJldHdlZW5SdW5zKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0aGVOZXQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByZXNJZExheWVyIChkYmlkfj5iQm94KSkgd2hlbigoaW1wbGFudExheWVyICYmIHNlY29uZEltcGxhbnQpIChpbXBYb3JpZ2luID0gKGNhYXIoKGRiaWR+PmJCb3gpKSAtIGltcEVuYykpIChpbXBZb3JpZ2luID0gKGNhZGFyKChkYmlkfj5iQm94KSkgLSBpbXBFbmMpKSAoaW1wWGVuZCA9IG1heCgoY2FhZHIoKGRiaWQtPmJCb3gpKSArIGltcEVuYykgKGltcFhvcmlnaW4gKyBpbXBXaWR0aCkpKSAoaW1wWWVuZCA9IG1heCgoY2FkYWRyKChkYmlkfj5iQm94KSkgKyBpbXBFbmMpIChpbXBZb3JpZ2luICsgaW1wV2lkdGgpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGltcGxhbnRMYXllciBsaXN0KChpbXBYb3JpZ2luOmltcFlvcmlnaW4pIChpbXBYZW5kOmltcFllbmQpKSkpIHdoZW4oKHRoZU5ldCA9PSBuZXQpIChjdXRMZW5ndGggPSAoY3V0TGVuZ3RoIC0gc3BhY2VCZXR3ZWVuUnVucykpKSkgKHQgKGN1dExlbmd0aCA9IChjdXRMZW5ndGggLSBoYWxmUncpKSAoY3V0TGVuZ3RoID0gbWF4KDAuMCBjdXRMZW5ndGgpKSB3aGVuKChjdXRMZW5ndGggPiAwLjApIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc2lzdG9yTGF5ZXIgbGlzdCgoc3R1YlhvcmlnaW46cmVzWW9yaWdpbikgKHN0dWJYZW5kOihyZXNZb3JpZ2luIC0gY3V0TGVuZ3RoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0aGVOZXQpKSAodGhlTmV0ID0gbmV0MikgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmVzaXN0b3JMYXllciBsaXN0KChzdHViWG9yaWdpbjoocmVzWW9yaWdpbiAtIGN1dExlbmd0aCkpIChzdHViWGVuZDoocmVzWW9yaWdpbiAtIHNwYWNlQmV0d2VlblJ1bnMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc0lkTGF5ZXIgbGlzdCgoc3R1YlhvcmlnaW46cmVzWW9yaWdpbikgKHN0dWJYZW5kOihyZXNZb3JpZ2luIC0gc3BhY2VCZXR3ZWVuUnVucykpKSkgd2hlbigoaW1wbGFudExheWVyICYmIHNlY29uZEltcGxhbnQpIChzdHViWG9yaWdpbkltcENvb3JkID0gKHN0dWJYb3JpZ2luIC0gaW1wRW5jKSkgKHN0dWJYZW5kSW1wQ29vcmQgPSBtYXgoKHN0dWJYZW5kICsgaW1wRW5jKSAoc3R1YlhvcmlnaW5JbXBDb29yZCArIGltcFdpZHRoKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBpbXBsYW50TGF5ZXIgbGlzdCgoc3R1YlhvcmlnaW5JbXBDb29yZDpyZXNZb3JpZ2luKSAoc3R1YlhlbmRJbXBDb29yZDoocmVzWW9yaWdpbiAtIHNwYWNlQmV0d2VlblJ1bnMpKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmVzQ3V0TGF5ZXIgbGlzdCgoc3R1YlhvcmlnaW46KHJlc1lvcmlnaW4gLSBjdXRMZW5ndGgpKSAoc3R1YlhlbmQ6KHJlc1lvcmlnaW4gLSBjdXRMZW5ndGggLSByZXNDdXRXaWR0aCkpKSkgKGN1dExlbmd0aCA9ICh0aGVSdW5MZW5ndGggKyBjdXRMZW5ndGgpKSkpIChyZXNZb3JpZ2luID0gKHJlc1lvcmlnaW4gLSByZXNZZGVsdGEpKSkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkICJicmMwIiAoKGZpcnN0Q29udGFjdFZhcmlhYmlsaXR5ICsgKC0gcmVzQ29udGFjdEVkZ2VUb0VuZE9mVmlhU3BhY2UpKTpjb250YWN0WWRlbHRhKSAiUjAiIDEgaW5zdFBhcmFtcykpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgY29uZCgoKHJlc2lzdG9yTGF5ZXIgPT0gKHRoZU1hc3Rlcn4+Ym90TGF5ZXIpKSAobGF5ZXIyQmJveCA9ICh0aGVNYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpIChyZXNJbkNvbnRhY3RCYm94ID0gKHRoZU1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkpICh0IChsYXllcjJCYm94ID0gKHRoZU1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkgKHJlc0luQ29udGFjdEJib3ggPSAodGhlTWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpIGNvbmQoKGRvZ2JvbmUgKHJlc1ZhcmlhYmlsaXR5VyA9IGNhZGFkcihyZXNJbkNvbnRhY3RCYm94KSkpICh0IChyZXNWYXJpYWJpbGl0eVcgPSBydykpKSAobGF5ZXIyVmFyWW9mZnNldDEgPSBjYWRhcihsYXllcjJCYm94KSkgKGxheWVyMlZhcllvZmZzZXQyID0gY2FkYWRyKGxheWVyMkJib3gpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdCgoKHJlc1hvcmlnaW4gKyBjYWFyKGxheWVyMkJib3gpKToobGF5ZXIyVmFyWW9mZnNldDEgKyBjb250YWN0WWRlbHRhKSkgKChyZXNYb3JpZ2luICsgY2FhZHIobGF5ZXIyQmJveCkgKyBmaXJzdENvbnRhY3RWYXJpYWJpbGl0eSk6KGxheWVyMlZhcllvZmZzZXQyICsgY29udGFjdFlkZWx0YSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSAocGluaWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSB3aGVuKGRvZ2JvbmUgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc2lzdG9yTGF5ZXIgbGlzdCgocmVzWG9yaWdpbjpjb250YWN0WWRlbHRhKSAoKHJlc1hvcmlnaW4gKyBjYWFkcihyZXNJbkNvbnRhY3RCYm94KSArIGZpcnN0Q29udGFjdFZhcmlhYmlsaXR5KToocmVzVmFyaWFiaWxpdHlXICsgY29udGFjdFlkZWx0YSkpKSkgKGZpcnN0Q29udGFjdFZhcmlhYmlsaXR5ID0gKGZpcnN0Q29udGFjdFZhcmlhYmlsaXR5ICsgY2Fhcih2aWFCYm94KSkpKSAocmVzSWRYZW5kID0gKHJlc1hvcmlnaW4gKyB0aGVSdW5MZW5ndGggKyBydyArIGNvbmQoKCgobnVtQmVuZHMgPT0gMSkgJiYgZG9nYm9uZSkgKCgtIGNhYWRyKHJlc0luQ29udGFjdEJib3gpKSArICgtIGltcE9mZnNldCkgKyAoLSBpbXBFbmMpKSkgKChudW1CZW5kcyA9PSAxKSAoKC0gcmVzQ29udGFjdEVkZ2VUb0VuZE9mVmlhU3BhY2UpICsgKC0gaW1wT2Zmc2V0KSArICgtIGltcEVuYykpKSAodCAwLjApKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByZXNJZExheWVyIGxpc3QoKChpbXBPZmZzZXQgKyBpbXBFbmMgKyBmaXJzdENvbnRhY3RWYXJpYWJpbGl0eSk6MC4wKSAocmVzSWRYZW5kOnJ3KSkpIHdoZW4oKGltcGxhbnRMYXllciAmJiBzZWNvbmRJbXBsYW50KSAocmVzSWRYZW5kID0gKHJlc0lkWGVuZCArIGltcEVuYykpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBpbXBsYW50TGF5ZXIgbGlzdCgoKGltcE9mZnNldCArIGZpcnN0Q29udGFjdFZhcmlhYmlsaXR5KTooLSBpbXBFbmMpKSAobWF4KHJlc0lkWGVuZCAoZmlyc3RDb250YWN0VmFyaWFiaWxpdHkgKyBpbXBXaWR0aCkpOm1heCgocncgKyBpbXBFbmMpICgoLSBpbXBFbmMpICsgaW1wV2lkdGgpKSkpKSkgY29uZCgob25lcChudW1CZW5kcykgY29uZCgoZG9nYm9uZSAobGFzdENvbnRhY3RYb3JpZ2luID0gKHJlc0lkWGVuZCArIGltcE9mZnNldCArICgtIGNhYXIocmVzSW5Db250YWN0QmJveCkpKSkpICh0IChsYXN0Q29udGFjdFhvcmlnaW4gPSAocmVzSWRYZW5kICsgaW1wT2Zmc2V0ICsgKC0gY2Fhcih2aWFCYm94KSkpKSkpIChsYXllcjJWYXJYb3JpZ2luID0gKGxhc3RDb250YWN0WG9yaWdpbiArIGNhYXIobGF5ZXIyQmJveCkpKSAobGF5ZXIyVmFyWGVuZCA9IChyZXNYZW5kIC0gY2FhcihsYXllcjJCYm94KSkpKSAob2RkcChudW1CZW5kcykgKGxhc3RDb250YWN0WG9yaWdpbiA9IChyZXNYZW5kIC0gcmVzQ29udGFjdEVkZ2VUb0VuZE9mVmlhU3BhY2UgLSBjYWFyKHZpYUJib3gpIC0gbGFzdENvbnRhY3RWYXJpYWJpbGl0eSAtICgtIGltcEVuYykgLSAoLSBpbXBFbmMpIC0gKC0gaW1wT2Zmc2V0KSAtICgtIGltcE9mZnNldCkpKSAobGF5ZXIyVmFyWG9yaWdpbiA9IChsYXN0Q29udGFjdFhvcmlnaW4gKyBjYWFyKGxheWVyMkJib3gpKSkgKGxheWVyMlZhclhlbmQgPSAocmVzWGVuZCAtIGNhYXIobGF5ZXIyQmJveCkpKSAocmVzSWRYb3JpZ2luID0gcmVzWG9yaWdpbikgKHJlc0lkWGVuZCA9IChyZXNYZW5kICsgKC0gbGFzdENvbnRhY3RWYXJpYWJpbGl0eSkgKyAoLSByZXNDb250YWN0RWRnZVRvRW5kT2ZWaWFTcGFjZSkgKyBpbXBFbmMgKyBpbXBPZmZzZXQpKSkgKHQgKGxhc3RDb250YWN0WG9yaWdpbiA9IChyZXNYb3JpZ2luICsgbGFzdENvbnRhY3RWYXJpYWJpbGl0eSArICgtIGltcEVuYykgKyAoLSBpbXBFbmMpICsgKC0gaW1wT2Zmc2V0KSArICgtIGltcE9mZnNldCkpKSAobGF5ZXIyVmFyWG9yaWdpbiA9IChyZXNYb3JpZ2luICsgY2FhcihsYXllcjJCYm94KSkpIChsYXllcjJWYXJYZW5kID0gKGxhc3RDb250YWN0VmFyaWFiaWxpdHkgKyAoLSBpbXBPZmZzZXQpICsgKC0gaW1wT2Zmc2V0KSArICgtIGltcEVuYykgKyAoLSBpbXBFbmMpKSkgKHJlc0lkWG9yaWdpbiA9IChsYXN0Q29udGFjdFZhcmlhYmlsaXR5ICsgKC0gaW1wT2Zmc2V0KSArICgtIGltcEVuYykpKSAocmVzSWRYZW5kID0gcmVzWGVuZCkpKSAobGFzdENvbnRhY3RZb3JpZ2luID0gKHJlc1lvcmlnaW4gLSBjb250YWN0WWRlbHRhIC0gKC0gcncpIC0gY2FkYWRyKHJlc0luQ29udGFjdEJib3gpKSkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkICJicmMxIiAobGFzdENvbnRhY3RYb3JpZ2luOmxhc3RDb250YWN0WW9yaWdpbikgIlIwIiAxIGluc3RQYXJhbXMpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KChsYXllcjJWYXJYb3JpZ2luOihsYXN0Q29udGFjdFlvcmlnaW4gKyBsYXllcjJWYXJZb2Zmc2V0MSkpIChsYXllcjJWYXJYZW5kOihsYXN0Q29udGFjdFlvcmlnaW4gKyBsYXllcjJWYXJZb2Zmc2V0MikpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0MikgKHBpbmlkID0gKGRiQ3JlYXRlUGluIG5ldDIgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIHdoZW4oZG9nYm9uZSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmVzaXN0b3JMYXllciBsaXN0KCgobGF5ZXIyVmFyWG9yaWdpbiAtIGNhYXIobGF5ZXIyQmJveCkpOmxhc3RDb250YWN0WW9yaWdpbikgKChsYXllcjJWYXJYZW5kICsgY2FhcihsYXllcjJCYm94KSk6KGxhc3RDb250YWN0WW9yaWdpbiArIHJlc1ZhcmlhYmlsaXR5VykpKSkgY29uZCgob2RkcChudW1CZW5kcykgKHJlc0lkWGVuZCA9IChyZXNJZFhlbmQgLSBjYWFyKHZpYUJib3gpKSkpICh0IChyZXNJZFhvcmlnaW4gPSAocmVzSWRYb3JpZ2luICsgY2Fhcih2aWFCYm94KSkpKSkpIHVubGVzcygoMSA9PSBudW1CZW5kcykgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc0lkTGF5ZXIgbGlzdCgocmVzSWRYb3JpZ2luOnJlc1lvcmlnaW4pIChyZXNJZFhlbmQ6KHJlc1lvcmlnaW4gKyBydykpKSkgd2hlbigoaW1wbGFudExheWVyICYmIHNlY29uZEltcGxhbnQpIChyZXNJZFhvcmlnaW4gPSAocmVzSWRYb3JpZ2luIC0gaW1wRW5jKSkgKHJlc0lkWGVuZCA9IChyZXNJZFhlbmQgKyBpbXBFbmMpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaW1wbGFudExheWVyIGxpc3QoKHJlc0lkWG9yaWdpbjoocmVzWW9yaWdpbiAtIGltcEVuYykpIChtYXgocmVzSWRYZW5kIChyZXNJZFhvcmlnaW4gKyBpbXBXaWR0aCkpOm1heCgocmVzWW9yaWdpbiArIHJ3ICsgaW1wRW5jKSAoKHJlc1lvcmlnaW4gLSBpbXBFbmMpICsgaW1wV2lkdGgpKSkpKSkpIHdoZW4od2VsbExheWVyICh3ZWxsTGF5ZXJfWG9yaWdpbiA9IChyZXNYb3JpZ2luIC0gd2VsbEVuYykpICh3ZWxsTGF5ZXJfWW9yaWdpbiA9IG1heCgocncgKyB3ZWxsRW5jKSAoY29udGFjdFlkZWx0YSArIHdlbGxFbmMgKyBjYWRhZHIocmVzSW5Db250YWN0QmJveCkpKSkgKHdlbGxMYXllcl9YZW5kID0gKHJlc1hlbmQgKyB3ZWxsRW5jKSkgKHdlbGxMYXllcl9ZZW5kID0gbWluKChyZXNZb3JpZ2luIC0gd2VsbEVuYykgKGxhc3RDb250YWN0WW9yaWdpbiArICgtIHdlbGxFbmMpKSkpIHdoZW4oKCh3ZWxsTGF5ZXJfWGVuZCAtIHdlbGxMYXllcl9Yb3JpZ2luKSA8IHdlbGxtaW5XaWR0aCkgKERpZmZfd2VsbF93aWR0aCA9ICh3ZWxsbWluV2lkdGggLSAod2VsbExheWVyX1hlbmQgLSB3ZWxsTGF5ZXJfWG9yaWdpbikpKSAod2VsbExheWVyX1hlbmQgPSAod2VsbExheWVyX1hlbmQgKyAoRGlmZl93ZWxsX3dpZHRoIC8gMikpKSAod2VsbExheWVyX1hvcmlnaW4gPSAod2VsbExheWVyX1hvcmlnaW4gLSAoRGlmZl93ZWxsX3dpZHRoIC8gMikpKSkgd2hlbigoKHdlbGxMYXllcl9Zb3JpZ2luIC0gd2VsbExheWVyX1llbmQpIDwgd2VsbG1pbldpZHRoKSAoRGlmZl93ZWxsX3dpZHRoID0gKHdlbGxtaW5XaWR0aCAtICh3ZWxsTGF5ZXJfWW9yaWdpbiAtIHdlbGxMYXllcl9ZZW5kKSkpICh3ZWxsTGF5ZXJfWWVuZCA9ICh3ZWxsTGF5ZXJfWWVuZCAtIChEaWZmX3dlbGxfd2lkdGggLyAyKSkpICh3ZWxsTGF5ZXJfWW9yaWdpbiA9ICh3ZWxsTGF5ZXJfWW9yaWdpbiArIChEaWZmX3dlbGxfd2lkdGggLyAyKSkpKSAod2VsbExheWVyX2JCb3ggPSBsaXN0KCh3ZWxsTGF5ZXJfWG9yaWdpbjp3ZWxsTGF5ZXJfWW9yaWdpbikgKHdlbGxMYXllcl9YZW5kOndlbGxMYXllcl9ZZW5kKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgd2VsbExheWVyX2JCb3gpKSB3aGVuKChmdWxsSW1wbGFudExheWVyICYmIGltcGxhbnQpIChidWxraWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZnVsbEltcGxhbnRMYXllciBsaXN0KGxpc3QoKHJlc1hvcmlnaW4gLSBmdWxsSW1wRW5jKSBtYXgoKHJ3ICsgZnVsbEltcEVuYykgKGNvbnRhY3RZZGVsdGEgKyBmdWxsSW1wRW5jICsgY2FkYWRyKHJlc0luQ29udGFjdEJib3gpKSkpIGxpc3QoKHJlc1hlbmQgKyBmdWxsSW1wRW5jKSBtaW4oKHJlc1lvcmlnaW4gLSBmdWxsSW1wRW5jKSAobGFzdENvbnRhY3RZb3JpZ2luIC0gZnVsbEltcEVuYykpKSkpKSAoYk5ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJiIikpIChkYkNyZWF0ZVRlcm0gYk5ldCAiYiIgImlucHV0IikgKGRiQ3JlYXRlUGluIGJOZXQgYnVsa2lkICJiIikpKQAocmVzaXN0b3JMYXllciByZXNJZExheWVyIG1pblJlc1NwYWNlIHJlc0N1dExheWVyIHJlc0N1dFdpZHRoIHJlc2lzdG9yTGF5ZXJHcmlkIGltcGxhbnRMYXllciBpbXBFbmMgaW1wV2lkdGggZnVsbEltcGxhbnRMYXllciBmdWxsSW1wRW5jIHdlbGxMYXllciB3ZWxsbWluV2lkdGggd2VsbEVuYyBpbXBTcGFjZUNvbnRhY3Qgcncgcmwgc3BhY2VCZXR3ZWVuUnVucyBtYXhSdW5MZW5ndGggdmFyaWFiaWxpdHkgY29udGFjdE5hbWUgaW1wbGFudCBzZWNvbmRJbXBsYW50IG5ldCBuZXQyIGltcE9mZnNldCBjb250YWN0SWQgcmVzSW5Db250YWN0QmJveCBsYXllcjIgdmlhQmJveCByZXNDb250YWN0RWRnZVRvRW5kT2ZWaWFTcGFjZSBkb2dib25lIGNvbnRhY3RXaWR0aCBwYXJhbXMgY29udGFjdFBpdGNoIGNvbnRhY3RTcGFjZSBlZmZlY3RpdmVSdyBudW1Sb3dzQ29udGFjdHMgaW5zdFBhcmFtcyBhY3R1YWxDb250YWN0VyBjb250YWN0WWRlbHRhIGVmZmVjdGl2ZVJsIG51bUJlbmRzIHRoZVJ1bkxlbmd0aCBydW5EZWx0YSByZXNYb3JpZ2luIHJlc1hlbmQgbGVmdEJlbmRYZW5kIHJpZ2h0QmVuZFhvcmlnaW4gcmVzWW9yaWdpbiByZXNZZGVsdGEgbGFzdENvbnRhY3RWYXJpYWJpbGl0eSBmaXJzdENvbnRhY3RWYXJpYWJpbGl0eSBtYXhWYXJpYWJpbGl0eSBoYWxmUncgY3V0TGVuZ3RoIHRoZU5ldCByb3cgZGJpZCBjdXRYb3JpZ2luIGRiaWRMIGRiaWRSIGltcFhvcmlnaW4gaW1wWW9yaWdpbiBpbXBYZW5kIGltcFllbmQgc3R1YlhvcmlnaW4gc3R1YlhlbmQgc3R1YlhvcmlnaW5JbXBDb29yZCBzdHViWGVuZEltcENvb3JkIHRoZU1hc3RlciBsYXllcjJCYm94IHJlc1ZhcmlhYmlsaXR5VyBsYXllcjJWYXJZb2Zmc2V0MSBsYXllcjJWYXJZb2Zmc2V0MiBwaW5pZCByZXNJZFhlbmQgbGFzdENvbnRhY3RYb3JpZ2luIGxheWVyMlZhclhvcmlnaW4gbGF5ZXIyVmFyWGVuZCByZXNJZFhvcmlnaW4gbGFzdENvbnRhY3RZb3JpZ2luIHdlbGxMYXllcl9Yb3JpZ2luIHdlbGxMYXllcl9Zb3JpZ2luIHdlbGxMYXllcl9YZW5kIHdlbGxMYXllcl9ZZW5kIERpZmZfd2VsbF93aWR0aCB3ZWxsTGF5ZXJfYkJveCBidWxraWQgYk5ldCkAKChydyAwLjApIChybCAwLjApIChzcGFjZUJldHdlZW5SdW5zIDAuMCkgKG1heFJ1bkxlbmd0aCAwLjApICh2YXJpYWJpbGl0eSAiRkFMU0UiKSAoY29udGFjdE5hbWUgIiIpIChpbXBsYW50IHQpIChzZWNvbmRJbXBsYW50IHQpKQAoKHJlc2lzdG9yTGF5ZXIgInkwIikgKHJlc0lkTGF5ZXIgInkxIikgKG1pblJlc1NwYWNlIDAuMCkgKHJlc0N1dExheWVyICJ5MiIpIChyZXNDdXRXaWR0aCAwLjApIChyZXNpc3RvckxheWVyR3JpZCAwLjApIChpbXBsYW50TGF5ZXIgbmlsKSAoaW1wRW5jIDAuMCkgKGltcFdpZHRoIDAuMCkgKGZ1bGxJbXBsYW50TGF5ZXIgbmlsKSAoZnVsbEltcEVuYyAwLjApICh3ZWxsTGF5ZXIgbmlsKSAod2VsbG1pbldpZHRoIDAuMCkgKHdlbGxFbmMgMC4wKSAoaW1wU3BhY2VDb250YWN0IDAuMCkpAChmb3JlYWNoKHhMaXN0IGFuY2hvckxheWVycyB3aGVuKChzcGxMYXllciAmJiBsaXN0cCh4TGlzdCkpIGVycm9yKHNwcmludGYobmlsICJhbmNob3JDbGFzczogYW5jaG9yTGF5ZXJzIChsaXN0IChsaXN0ICogKikpIGNhbiBub3QgYmUgdXNlZCBpbiBwYXJhbGxlbCB3aXRoIHNwbExheWVyXG4iKSkpKSBpZigoKGNoYW1mZXIgPT0gdCkgfHwgKGNoYW1mZXIgPT0gIlRSVUUiKSB8fCAoZW5kU3R5bGUgPT0gIlNUQUdHRVIiKSkgdGhlbiAoY2hhbWZlciA9IHQpIGVsc2UgKGNoYW1mZXIgPSBuaWwpKSBpZigoKGV2ZW5FbmRzID09IHQpIHx8IChldmVuRW5kcyA9PSAiVFJVRSIpKSB0aGVuIChldmVuRW5kcyA9IHQpIGVsc2UgKGV2ZW5FbmRzID0gbmlsKSkgaWYoKChmdWxsQW5jaG9yID09IHQpIHx8IChmdWxsQW5jaG9yID09ICJUUlVFIikpIHRoZW4gKGZ1bGxBbmNob3IgPSB0KSBlbHNlIChmdWxsQW5jaG9yID0gbmlsKSkgaWYoKChob3Jpek9yNDUgPT0gdCkgfHwgKGhvcml6T3I0NSA9PSAiVFJVRSIpKSB0aGVuIChob3Jpek9yNDUgPSB0KSBlbHNlIChob3Jpek9yNDUgPSBuaWwpKSBpZigoYW5jVHlwZSA9PSAiZnVsbCIpIHRoZW4gKGZ1bGxBbmNob3IgPSB0KSkgaWYoKGFuY1R5cGUgPT0gInNsYW50IikgdGhlbiAoZnVsbEFuY2hvciA9IG5pbCkgKGhvcml6T3I0NSA9IG5pbCkpIGlmKChhbmNUeXBlID09ICJob3Jpem9udGFsIikgdGhlbiAoZnVsbEFuY2hvciA9IG5pbCkgKGhvcml6T3I0NSA9IHQpKSAocm9vdDIgPSBzcXJ0KDIpKSAoZ3JpZE11bHQgPSByb3VuZCgoMS4wIC8gZ3JpZCkpKSAobnVtQW5jaG9ycyA9IChmbG9vciBudW1BbmNob3JzKSkgKGFuY2hvcldpZHRoID0gKChjZWlsaW5nICgoYW5jaG9yV2lkdGggLyBncmlkKSArIC0xZS0wNikpICogZ3JpZCkpIChhbmNob3JDZW50ZXIgPSAoYW5jaG9yV2lkdGggLyAyKSkgKGFuY2hvclNwYWNlID0gKGdyaWQgKiAoY2VpbGluZyAoYW5jaG9yU3BhY2UgKiBncmlkTXVsdCkpKSkgKGFuY2hvckxlbmd0aFggPSAoZ3JpZCAqIChjZWlsaW5nIChhbmNob3JMZW5ndGhYICogZ3JpZE11bHQpKSkpIChhbmNob3JMZW5ndGhZID0gKGdyaWQgKiAoY2VpbGluZyAoYW5jaG9yTGVuZ3RoWSAqIGdyaWRNdWx0KSkpKSAoYW5jaG9yTGVuZ3RoWiA9IChncmlkICogKGNlaWxpbmcgKChhbmNob3JMZW5ndGhaIC8gcm9vdDIpICogZ3JpZE11bHQpKSkpIChhbmNob3JDZW50ZXJaID0gKGdyaWQgKiAoY2VpbGluZyAoKGFuY2hvckNlbnRlciAvIHJvb3QyKSAqIGdyaWRNdWx0KSkpKSAoYW5jaG9yV2lkdGhaID0gKGdyaWQgKiAoZmxvb3IgKChhbmNob3JXaWR0aCAvIHJvb3QyKSAqIGdyaWRNdWx0KSkpKSAoYW5jaG9yU3BhY2VaID0gKGdyaWQgKiAoY2VpbGluZyAoKGFuY2hvclNwYWNlIC8gcm9vdDIpICogZ3JpZE11bHQpKSkpICh0YW5DYWwgPSAwLjQxNDIxMzYpIChkQW5jaG9yTGVuZ3RoID0gKGdyaWQgKiAoY2VpbGluZyAodGFuQ2FsICogKGFuY2hvcldpZHRoICsgYW5jaG9yU3BhY2UpICogZ3JpZE11bHQpKSkpIChkQW5jaG9yTGVuZ3RoID0gKGRBbmNob3JMZW5ndGggKyBncmlkKSkgKGFuY2hvckxlbmd0aFogPSBtYXgoYW5jaG9yTGVuZ3RoWiBhbmNob3JXaWR0aCkpIChjaGFtZmVyTCA9IDAuMCkgd2hlbihjaGFtZmVyIChjaGFtZmVyTCA9IChhbmNob3JXaWR0aCArIGFuY2hvclNwYWNlKSkpIChudW1Db250YWN0cyA9IGxlbmd0aChhbmNob3JDb250YWN0cykpIChtaW5TcGFjZSA9IDApIGZvcmVhY2goY29udGFjdCBhbmNob3JDb250YWN0cyAobWluU3BhY2UgPSAobWluU3BhY2UgKyBjYWRyKGNvbnRhY3QpKSkpIChtaW5TcGFjZTQ1ID0gKG1pblNwYWNlICogcm9vdDIpKSBpZigodmlhUGl0Y2ggPj0gY29udGFjdFBpdGNoKSB0aGVuICh1c2VQaXRjaCA9IHZpYVBpdGNoKSBlbHNlICh1c2VQaXRjaCA9IGNvbnRhY3RQaXRjaCkpICh1c2VQaXRjaDQ1ID0gKHVzZVBpdGNoICsgKG1pblNwYWNlNDUgLSBtaW5TcGFjZSkpKSAodXNlUGl0Y2ggPSAoKGdyaWQgKiAoY2VpbGluZyAodXNlUGl0Y2ggKiBncmlkTXVsdCkpKSArIGdyaWQpKSAodXNlUGl0Y2g0NSA9ICgoZ3JpZCAqIChjZWlsaW5nICh1c2VQaXRjaDQ1ICogZ3JpZE11bHQpKSkgKyBncmlkKSkgdW5sZXNzKCh1c2VQaXRjaCA+PSBtaW5TcGFjZSkgKHVzZVBpdGNoID0gbWluU3BhY2UpKSB1bmxlc3MoKHVzZVBpdGNoNDUgPj0gbWluU3BhY2U0NSkgKHVzZVBpdGNoNDUgPSBtaW5TcGFjZTQ1KSkgKGNvbnRhY3RTcGFjZSA9IChncmlkICogKGZsb29yICgoKHVzZVBpdGNoIC0gbWluU3BhY2UpIC8gbnVtQ29udGFjdHMpICogZ3JpZE11bHQpKSkpIChjb250YWN0U3BhY2U0NSA9IChncmlkICogKGZsb29yICgoKHVzZVBpdGNoNDUgLSBtaW5TcGFjZTQ1KSAvIG51bUNvbnRhY3RzKSAqIGdyaWRNdWx0KSkpKSAobWluTGVuZ3RoID0gKHVzZVBpdGNoICsgY29udGFjdFNwYWNlKSkgd2hlbigoYW5jaG9yTGVuZ3RoWCA8IG1pbkxlbmd0aCkgKGFuY2hvckxlbmd0aFggPSBtaW5MZW5ndGgpKSB3aGVuKChhbmNob3JMZW5ndGhZIDwgbWluTGVuZ3RoKSAoYW5jaG9yTGVuZ3RoWSA9IG1pbkxlbmd0aCkpIHdoZW4oZnVsbEFuY2hvciAoeDAgPSAwKSAoeTAgPSAoLSBhbmNob3JMZW5ndGhZKSkgd2hlbihldmVuRW5kcyAoZHgwID0gKGFuY2hvcldpZHRoICsgYW5jaG9yU3BhY2UpKSAoZHkwID0gKC0gY2hhbWZlckwpKSkgdW5sZXNzKGV2ZW5FbmRzIChkeDAgPSAoYW5jaG9yV2lkdGggKyBhbmNob3JTcGFjZSArIGdyaWQpKSAoZHkwID0gKCgtIGNoYW1mZXJMKSArIGdyaWQpKSkgKGR4ID0gYW5jaG9yV2lkdGgpIChkeSA9IGFuY2hvckxlbmd0aFkpIChkZHggPSAwKSAoZGR5ID0gKGRBbmNob3JMZW5ndGggKyBjaGFtZmVyTCkpIGZvcihpIDEgbnVtQW5jaG9ycyBmb3JlYWNoKHRoaXNMYXllciBhbmNob3JMYXllcnMgaWYoKCh0aGlzTGF5ZXIgPT0gc3BsTGF5ZXIpIHx8IGxpc3RwKHRoaXNMYXllcikpIHRoZW4gd2hlbihsaXN0cCh0aGlzTGF5ZXIpIChzcGxMYXllck1heFdpZHRoID0gY2Fkcih0aGlzTGF5ZXIpKSAodGhpc0xheWVyID0gY2FyKHRoaXNMYXllcikpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdCh0aGlzTGF5ZXIgImRyYXdpbmciKSBsaXN0KCgoeDAgKyAoKGFuY2hvcldpZHRoIC0gc3BsTGF5ZXJNYXhXaWR0aCkgLyAyKSk6eTApICgoKHgwICsgZHgpIC0gKChhbmNob3JXaWR0aCAtIHNwbExheWVyTWF4V2lkdGgpIC8gMikpOih5MCArIChkeSAtIChzcGxMYXllck1heFdpZHRoIC8gMikpKSkpKSBlbHNlIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsaXN0KHRoaXNMYXllciAiZHJhd2luZyIpIGxpc3QoKHgwOnkwKSAoKHgwICsgZHgpOih5MCArIGR5KSkpKSkpIHdoZW4oKGkgPT0gbnVtQW5jaG9ycykgKHBWZXJ0ID0gbGlzdCgoKHgwICsgZHgpOnkwKSkpKSAobnVtQXJyYXlzID0gKGNlaWxpbmcgKChkeSAvIHVzZVBpdGNoKSAtIDAuNSkpKSAoeE9mZnNldCA9ICh4MCArIGFuY2hvckNlbnRlcikpICh2ZXJPZmZTZXQgPSAoKHkwICsgZHkpIC0gYW5jaG9yV2lkdGgpKSBmb3IoaiAxIG51bUFycmF5cyAoayA9IDEpIChvY2N1cGllZFNwYWNlID0gMCkgZm9yZWFjaChjb250YWN0IGFuY2hvckNvbnRhY3RzIChjb250YWN0V2lkdGggPSBjYWRyKGNvbnRhY3QpKSAoeGwgPSAoZ3JpZCAqIChjZWlsaW5nICgoeE9mZnNldCAtIChjb250YWN0V2lkdGggLyAyKSkgKiBncmlkTXVsdCkpKSkgKHlsID0gKGdyaWQgKiAoY2VpbGluZyAoKHkwICsgKChqIC0gMSkgKiB1c2VQaXRjaCkgKyAoayAqIGNvbnRhY3RTcGFjZSkgKyBvY2N1cGllZFNwYWNlKSAqIGdyaWRNdWx0KSkpKSAoeHUgPSAoeGwgKyBjb250YWN0V2lkdGgpKSAoeXUgPSAoeWwgKyBjb250YWN0V2lkdGgpKSBpZigoeXUgPD0gdmVyT2ZmU2V0KSB0aGVuIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsaXN0KGNhcihjb250YWN0KSAiZHJhd2luZyIpIGxpc3QoKHhsOnlsKSAoeHU6eXUpKSkgKGsgPSAoayArIDEpKSAob2NjdXBpZWRTcGFjZSA9IChvY2N1cGllZFNwYWNlICsgY29udGFjdFdpZHRoKSkgd2hlbihjYWRkcihjb250YWN0KSAoY29udGFjdEltcGxhbnQgPSBtZW1iZXIoY2FkZHIoY29udGFjdCkgY29udGFjdCkpIGlmKG50aCgyIGNvbnRhY3RJbXBsYW50KSB0aGVuIChjb250YWN0SW1wRW5jWCA9IG50aCgxIGNvbnRhY3RJbXBsYW50KSkgKGNvbnRhY3RJbXBFbmNZID0gbnRoKDIgY29udGFjdEltcGxhbnQpKSBlbHNlIChjb250YWN0SW1wRW5jWCA9IG50aCgxIGNvbnRhY3RJbXBsYW50KSkgKGNvbnRhY3RJbXBFbmNZID0gbnRoKDEgY29udGFjdEltcGxhbnQpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGNhcihjb250YWN0SW1wbGFudCkgbGlzdChsaXN0KCh4bCArICgtIGNvbnRhY3RJbXBFbmNYKSkgKHlsICsgKC0gY29udGFjdEltcEVuY1kpKSkgbGlzdCgoeHUgKyBjb250YWN0SW1wRW5jWCkgKHl1ICsgY29udGFjdEltcEVuY1kpKSkpKSkpKSAoeDAgPSAoeDAgKyBkeDApKSAoeTAgPSAoeTAgKyBkeTApKSAoZHggPSAoZHggKyBkZHgpKSAoZHkgPSAoZHkgKyBkZHkpKSkpIHdoZW4oKGZ1bGxBbmNob3IgfHwgKG5vdCBob3Jpek9yNDUpKSBpZihmdWxsQW5jaG9yIHRoZW4gKHgwID0gYW5jaG9yV2lkdGgpICh5MCA9IDAuMCkgKGR4ID0gYW5jaG9yTGVuZ3RoWikgKGR5ID0gYW5jaG9yTGVuZ3RoWikgKGRkeCA9ICgoYW5jaG9yV2lkdGggKyBhbmNob3JTcGFjZSkgLSBkQW5jaG9yTGVuZ3RoKSkgKGRkeSA9ICgoYW5jaG9yV2lkdGggKyBhbmNob3JTcGFjZSkgLSBkQW5jaG9yTGVuZ3RoKSkgZWxzZSAoeDAgPSAwLjApICh5MCA9IDAuMCkgKGR4ID0gYW5jaG9yTGVuZ3RoWikgKGR5ID0gYW5jaG9yTGVuZ3RoWikgKGRkeCA9ICgoYW5jaG9yV2lkdGggKyBhbmNob3JTcGFjZSkgLSBkQW5jaG9yTGVuZ3RoKSkgKGRkeSA9ICgoYW5jaG9yV2lkdGggKyBhbmNob3JTcGFjZSkgLSBkQW5jaG9yTGVuZ3RoKSkpIHdoZW4oZXZlbkVuZHMgKGR4MCA9IChhbmNob3JXaWR0aCArIGFuY2hvclNwYWNlKSkgKGR5MCA9IGRBbmNob3JMZW5ndGgpKSB1bmxlc3MoZXZlbkVuZHMgKGR4MCA9IChhbmNob3JXaWR0aCArIGFuY2hvclNwYWNlICsgZ3JpZCkpIChkeTAgPSAoZEFuY2hvckxlbmd0aCArIGdyaWQpKSkgZm9yKGkgMSBudW1BbmNob3JzIGZvcmVhY2godGhpc0xheWVyIGFuY2hvckxheWVycyAoeDEgPSAoeDAgLSBkeCkpICh5MSA9ICh5MCArIGR5KSkgKHgyID0gKHgxIC0gYW5jaG9yV2lkdGhaKSkgKHkyID0gKHkxIC0gYW5jaG9yV2lkdGhaKSkgKHgzID0gKHgwIC0gYW5jaG9yV2lkdGhaKSkgKHkzID0gKHkwIC0gYW5jaG9yV2lkdGhaKSkgaWYoKCh0aGlzTGF5ZXIgPT0gc3BsTGF5ZXIpIHx8IGxpc3RwKHRoaXNMYXllcikpIHRoZW4gd2hlbihsaXN0cCh0aGlzTGF5ZXIpIChzcGxMYXllck1heFdpZHRoID0gY2Fkcih0aGlzTGF5ZXIpKSAodGhpc0xheWVyID0gY2FyKHRoaXNMYXllcikpKSBpZihmdWxsQW5jaG9yIHRoZW4gKHNqbl9YNiA9ICh4MCAtICgoYW5jaG9yV2lkdGggLSBzcGxMYXllck1heFdpZHRoKSAvIDIpKSkgKHNqbl9ZNiA9ICh5MCAtIChzcGxMYXllck1heFdpZHRoIC8gMikpKSAoc2puX1g3ID0gKHgxIC0gKHNwbExheWVyTWF4V2lkdGggLyAyKSkpIChzam5fWTcgPSAoeTEgLSAoKGFuY2hvcldpZHRoIC0gc3BsTGF5ZXJNYXhXaWR0aCkgLyAyKSkpIChzam5fWDggPSAoZ3JpZCAqIChjZWlsaW5nICgoc2puX1g3IC0gKHNwbExheWVyTWF4V2lkdGggLyByb290MikpICogZ3JpZE11bHQpKSkpIChzam5fWTggPSAoZ3JpZCAqIChjZWlsaW5nICgoc2puX1k3IC0gKHNwbExheWVyTWF4V2lkdGggLyByb290MikpICogZ3JpZE11bHQpKSkpIChzam5fWDUgPSAoZ3JpZCAqIChjZWlsaW5nICgoc2puX1g2IC0gKHNwbExheWVyTWF4V2lkdGggLyByb290MikpICogZ3JpZE11bHQpKSkpIChzam5fWTUgPSAoZ3JpZCAqIChjZWlsaW5nICgoc2puX1k2IC0gKHNwbExheWVyTWF4V2lkdGggLyByb290MikpICogZ3JpZE11bHQpKSkpIGVsc2UgKHRlbXBfT2Zmc2V0ID0gKCgoYW5jaG9yV2lkdGggLSBzcGxMYXllck1heFdpZHRoKSAqIHJvb3QyKSAvIDQpKSAoc2puX1g2ID0gKHgwIC0gdGVtcF9PZmZzZXQpKSAoc2puX1k2ID0gKHkwIC0gdGVtcF9PZmZzZXQpKSAoc2puX1g3ID0gKHgxIC0gdGVtcF9PZmZzZXQpKSAoc2puX1k3ID0gKHkxIC0gdGVtcF9PZmZzZXQpKSAoc2puX1g4ID0gKHgyICsgdGVtcF9PZmZzZXQpKSAoc2puX1k4ID0gKHkyICsgdGVtcF9PZmZzZXQpKSAoc2puX1g1ID0gKHgzICsgdGVtcF9PZmZzZXQpKSAoc2puX1k1ID0gKHkzICsgdGVtcF9PZmZzZXQpKSkgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxpc3QodGhpc0xheWVyICJkcmF3aW5nIikgbGlzdCgoc2puX1g2OnNqbl9ZNikgKHNqbl9YNzpzam5fWTcpIChzam5fWDg6c2puX1k4KSAoc2puX1g1OnNqbl9ZNSkgKHNqbl9YNjpzam5fWTYpKSkgZWxzZSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGlzdCh0aGlzTGF5ZXIgImRyYXdpbmciKSBsaXN0KCh4MDp5MCkgKHgxOnkxKSAoeDI6eTIpICh4Mzp5MykgKHgwOnkwKSkpKSkgd2hlbigoaSA9PSBudW1BbmNob3JzKSAocDQ1ID0gbGlzdCgoeDA6eTApICh4MTp5MSkpKSkgKG51bUFycmF5cyA9IChjZWlsaW5nICgoZHggLyB1c2VQaXRjaDQ1KSAqIHJvb3QyKSkpIChvZmZzZXQgPSBhbmNob3JDZW50ZXJaKSBpZihmdWxsQW5jaG9yIHRoZW4gKHNsdE9mZnNldCA9ICgoZ3JpZCAqIChjZWlsaW5nICgoeDAgLSBkeCAtIChhbmNob3JXaWR0aFogLyAyKSkgKiBncmlkTXVsdCkpKSArIChhbmNob3JaU2hyaW5rIC8gMikpKSBlbHNlIChzbHRPZmZzZXQgPSAoKGdyaWQgKiAoY2VpbGluZyAoKCh4MCAtIGR4IC0gKGFuY2hvcldpZHRoWiAvIDIpKSArIChjb250YWN0U3BhY2U0NSAvIHJvb3QyKSkgKiBncmlkTXVsdCkpKSArIChhbmNob3JaU2hyaW5rIC8gMikpKSkgaWYoZnVsbEFuY2hvciB0aGVuIChzdGFydCA9IDEpIGVsc2UgKHN0YXJ0ID0gMSkpIGZvcihqIHN0YXJ0IG51bUFycmF5cyAoayA9IDEpIChvY2N1cGllZFNwYWNlID0gMCkgZm9yZWFjaChjb250YWN0IGFuY2hvckNvbnRhY3RzIChjb250YWN0V2lkdGggPSBjYWRyKGNvbnRhY3QpKSAoeGwgPSAoZ3JpZCAqIChjZWlsaW5nICgoeDAgLSBvZmZzZXQgLSAoKCgoaiAtIDEpICogdXNlUGl0Y2g0NSkgKyAoayAqIGNvbnRhY3RTcGFjZTQ1KSArIG9jY3VwaWVkU3BhY2UpIC8gcm9vdDIpKSAqIGdyaWRNdWx0KSkpKSAoeWwgPSAoZ3JpZCAqIChjZWlsaW5nICgoKHkwIC0gb2Zmc2V0KSArICgoKChqIC0gMSkgKiB1c2VQaXRjaDQ1KSArIChrICogY29udGFjdFNwYWNlNDUpICsgb2NjdXBpZWRTcGFjZSkgLyByb290MikpICogZ3JpZE11bHQpKSkpICh4dSA9ICh4bCAtIGNvbnRhY3RXaWR0aCkpICh5dSA9ICh5bCArIGNvbnRhY3RXaWR0aCkpIGlmKCgoeGwgLSBjb250YWN0U3BhY2UpID49IHNsdE9mZnNldCkgdGhlbiAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdChjYXIoY29udGFjdCkgImRyYXdpbmciKSBsaXN0KCh4bDp5bCkgKHh1Onl1KSkpIChrID0gKGsgKyAxKSkgKG9jY3VwaWVkU3BhY2UgPSAob2NjdXBpZWRTcGFjZSArIChjb250YWN0V2lkdGggKiByb290MikpKSB3aGVuKGNhZGRyKGNvbnRhY3QpIChjb250YWN0SW1wbGFudCA9IG1lbWJlcihjYWRkcihjb250YWN0KSBjb250YWN0KSkgaWYobnRoKDIgY29udGFjdEltcGxhbnQpIHRoZW4gKGNvbnRhY3RJbXBFbmNYID0gbnRoKDEgY29udGFjdEltcGxhbnQpKSAoY29udGFjdEltcEVuY1kgPSBudGgoMiBjb250YWN0SW1wbGFudCkpIGVsc2UgKGNvbnRhY3RJbXBFbmNYID0gbnRoKDEgY29udGFjdEltcGxhbnQpKSAoY29udGFjdEltcEVuY1kgPSBudGgoMSBjb250YWN0SW1wbGFudCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgY2FyKGNvbnRhY3RJbXBsYW50KSBsaXN0KGxpc3QoKHhsICsgY29udGFjdEltcEVuY1gpICh5bCAtIGNvbnRhY3RJbXBFbmNZKSkgbGlzdCgoeHUgLSBjb250YWN0SW1wRW5jWCkgKHl1ICsgY29udGFjdEltcEVuY1kpKSkpKSkpKSAoeDAgPSAoeDAgKyBkeDApKSAoeTAgPSAoeTAgKyBkeTApKSAoZHggPSAoZHggKyBkZHgpKSAoZHkgPSAoZHkgKyBkZHkpKSkpIHdoZW4oKGZ1bGxBbmNob3IgfHwgaG9yaXpPcjQ1KSBpZihmdWxsQW5jaG9yIHRoZW4gKHgwID0gKCgtIGFuY2hvckxlbmd0aFgpIC0gKGFuY2hvckxlbmd0aFogLSBhbmNob3JXaWR0aCkpKSAoeTAgPSAoYW5jaG9yTGVuZ3RoWiAtIGFuY2hvcldpZHRoKSkgd2hlbihldmVuRW5kcyAoZHgwID0gKC0gY2hhbWZlckwpKSAoZHkwID0gKGFuY2hvcldpZHRoICsgYW5jaG9yU3BhY2UpKSkgdW5sZXNzKGV2ZW5FbmRzIChkeDAgPSAoKC0gY2hhbWZlckwpICsgZ3JpZCkpIChkeTAgPSAoYW5jaG9yV2lkdGggKyBhbmNob3JTcGFjZSArIGdyaWQpKSkgKGR4ID0gYW5jaG9yTGVuZ3RoWCkgKGR5ID0gYW5jaG9yV2lkdGgpIChkZHggPSAoZEFuY2hvckxlbmd0aCArIGNoYW1mZXJMKSkgKGRkeSA9IDApIGVsc2UgKHgwID0gMCkgKHkwID0gMCkgKGR4MCA9IDApIChkeTAgPSAoYW5jaG9yV2lkdGggKyBhbmNob3JTcGFjZSkpIChkeCA9IGFuY2hvckxlbmd0aFgpIChkeSA9IGFuY2hvcldpZHRoKSAoZGR4ID0gMCkgKGRkeSA9IDApKSAoaG9yaXpPZmZTZXQgPSBhbmNob3JMZW5ndGhYKSBmb3IoaSAxIG51bUFuY2hvcnMgZm9yZWFjaCh0aGlzTGF5ZXIgYW5jaG9yTGF5ZXJzIGlmKCgodGhpc0xheWVyID09IHNwbExheWVyKSB8fCBsaXN0cCh0aGlzTGF5ZXIpKSB0aGVuIHdoZW4obGlzdHAodGhpc0xheWVyKSAoc3BsTGF5ZXJNYXhXaWR0aCA9IGNhZHIodGhpc0xheWVyKSkgKHRoaXNMYXllciA9IGNhcih0aGlzTGF5ZXIpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxpc3QodGhpc0xheWVyICJkcmF3aW5nIikgY29uZCgoZnVsbEFuY2hvciBsaXN0KCh4MDooeTAgKyAoKGFuY2hvcldpZHRoIC0gc3BsTGF5ZXJNYXhXaWR0aCkgLyAyKSkpICgoeDAgKyAoZHggLSAoc3BsTGF5ZXJNYXhXaWR0aCAvIDIpKSk6KCh5MCArIGR5KSAtICgoYW5jaG9yV2lkdGggLSBzcGxMYXllck1heFdpZHRoKSAvIDIpKSkpKSAodCBsaXN0KCh4MDooeTAgKyAoKGFuY2hvcldpZHRoIC0gc3BsTGF5ZXJNYXhXaWR0aCkgLyAyKSkpICgoeDAgKyBkeCk6KCh5MCArIGR5KSAtICgoYW5jaG9yV2lkdGggLSBzcGxMYXllck1heFdpZHRoKSAvIDIpKSkpKSkpIGVsc2UgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxpc3QodGhpc0xheWVyICJkcmF3aW5nIikgbGlzdCgoeDA6eTApICgoeDAgKyBkeCk6KHkwICsgZHkpKSkpKSkgd2hlbigoaSA9PSBudW1BbmNob3JzKSAocEhvciA9IGxpc3QoKHgwOih5MCArIGR5KSkpKSkgKG51bUFycmF5cyA9IChjZWlsaW5nIChkeCAvIHVzZVBpdGNoKSkpICh5T2Zmc2V0ID0gKHkwICsgYW5jaG9yQ2VudGVyKSkgaWYoZnVsbEFuY2hvciAoaG9yaXpPZmZTZXQgPSAoZ3JpZCAqIChjZWlsaW5nICgoKHgwICsgZHgpIC0gKGFuY2hvcldpZHRoIC8gMi4wKSkgKiBncmlkTXVsdCkpKSkpIGZvcihqIDEgbnVtQXJyYXlzIChrID0gMSkgKG9jY3VwaWVkU3BhY2UgPSAwKSBmb3JlYWNoKGNvbnRhY3QgYW5jaG9yQ29udGFjdHMgKGNvbnRhY3RXaWR0aCA9IGNhZHIoY29udGFjdCkpICh4bCA9IChncmlkICogKGNlaWxpbmcgKCh4MCArICgoaiAtIDEpICogdXNlUGl0Y2gpICsgKGsgKiBjb250YWN0U3BhY2UpICsgb2NjdXBpZWRTcGFjZSkgKiBncmlkTXVsdCkpKSkgKHlsID0gKGdyaWQgKiAoY2VpbGluZyAoKHlPZmZzZXQgLSAoY29udGFjdFdpZHRoIC8gMikpICogZ3JpZE11bHQpKSkpICh4dSA9ICh4bCArIGNvbnRhY3RXaWR0aCkpICh5dSA9ICh5bCArIGNvbnRhY3RXaWR0aCkpIGlmKCh4dSA8PSBob3Jpek9mZlNldCkgdGhlbiAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdChjYXIoY29udGFjdCkgImRyYXdpbmciKSBsaXN0KCh4bDp5bCkgKHh1Onl1KSkpIChrID0gKGsgKyAxKSkgKG9jY3VwaWVkU3BhY2UgPSAob2NjdXBpZWRTcGFjZSArIGNvbnRhY3RXaWR0aCkpIHdoZW4oY2FkZHIoY29udGFjdCkgKGNvbnRhY3RJbXBsYW50ID0gbWVtYmVyKGNhZGRyKGNvbnRhY3QpIGNvbnRhY3QpKSBpZihudGgoMiBjb250YWN0SW1wbGFudCkgdGhlbiAoY29udGFjdEltcEVuY1ggPSBudGgoMSBjb250YWN0SW1wbGFudCkpIChjb250YWN0SW1wRW5jWSA9IG50aCgyIGNvbnRhY3RJbXBsYW50KSkgZWxzZSAoY29udGFjdEltcEVuY1ggPSBudGgoMSBjb250YWN0SW1wbGFudCkpIChjb250YWN0SW1wRW5jWSA9IG50aCgxIGNvbnRhY3RJbXBsYW50KSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjYXIoY29udGFjdEltcGxhbnQpIGxpc3QobGlzdCgoeGwgKyAoLSBjb250YWN0SW1wRW5jWCkpICh5bCArICgtIGNvbnRhY3RJbXBFbmNZKSkpIGxpc3QoKHh1ICsgY29udGFjdEltcEVuY1gpICh5dSArIGNvbnRhY3RJbXBFbmNZKSkpKSkpKSkgKHgwID0gKHgwICsgZHgwKSkgKHkwID0gKHkwICsgZHkwKSkgKGR4ID0gKGR4ICsgZGR4KSkgKGR5ID0gKGR5ICsgZGR5KSkpKSB3aGVuKGFuY2hvckltcExheWVycyBmb3JlYWNoKGltcFNldCBhbmNob3JJbXBMYXllcnMgKGltcExheWVyID0gY2FyKGltcFNldCkpIChpbXBFbmMgPSBjYWRyKGltcFNldCkpIChhbmNXID0gKChudW1BbmNob3JzICogKGFuY2hvcldpZHRoICsgYW5jaG9yU3BhY2UpKSAtIGFuY2hvclNwYWNlKSkgKGFuY1c0NSA9ICgoZ3JpZCAqIChjZWlsaW5nICgoYW5jVyAvIHJvb3QyKSAqIGdyaWRNdWx0KSkpICsgaW1wRW5jKSkgKGltcEVuYzQ1ID0gKGdyaWQgKiAoY2VpbGluZyAoaW1wRW5jICogcm9vdDIgKiBncmlkTXVsdCkpKSkgKGltcFcgPSAoYW5jVyArICgyICogaW1wRW5jKSkpIChpbXBXNDUgPSAoZ3JpZCAqIChjZWlsaW5nIChpbXBXICogcm9vdDIgKiBncmlkTXVsdCkpKSkgKGltcEwgPSAoYW5jaG9yTGVuZ3RoWCArICgyICogaW1wRW5jKSkpIGNvbmQoKGZ1bGxBbmNob3IgKHgxYW5jID0gY2FhcihwVmVydCkpICh5MWFuYyA9IGNhZGFyKHBWZXJ0KSkgKHgyYW5jID0gY2FhcihwNDUpKSAoeTJhbmMgPSBjYWRhcihwNDUpKSAoeDNhbmMgPSBjYWFkcihwNDUpKSAoeTNhbmMgPSBjYWRhZHIocDQ1KSkgKHg0YW5jID0gY2FhcihwSG9yKSkgKHk0YW5jID0gY2FkYXIocEhvcikpICh4NWFuYyA9IHg0YW5jKSAoeTVhbmMgPSAoeTRhbmMgLSBhbmNXKSkgKHg2YW5jID0gKHgzYW5jIC0gKGFuY1cgKiB0YW5DYWwpKSkgKHk2YW5jID0gKHkzYW5jIC0gYW5jVykpICh4N2FuYyA9ICh4MmFuYyAtIGFuY1cpKSAoeTdhbmMgPSAoeTJhbmMgLSAoYW5jVyAqIHRhbkNhbCkpKSAoeDhhbmMgPSAoeDFhbmMgLSBhbmNXKSkgKHk4YW5jID0geTFhbmMpICh4NmFuYyA9IChncmlkICogKGZsb29yICh4NmFuYyAqIGdyaWRNdWx0KSkpKSAoeTdhbmMgPSAoZ3JpZCAqIChmbG9vciAoeTdhbmMgKiBncmlkTXVsdCkpKSkgKHgxID0gKHgxYW5jICsgaW1wRW5jNDUpKSAoeTEgPSAoeTFhbmMgLSBpbXBFbmMpKSAoeDIgPSAoeDJhbmMgKyBpbXBFbmM0NSkpICh5MiA9IHkyYW5jKSAoeDMgPSB4M2FuYykgKHkzID0gKHkzYW5jICsgaW1wRW5jNDUpKSAoeDQgPSAoeDRhbmMgLSBpbXBFbmMpKSAoeTQgPSAoeTRhbmMgKyBpbXBFbmM0NSkpICh4NSA9ICh4NWFuYyAtIGltcEVuYykpICh5NSA9ICh5NWFuYyAtIGltcEVuYzQ1KSkgKHg2ID0gKHg2YW5jIC0gaW1wRW5jKSkgKHk2ID0gKHk2YW5jIC0gaW1wRW5jNDUpKSAoeDcgPSAoeDdhbmMgLSBpbXBFbmM0NSkpICh5NyA9ICh5N2FuYyAtIGltcEVuYykpICh4OCA9ICh4OGFuYyAtIGltcEVuYzQ1KSkgKHk4ID0gKHk4YW5jIC0gaW1wRW5jKSkgKHBBbGwgPSBsaXN0KCh4MTp5MSkgKHgyOnkyKSAoeDM6eTMpICh4NDp5NCkgKHg1Onk1KSAoeDY6eTYpICh4Nzp5NykgKHg4Onk4KSAoeDE6eTEpKSkgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxpc3QoaW1wTGF5ZXIgImRyYXdpbmciKSBwQWxsKSkgKGhvcml6T3I0NSAoeDFhbmMgPSBjYWFyKHBIb3IpKSAoeTFhbmMgPSBjYWRhcihwSG9yKSkgKHgyYW5jID0gKHgxYW5jICsgYW5jaG9yTGVuZ3RoWCkpICh5MmFuYyA9ICh5MWFuYyAtIGFuY1cpKSAoeDEgPSAoeDFhbmMgLSBpbXBFbmMpKSAoeTEgPSAoeTFhbmMgKyBpbXBFbmMpKSAoeDIgPSAoeDJhbmMgKyBpbXBFbmMpKSAoeTIgPSAoeTJhbmMgLSBpbXBFbmMpKSAocEFsbCA9IGxpc3QoKHgxOnkxKSAoeDI6eTIpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxpc3QoaW1wTGF5ZXIgImRyYXdpbmciKSBwQWxsKSkgKHQgKHgxYW5jID0gY2FhcihwNDUpKSAoeTFhbmMgPSBjYWRhcihwNDUpKSAoeDJhbmMgPSBjYWFkcihwNDUpKSAoeTJhbmMgPSBjYWRhZHIocDQ1KSkgKHgzYW5jID0gKHgyYW5jIC0gYW5jVzQ1KSkgKHkzYW5jID0gKHkyYW5jIC0gYW5jVzQ1KSkgKHg0YW5jID0gKHgxYW5jIC0gYW5jVzQ1KSkgKHk0YW5jID0gKHkxYW5jIC0gYW5jVzQ1KSkgKHgxID0gKHgxYW5jICsgaW1wRW5jNDUpKSAoeTEgPSB5MWFuYykgKHgyID0geDJhbmMpICh5MiA9ICh5MmFuYyArIGltcEVuYzQ1KSkgKHgzID0gKHgzYW5jIC0gaW1wRW5jNDUpKSAoeTMgPSB5M2FuYykgKHg0ID0geDRhbmMpICh5NCA9ICh5NGFuYyAtIGltcEVuYzQ1KSkgKHBBbGwgPSBsaXN0KCh4MTp5MSkgKHgyOnkyKSAoeDM6eTMpICh4NDp5NCkpKSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGlzdChpbXBMYXllciAiZHJhd2luZyIpIHBBbGwpKSkpKSkAKGFuY2hvckxheWVycyBhbmNob3JJbXBMYXllcnMgYW5jaG9yQ29udGFjdHMgYW5jaG9yV2lkdGggYW5jaG9yU3BhY2UgdmlhUGl0Y2ggY29udGFjdFBpdGNoIGdyaWQgc3BsTGF5ZXIgc3BsTGF5ZXJNYXhXaWR0aCBhbmNob3JaU2hyaW5rIGFuY1R5cGUgZW5kU3R5bGUgZnVsbEFuY2hvciBob3Jpek9yNDUgYW5jaG9yTGVuZ3RoWCBhbmNob3JMZW5ndGhZIGFuY2hvckxlbmd0aFogbnVtQW5jaG9ycyBjaGFtZmVyIGV2ZW5FbmRzIHhMaXN0IHJvb3QyIGdyaWRNdWx0IGFuY2hvckNlbnRlciBhbmNob3JDZW50ZXJaIGFuY2hvcldpZHRoWiBhbmNob3JTcGFjZVogdGFuQ2FsIGRBbmNob3JMZW5ndGggY2hhbWZlckwgbnVtQ29udGFjdHMgbWluU3BhY2UgY29udGFjdCBtaW5TcGFjZTQ1IHVzZVBpdGNoIHVzZVBpdGNoNDUgY29udGFjdFNwYWNlIGNvbnRhY3RTcGFjZTQ1IG1pbkxlbmd0aCB4MCB5MCBkeDAgZHkwIGR4IGR5IGRkeCBkZHkgaSB0aGlzTGF5ZXIgcFZlcnQgbnVtQXJyYXlzIHhPZmZzZXQgdmVyT2ZmU2V0IGogayBvY2N1cGllZFNwYWNlIGNvbnRhY3RXaWR0aCB4bCB5bCB4dSB5dSBjb250YWN0SW1wbGFudCBjb250YWN0SW1wRW5jWCBjb250YWN0SW1wRW5jWSB4MSB5MSB4MiB5MiB4MyB5MyBzam5fWDYgc2puX1k2IHNqbl9YNyBzam5fWTcgc2puX1g4IHNqbl9ZOCBzam5fWDUgc2puX1k1IHRlbXBfT2Zmc2V0IHA0NSBvZmZzZXQgc2x0T2Zmc2V0IHN0YXJ0IGhvcml6T2ZmU2V0IHBIb3IgeU9mZnNldCBpbXBTZXQgaW1wTGF5ZXIgaW1wRW5jIGFuY1cgYW5jVzQ1IGltcEVuYzQ1IGltcFcgaW1wVzQ1IGltcEwgeDFhbmMgeTFhbmMgeDJhbmMgeTJhbmMgeDNhbmMgeTNhbmMgeDRhbmMgeTRhbmMgeDVhbmMgeTVhbmMgeDZhbmMgeTZhbmMgeDdhbmMgeTdhbmMgeDhhbmMgeThhbmMgeDQgeTQgeDUgeTUgeDYgeTYgeDcgeTcgeDggeTggcEFsbCkAKChhbmNUeXBlICIiKSAoZW5kU3R5bGUgIiIpIChmdWxsQW5jaG9yICJGQUxTRSIpIChob3Jpek9yNDUgIkZBTFNFIikgKGFuY2hvckxlbmd0aFggMjAuMCkgKGFuY2hvckxlbmd0aFkgMjAuMCkgKGFuY2hvckxlbmd0aFogMC4wKSAobnVtQW5jaG9ycyAxKSAoY2hhbWZlciAiRkFMU0UiKSAoZXZlbkVuZHMgIkZBTFNFIikpACgoYW5jaG9yTGF5ZXJzICcoInBvbHkiICJtZXQxIikpIChhbmNob3JJbXBMYXllcnMgJ25pbCkgKGFuY2hvckNvbnRhY3RzICcoJygibWNvbiIgMC41KSAnKCJ2aWEiIDAuNykpKSAoYW5jaG9yV2lkdGggNy41KSAoYW5jaG9yU3BhY2UgMTIuNSkgKHZpYVBpdGNoIDcuNzUpIChjb250YWN0UGl0Y2ggNy43NSkgKGdyaWQgMC4wMjUpIChzcGxMYXllciBuaWwpIChzcGxMYXllck1heFdpZHRoIDcuNSkgKGFuY2hvclpTaHJpbmsgMC4wKSkAKChsYWJlbCA9IHVwcGVyQ2FzZSh0ZXh0KSkgaWYoKHRleHRTcGFjaW5nIDwgMCkgZXJyb3IoInBhcnROdW1DbGFzczogdGV4dFNwYWNpbmcgbXVzdCBiZSA+PSAwIikpIGlmKCh0ZXh0ID09ICIiKSBlcnJvcigicGFydE51bUNsYXNzOiB0ZXh0IHBhcmFtZXRlciBtdXN0IGV4aXN0IikpIChjb29yZCA9IDApIGZvcihjIDEgc3RybGVuKGxhYmVsKSAoY3VycmVudExldHRlck5hbWUgPSBzdHJjYXQoInBhcnRudW0iIHN1YnN0cmluZyhsYWJlbCBjIDEpIHN1ZmZpeCkpIChjdXJyZW50TGV0dGVyID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGN1cnJlbnRMZXR0ZXJOYW1lICJzeW1ib2xpYyIgbmlsICJyIikpIHVubGVzcyhjdXJyZW50TGV0dGVyIGVycm9yKCJwYXJ0TnVtQ2xhc3M6ICBDYW5ub3QgZmluZC9vcGVuIGxldHRlciBjZWxsICVzXG4iIGN1cnJlbnRMZXR0ZXJOYW1lKSkgdW5sZXNzKChjdXJyZW50TGV0dGVyfj5pc1BhcmFtQ2VsbCkgZXJyb3IoInBhcnROdW1DbGFzczogIExldHRlciBjZWxsICVzIGlzIG5vdCBhIHBjZWxsXG4iIGN1cnJlbnRMZXR0ZXJOYW1lKSkgKHBvbHlJRCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGN1cnJlbnRMZXR0ZXIgc3RyY2F0KCJsZXR0ZXIiIHNwcmludGYobmlsICIlZCIgYykpICgwOjApICJSMCIgMSBsaXN0KGxpc3QoImxheWVycyIgImxpc3QiIGxheWVycykpKSkgKG1hZ25pZmljYXRpb24gPSAoMSArICgodGV4dFNjYWxlIC0gMSkgKiAwLjUpKSkgKGRiTW92ZUZpZyBwb2x5SUQgbmlsIGxpc3QoKGNvb3JkOjApICJSMCIgbWFnbmlmaWNhdGlvbikpIChjb29yZCA9IChjb29yZCArIChjYWFkcigocG9seUlELT5iQm94KSkgLSBjYWFyKChwb2x5SUQtPmJCb3gpKSkpKSAoY29vcmQgPSAoY29vcmQgKyB0ZXh0U3BhY2luZykpKSkAKHN1ZmZpeCB0ZXh0IGxheWVycyB0ZXh0U3BhY2luZyB0ZXh0U2NhbGUgbGFiZWwgY29vcmQgYyBjdXJyZW50TGV0dGVyTmFtZSBjdXJyZW50TGV0dGVyIHBvbHlJRCBtYWduaWZpY2F0aW9uKQAoKHRleHQgImFiYyIpIChsYXllcnMgbGlzdChsaXN0KCJtZXQxIiAiZHJhd2luZyIpKSkgKHRleHRTcGFjaW5nIDEuMjUpICh0ZXh0U2NhbGUgMS4wKSkAKChzdWZmaXggIiIpKQAoKHNoYXBlID0gY2FhYXIoc2hhcGUpKSBmb3JlYWNoKGxwcCBsYXllcnMgKHBvbHlJRCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBscHAgc2hhcGUpKSkpAChzaGFwZSBsYXllcnMgbHBwIHBvbHlJRCkAKChsYXllcnMgbGlzdChsaXN0KCJtZXQxIiAiZHJhd2luZyIpKSkpACgoc2hhcGUgbmlsKSkAKChkYmlQRERDcmVhdGVSdWxlQ29udGFjdCB0Y0NlbGxWaWV3IGxpc3QoKHRjQ2VsbFZpZXd+PmNlbGxOYW1lKSBsaXN0KGxheWVyMCBsYXllcjBMaXN0KSBsaXN0KHZpYTAxIHZpYTAxTGlzdCkgbGlzdChsYXllcjEgbGF5ZXIxTGlzdCkgbGlzdCh2aWExMiB2aWExMkxpc3QpIGxpc3QobGF5ZXIyIGxheWVyMkxpc3QpIGxpc3QodmlhMjMgdmlhMjNMaXN0KSBsaXN0KGxheWVyMyBsYXllcjNMaXN0KSBsaXN0KHZpYTM0IHZpYTM0TGlzdCkgbGlzdChsYXllcjQgbGF5ZXI0TGlzdCkgbGlzdCh2aWE0NSB2aWE0NUxpc3QpIGxpc3QobGF5ZXI1IGxheWVyNUxpc3QpIGxpc3QodmlhNTYgdmlhNTZMaXN0KSBsaXN0KGxheWVyNiBsYXllcjZMaXN0KSkpKQAobGF5ZXIwIGxheWVyMExpc3QgdmlhMDEgdmlhMDFMaXN0IGxheWVyMSBsYXllcjFMaXN0IHZpYTEyIHZpYTEyTGlzdCBsYXllcjIgbGF5ZXIyTGlzdCB2aWEyMyB2aWEyM0xpc3QgbGF5ZXIzIGxheWVyM0xpc3QgdmlhMzQgdmlhMzRMaXN0IGxheWVyNCBsYXllcjRMaXN0IHZpYTQ1IHZpYTQ1TGlzdCBsYXllcjUgbGF5ZXI1TGlzdCB2aWE1NiB2aWE1Nkxpc3QgbGF5ZXI2IGxheWVyNkxpc3QpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKChsYXllcjAgbmlsKSAobGF5ZXIwTGlzdCBuaWwpICh2aWEwMSBuaWwpICh2aWEwMUxpc3QgbmlsKSAobGF5ZXIxIG5pbCkgKGxheWVyMUxpc3QgbmlsKSAodmlhMTIgbmlsKSAodmlhMTJMaXN0IG5pbCkgKGxheWVyMiBuaWwpIChsYXllcjJMaXN0IG5pbCkgKHZpYTIzIG5pbCkgKHZpYTIzTGlzdCBuaWwpIChsYXllcjMgbmlsKSAobGF5ZXIzTGlzdCBuaWwpICh2aWEzNCBuaWwpICh2aWEzNExpc3QgbmlsKSAobGF5ZXI0IG5pbCkgKGxheWVyNExpc3QgbmlsKSAodmlhNDUgbmlsKSAodmlhNDVMaXN0IG5pbCkgKGxheWVyNSBuaWwpIChsYXllcjVMaXN0IG5pbCkgKHZpYTU2IG5pbCkgKHZpYTU2TGlzdCBuaWwpIChsYXllcjYgbmlsKSAobGF5ZXI2TGlzdCBuaWwpKQAoKGRiaVBERENyZWF0ZVJlY3RQaW4gdGNDZWxsVmlldyBsYXllcjEgbGF5ZXIxSW1wTGF5ZXIgbGF5ZXIxSW1wRW5jIG1hc2thYmxlIHcgbCkpAChsYXllcjEgbGF5ZXIxSW1wTGF5ZXIgbGF5ZXIxSW1wRW5jIG1hc2thYmxlIHcgbCkAKCh3IDAuMCkgKGwgMC4wKSkAKChsYXllcjEgImhpbGl0ZSIpIChsYXllcjFJbXBMYXllciBuaWwpIChsYXllcjFJbXBFbmMgMC4wKSAobWFza2FibGUgdCkpACgoZGJpUEREQ3JlYXRlUGluIHRjQ2VsbFZpZXcgbGF5ZXIxIGxheWVyMiBsYXllcjFJbXBMYXllciBsYXllcjFJbXBFbmMgbGF5ZXIySW1wTGF5ZXIgbGF5ZXIySW1wRW5jIG1hc2thYmxlIHcxIHcyKSkAKGxheWVyMSBsYXllcjIgbGF5ZXIxSW1wTGF5ZXIgbGF5ZXIxSW1wRW5jIGxheWVyMkltcExheWVyIGxheWVyMkltcEVuYyBtYXNrYWJsZSB3MSB3MikAKCh3MSAwLjApICh3MiAwLjApKQAoKGxheWVyMSAiaGlsaXRlIikgKGxheWVyMiBuaWwpIChsYXllcjFJbXBMYXllciBuaWwpIChsYXllcjFJbXBFbmMgMC4wKSAobGF5ZXIySW1wTGF5ZXIgbmlsKSAobGF5ZXIySW1wRW5jIDAuMCkgKG1hc2thYmxlIHQpKQAoKGRiaVBERENyZWF0ZUNvbnRhY3QgdGNDZWxsVmlldyB2aWFMYXllciBsYXllcjEgbGF5ZXIyIGVuY0J5TGF5ZXIxIGVuY0J5TGF5ZXIyIGxheWVyMUltcExheWVyIGxheWVyMUltcEVuYyBsYXllcjJJbXBMYXllciBsYXllcjJJbXBFbmMgdyBsIHJvdyBjb2x1bW4geFBpdGNoIHlQaXRjaCB4QmlhcyB5QmlhcykpACh2aWFMYXllciBsYXllcjEgbGF5ZXIyIGVuY0J5TGF5ZXIxIGVuY0J5TGF5ZXIyIGxheWVyMUltcExheWVyIGxheWVyMUltcEVuYyBsYXllcjJJbXBMYXllciBsYXllcjJJbXBFbmMgdyBsIHJvdyBjb2x1bW4geFBpdGNoIHlQaXRjaCB4QmlhcyB5QmlhcykAKCh3IDAuMCkgKGwgMC4wKSAocm93IDEpIChjb2x1bW4gMSkgKHhQaXRjaCAwLjApICh5UGl0Y2ggMC4wKSAoeEJpYXMgImNlbnRlciIpICh5QmlhcyAiY2VudGVyIikpACgodmlhTGF5ZXIgImhpbGl0ZSIpIChsYXllcjEgImhpbGl0ZSIpIChsYXllcjIgImhpbGl0ZSIpIChlbmNCeUxheWVyMSAwLjApIChlbmNCeUxheWVyMiAwLjApIChsYXllcjFJbXBMYXllciBuaWwpIChsYXllcjFJbXBFbmMgMC4wKSAobGF5ZXIySW1wTGF5ZXIgbmlsKSAobGF5ZXIySW1wRW5jIDAuMCkpACgoImhvcml6b250YWwiICJ3IikgKCJ2ZXJ0aWNhbCIgImwiKSkAKChkYmlQRERDcmVhdGVEZXBsZXRpb24gdGNDZWxsVmlldyBzZExheWVyIGdhdGVMYXllciBkZXBsTGF5ZXIgc2RFeHQgZ2F0ZUV4dCBkZXBsRW5jU0REaXIgZGVwbEVuY0dhdGVEaXIgc2RJbXBMYXllciBzZEltcEVuYyB3IGwpKQAoc2RMYXllciBnYXRlTGF5ZXIgZGVwbExheWVyIHNkRXh0IGdhdGVFeHQgZGVwbEVuY1NERGlyIGRlcGxFbmNHYXRlRGlyIHNkSW1wTGF5ZXIgc2RJbXBFbmMgdyBsKQAoKHcgMC4wKSAobCAwLjApKQAoKHNkTGF5ZXIgImhpbGl0ZSIpIChnYXRlTGF5ZXIgImhpbGl0ZSIpIChkZXBsTGF5ZXIgImhpbGl0ZSIpIChzZEV4dCAwLjApIChnYXRlRXh0IDAuMCkgKGRlcGxFbmNTRERpciAwLjApIChkZXBsRW5jR2F0ZURpciAwLjApIChzZEltcExheWVyIG5pbCkgKHNkSW1wRW5jIDAuMCkpACgoImhvcml6b250YWwiICJ3IikgKCJ2ZXJ0aWNhbCIgImwiKSkAKChkYmlQRERDcmVhdGVFbmhhbmNlbWVudCB0Y0NlbGxWaWV3IHNkTGF5ZXIgZ2F0ZUxheWVyIHNkRXh0IGdhdGVFeHQgc2RJbXBMYXllciBzZEltcEVuYyB3IGwpKQAoc2RMYXllciBnYXRlTGF5ZXIgc2RFeHQgZ2F0ZUV4dCBzZEltcExheWVyIHNkSW1wRW5jIHcgbCkAKCh3IDAuMCkgKGwgMC4wKSkAKChzZExheWVyICJoaWxpdGUiKSAoZ2F0ZUxheWVyICJoaWxpdGUiKSAoc2RFeHQgMC4wKSAoZ2F0ZUV4dCAwLjApIChzZEltcExheWVyIG5pbCkgKHNkSW1wRW5jIDAuMCkpADE0NzQwNTM2ODUAIlNlcCAxNiAxNToyMToyNSAyMDE2IgAiKlYiACIwMDEtNjkwODciACJCQiIAIjAxLTcwMDA0IgAiRUkiACIwMDEtMDE5MDUiACJzOHBpci0xMHItZmFiMjUiAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbAAoVEVDSGdldFJ1bGUgInJjdmlhNCIpACgwLjQgMC40KQAoLTAuNCAtMC40KQBuaWwAbmlsAG5pbABuaWwAKFRFQ0hnZXRSdWxlICJyY3ZpYTMiKQAoMC4xIDAuMSkAKC0wLjEgLTAuMSkAbmlsAG5pbABuaWwAbmlsAChURUNIZ2V0UnVsZSAicmN2aWEyIikAKDAuMSAwLjEpACgtMC4xIC0wLjEpAG5pbABuaWwAbmlsAG5pbAAoVEVDSGdldFJ1bGUgInJjdmlhIikAKDAuMDc1IDAuMDc1KQAoLTAuMDc1IC0wLjA3NSkAbmlsAG5pbABuaWwAbmlsACgibkRGTDFfUFIiICJzeW1ib2xpYyIpACgiblRQTDFfUFIiICJzeW1ib2xpYyIpACgiUFlMMV9QUiIgInN5bWJvbGljIikAKCJMMU0xX1BSIiAic3ltYm9saWMiKQAoIk0xTTJfUFIiICJzeW1ib2xpYyIpACgiTTJNM19QUiIgInN5bWJvbGljIikAKCJNM000X1BSIiAic3ltYm9saWMiKQAoIk00TTVfUFIiICJzeW1ib2xpYyIpACgiTTFNMl9QUl9SIiAic3ltYm9saWMiKQAoIk0yTTNfUFJfUiIgInN5bWJvbGljIikAKCJNM000X1BSX1IiICJzeW1ib2xpYyIpACgiTTRNNV9QUl9SIiAic3ltYm9saWMiKQAoInJ1bGVWaWEiICJzeW1ib2xpYyIpACgicnVsZVZpYTEiICJzeW1ib2xpYyIpACgicnVsZVZpYTIiICJzeW1ib2xpYyIpACgicnVsZVZpYTMiICJzeW1ib2xpYyIpACgicnVsZVZpYTQiICJzeW1ib2xpYyIpAGQAAAAEAAAApAAAAAAAAAAGAAAABQAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAMAAAAAAACkAAAAAAAAAKgAAAAAAAAArAAAAAAAAACwAAAAAAAAALQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAABEDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAQAAqAEAAKIAAAD/////AAAAyK5H4XoUrtc/rkfhehSu1z+F61G4HoXjP4XrUbgeheM/4XoUrkfhCEDsUbgehevBP+F6FK5H4do/7FG4HoXrwT/hehSuR+HaPzMzMzMzM9M/zczMzMzM7D8zMzMzMzPTP83MzMzMzOw/mpmZmZmZ+T8zMzMzMzMTQOxRuB6F68E/Z2ZmZmZm1j/sUbgehevBP2dmZmZmZtY/MzMzMzMz0z8AAAAAAADoPzMzMzMzM9M/AAAAAAAA6D+amZmZmZn5PwAAAAAAABBA7FG4HoXrwT/sUbgehevRP+xRuB6F68E/7FG4HoXr0T8zMzMzMzPTPzMzMzMzM+M/MzMzMzMz0z8zMzMzMzPjP5qZmZmZmfk/mpmZmZmZCUDsUbgehevBP+F6FK5H4co/7FG4HoXrwT/hehSuR+HKPzMzMzMzM9M/zczMzMzM3D8zMzMzMzPTP83MzMzMzNw/mpmZmZmZ+T8zMzMzMzMDQJqZmZmZmfk/mpmZmZmZ+T9SuB6F61HIP1K4HoXrUcg/AAAAAAAAAADXo3A9CtfTP5qZmZmZmdk/mpmZmZmZ2T97FK5H4XqEP7gehetRuK4/uB6F61G4jj+kcD0K16OwP5qZmZmZmdk/mpmZmZmZ2T97FK5H4XqkP3sUrkfheqQ/uB6F61G4jj+kcD0K16OwP3sUrkfhetQ/exSuR+F61D/D9Shcj8K1P8P1KFyPwrU/w/UoXI/CtT/D9Shcj8K1P7gehetRuK4/uB6F61G4rj+4HoXrUbiuv7gehetRuK6/AAAAAAAAAAC4HoXrUbi+P7gehetRuL4/uB6F61G4vr+4HoXrUbi+vwAAAAAAAAAACtejcD0Kxz8K16NwPQrHPwrXo3A9Cse/AAAAAAAAwD8AAAAAAADAPwAAAAAAAMC/AAAAAAAAAAAAAAAAAAAAALgehetRuK6/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMP1KFyPwsU/uB6F61G4vj+4HoXrUbi+P7gehetRuL6/uB6F61G4vr8AAAAAAAAAAArXo3A9Csc/CtejcD0Kxz8K16NwPQrHvwAAAAAAAMA/AAAAAAAAwD8AAAAAAADAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD9Shcj8LFP7gehetRuK4/uB6F61G4rj+4HoXrUbiuv7gehetRuK6/AAAAAAAAAAC4HoXrUbi+P7gehetRuL4/uB6F61G4vr+4HoXrUbi+vwAAAAAAAAAAAAAAAAAAwD8AAAAAAADAPwAAAAAAAMC/AAAAAAAAAAAAAAAAAAAAALgehetRuK6/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMP1KFyPwsU/uB6F61G4vj+4HoXrUbi+P7gehetRuL6/uB6F61G4vr8AAAAAAAAAAAAAAAAAAMA/AAAAAAAAwD8AAAAAAADAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD9Shcj8LFP6RwPQrXo7A/w/UoXI/CtT+kcD0K16Owv8P1KFyPwrW/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmpmZmZmZmb8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADsUbgehevRP8P1KFyPwrU/w/UoXI/CtT/D9Shcj8K1v8P1KFyPwrW/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApHA9Ctej0D/D9Shcj8K1P8P1KFyPwrU/w/UoXI/Ctb/D9Shcj8K1vwAAAAAAAAAAuB6F61G4rj+4HoXrUbiuP7gehetRuK6/uB6F61G4rr8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApHA9Ctej0D+4HoXrUbiuP7gehetRuK4/uB6F61G4rr+4HoXrUbiuvwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHE9CtejcM0/uB6F61G4rj+4HoXrUbiuP7gehetRuK6/uB6F61G4rr8AAAAAAAAAAJqZmZmZmbk/mpmZmZmZuT+amZmZmZm5v5qZmZmZmbm/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfBSuR+F6lD98FK5H4XqUP3wUrkfhepQ/fBSuR+F6lL8AAAAAAAAAAAAAAAAAAAAAexSuR+F6tD8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfhetRuB7VP5qZmZmZmbk/mpmZmZmZuT+amZmZmZm5v5qZmZmZmbm/AAAAAAAAAAB8FK5H4XqUP3wUrkfhepQ/fBSuR+F6lL8AAAAAAAAAAAAAAAAAAAAAexSuR+F6tD8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfhetRuB7VP5XYtb3dkgw/wLdEifH1ED/eADPfwU8cPygpsACmDBw/clEtIorJGz+8eapDboYbP5kKlo9J6xQ/RLl+C/zyEz+0cQZ3TlDGPnlxRdbYLds+upoCuqsu4j6LvFHQkmzqPtL7xteeWfI+pyjyf6IN+z5U/IRYolgDP3JRLSKKyRs/zioHVZREmz0+ImyqdtCVPfJtrr2ksXY9rxnR/1hcgD2QnVE8ZHZ1PftiRX5xfX89hz1xDd6sjD1cHetvYqamPc7J5gUzAdo+2Acfa8LN1D5S7fT/gaS1PsSLrqCjNL8+p0WWL9x3tD4Z5E/Q/Qe+PpLSCfTLWMs+DNWDOMWZ5T57FK5H4Xp0P8l2vp8aL50/qvHSTWIQqD+q8dJNYhCoPwAAAAAAAMA/AAAAAAAAwD9mZmZmZmYoQJqZmZmZGUhAMzMzMzMz8z+amZmZmZnpP5qZmZmZmek/ZmZmZmZm1j9mZmZmZmbWP5qZmZmZmbk/CtejcD0Kxz+Sy39Iv319P67YX3ZPHmY/rthfdk8eZj8tr1xvm6mQP6A3FakwtmA/oDcVqTC2YD+C4seYu5ZgP5TeN772zGI/wJMWLquwOT/AkxYuq7A5P3sUrkfhenQ/KVyPwvUorD8zMzMzMzOzP2ZmZmZmZuY/UrgehetR2D+kcD0K16PAP8P1KFyPwtU/SOF6FK5H0T8AAAAAAAASQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmpmZmZmZ+T8zMzMzMzPTP5qZmZmZmck/MzMzMzMz0z+amZmZmZnJP+xRuB6F68E/w/UoXI/CxT/sUbgehevBP1K4HoXrUcg/AAAAAAAAJECamZmZmZn5P5qZmZmZmek/mpmZmZmZ6T8zMzMzMzPTP5qZmZmZmck/mpmZmZmZyT8zMzMzMzPTP5qZmZmZmck/mpmZmZmZyT9SuB6F61HYP2ZmZmZmZuY/UrgehetR2D9SuB6F61HYPwAAAAAAAE5AAAAAAAAACEDsUbgehevBPzMzMzMzM8M/MzMzMzMzwz/sUbgehevBP+F6FK5H4fY/w/UoXI/CxT/D9Shcj8LFP8P1KFyPwsU/w/UoXI/CxT8zMzMzMzPDPzMzMzMzM+M/ZmZmZmZm5j9SuB6F61HYP8P1KFyPwsU/SOF6FK5H0T9SuB6F61HYP1K4HoXrUdg/PQrXo3A92j8zMzMzMzPDPzMzMzMzM8M/MzMzMzMzwz/hehSuR+HqPwAAAAAAAAhAuB6F61G4zj+4HoXrUbjOP1ioNc07TrE/c2iR7Xw/tT9SuB6F61HQP/YoXI/C9dA/Gy/dJAaB5T/sUbgehevBP+xRuB6F68E/AAAAAAAAJECamZmZmZn5P5qZmZmZmek/MzMzMzMz0z+amZmZmZnJPzMzMzMzM9M/mpmZmZmZyT9SuB6F61HYP2ZmZmZmZuY/UrgehetR2D9SuB6F61HYP1K4HoXrUfQ/AAAAAAAAEEDsUbgehevBP8P1KFyPwsU/7FG4HoXrwT9SuB6F61HIP8P1KFyPwsU/4XoUrkfhyj9mZmZmZmbmP2ZmZmZmZuY/UrgehetR2D/D9Shcj8LFP0jhehSuR9E/UrgehetR2D9SuB6F61HYPwAAAAAAAOA/SOF6FK5H0T9I4XoUrkfRP1K4HoXrUfQ/MzMzMzMzGUDhehSuR+H4P4XrUbgehdM/hetRuB6F0z+uR+F6FK7HP65H4XoUrsc/AAAAAACAJUDXo3A9CtfTP1K4HoXrUcg/pHA9CtejsD+4HoXrUbiuP6RwPQrXo7A/exSuR+F6pD+amZmZmZkFQMP1KFyPwrU/w/UoXI/CtT+4HoXrUbiuPwAAAAAAAPg/AAAAAAAAAACamZmZmZm5P5qZmZmZmak/uB6F61G4vj97FK5H4XqkP3sUrkfherQ/CtejcD0Kxz8K16NwPQrHP5qZmZmZmdk/BAAAAAAAAACkAAAAAAAAAAYAAAAFAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAAAwAAAAAAAKQAAAAAAAAAqAAAAAAAAACsAAAAAAAAALAAAAAAAAAAtAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAGEAAAAAAAAA/////wAAAMgQAAAARF65IldWlopUqcjLAQAAAAQAAAAAAAAAvAAAAAAAAAAHAAAABgAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAMAAAAAAAABAwAAAAAAALwAAAAAAAAAwAAAAAAAAADEAAAAAAAAAMgAAAAAAAAAzAAAAAAAAAAwAQAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAZAAAAAAAAAAoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4AAAAuAAAAAgAAAAgAAAAAAADIAgAAABMZXhlxGaQZxBn3GQ0aJBoMAHwatBoAABwbPhtSG3Mb5hsGHDAcThxoHHwcyhzlHBUdPR1kHX0dqx3QHREeWR6WHsUeEB+ZH68fyB/oHxkgNyFUIXYhryHOIfAhAAAAyAIAAAABABUAGQApAC0ANQA5AD0AAABBAFUAAABZAF0AYQBpAIEAhQCJAI0AkQCVALUAuQDFANUA3QDlAPUA/QARASkBOQFBAVkBkQGVAZkBnQGtAQECBQIJAh0CJQItAgIAAAAVAAUAEQAFAAkABQAFAAUAAAAVAAUAAAAFAAUACQAZAAUABQAFAAUABQAhAAUADQARAAkACQARAAkAFQAZABEACQAZADkABQAFAAUAEQBVAAUABQAVAAkACQAhAQAEAABMAwAAAAAAAAAAAAAAAAAAHhkAACoZAAA2GQAAQhkAABIZAABdGQAAehkAAIMZAACLGQAAcBkAAKMZAADUGQAAwxkAAPYZAAAMGgAAIxoAAIQaAACMGgAAlRoAAJ4aAAB7GgAAsxoAABsbAAA9GwAAWxsAAFEbAACEGwAAlBsAAKQbAACyGwAAwBsAAHIbAADlGwAABRwAAC8cAABNHAAAZxwAAIQcAACNHAAAlhwAAJ4cAACmHAAArhwAALYcAAB7HAAAyRwAAO8cAAD5HAAA5BwAABodAAAhHQAAKB0AABQdAABGHQAAPB0AAGgdAABjHQAAhB0AAIodAACQHQAAfB0AALUdAACqHQAA2R0AAOIdAADoHQAA7x0AAM8dAAAaHgAAIR4AACkeAAAxHgAANx4AABAeAABjHgAAbB4AAHUeAABYHgAAox4AAJUeAADOHgAA1h4AAN8eAADnHgAA8B4AAMQeAAAZHwAAIR8AACofAAAzHwAAPB8AAEUfAABPHwAAVx8AAF8fAABnHwAAbx8AAHcfAACBHwAADx8AAJgfAACuHwAAxx8AAPUfAAD6HwAA/x8AAOcfAAAsIAAAMSAAADggAAA9IAAARCAAAEkgAABOIAAAUyAAAFogAABhIAAAaCAAAHIgAACGIAAAmiAAAK4gAADCIAAA1iAAAOogAAD+IAAAEiEAABggAAA2IQAAUyEAAHwhAACBIQAAiCEAAJMhAAB1IQAAtSEAAK4hAADaIQAAzSEAAP0hAAAGIgAADyIAABgiAAAhIgAAKiIAADMiAAA8IgAARSIAAE4iAABXIgAAYCIAAGkiAAByIgAAeyIAAIQiAACNIgAAliIAAJ8iAACoIgAAsSIAALoiAADDIgAAzCIAANUiAADeIgAA5yIAAPAiAAD5IgAAAiMAAAsjAAAUIwAAHSMAACYjAAAvIwAAOCMAAEEjAABPIwAAXSMAAGsjAAB5IwAAhyMAAJUjAACjIwAAsSMAAL8jAADNIwAA2yMAAOkjAAD3IwAABSQAABMkAAAhJAAALyQAAD0kAABLJAAAWSQAAGckAAB1JAAAgyQAAJEkAACfJAAArSQAALskAADJJAAA1yQAAOUkAADzJAAAASUAAA8lAAAdJQAA7yEAAGQAAAABAAAABAAAAAAAAACUAQAAAAAAABAAAAAOAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAQAAAAAAAAADAAAAAAAAAQMAAAAAAAACAwAAAAAAAAQDAAAAAAAABQMAAAAAAAAAAQAAAAAAAAMBAAAAAAAAAgEAAAAAAAAGAwAAAAAAAJQBAAAAAAAAmAEAAAAAAACcAQAAAAAAAKABAAAAAAAApAEAAAAAAACsAQAAAAAAAFQDAAAAAAAA/AQAAAAAAADUBQAAAAAAAKwGAAAAAAAAhAcAAAAAAACIBwAAAAAAAHwKAAAAAAAA//////////8EAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAqAEAAAAAAACoAQAAAAAAANgAAAAAAAAA2AAAAAAAAADYAAAAAAAAAAQAAAAAAAAA9AIAAAAAAAC0AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAANAAAAACAAAAxwAAAAAAAMgAAAAAAAAAyAIAAACEJqsmoiexJ8gn3ifvJ1koyCfeJ+8nWSjIJ94n7ydZKMgn3ifvJ1koaiitKK0orSitKK0orSitKK0orSgpKaAptCm0KbQptCm0KbQptCm0KbQptCm0KbQptCm0KbQpvynLKfQp/CkWKhYqvyrLKssqyyrLKuMq7yoWKr8qyyrLKssq4yrvKhYqFiq/KssqyyrLKuMq7yoWKr8qyyrLKuMq7yoWKr8qyyrjKu8qFiq/Kssq4yrvKhYqFiq/KssqyyrjKu8qFiq/Kssq4yrvKhYqFiq/KssqyyrLKuMq7yoWKr8qyyrLKuMq7yosKzUrqivGK9Mr5SvyK/8rECwlLC0sRCxELEQsRCxELEQsRCxELFAsZyx3LOAs8izyLPIs8izyLPIs8izyLPIs8izyLPIs8izyLPIs8iz6LPos+iz6LPos+iz6LPosBS0aLXQtdC10LXQtdC10LXQtdC10LXQtdC10LXQtdC10LXQtdC10LXQtdC10LYEtjy2jLcwtzC3MLcwtzC3MLcwtzC3VLeAt6i33LQQuHy4qLjcuSC5VLwAAAMgCAAAAAQACABAAEQAAABYAGgAfAAAAIgAlACoAAAAtADAANQAAADgAOwBAAEMARwBKAE0AUABTAFYAWQBcAF8AYgBrAG8AcQBzAHUAdwB5AHsAfQB/AIEAgwCFAIcAiQCLAI0AnACtAK4AvgDAAMIAxADGAMgAygDMANAA1ADWANcA2QDbAN0A4ADkAOYA6ADqAOwA7gDwAPMA9wD5APoA/AD+AAABBAEGAQcBCQEKAQ4BEAERARMBFAEYARoBHAEeASABIgEkASgBKgErAS0BLgEyATQBNgE4AToBPAE+AUEBRQFHAUgBSgFMAU4BUgFTAQAAAAAAAAAAAAAAAAAAXQEAAGUBZwFpAWsBbQFvAXEBcwF1AX0BqAEAAL8BwQHDAcUBxwHJAcsBzQHPAdEB0wHVAdcB2QHbAd0B3wHhAeMB5QHnAekB6wHtAQAACgJfAmECYwJlAmcCaQJrAm0CbwJxAnMCdQJ3AnkCewJ9An8CgQKDAoUChwKJAgAAAAC1ArgCuwK+AsECxALHAsoC1gKMAAAAAAAAAAAA2ALaAgAA5QIAAADIAQAAAAAAAAAREhMUAAAAAAkKCwwNDg8QAB4AFxgZGhscHQAALwAiIyQlJicoKSorLC0uAAAAAHAAcXMAODl0dTUAOj9AAAA9RD5BR0hCQ0VGSU5KS0xNT1BRUlNUVVZXXFhZX1pbXV5gYWJjaGRla2xmZ2lqbXJubwAAAAAAAAAAAAAAiACCg4SFhocAAAAAnACOj5CRkpOUlZaXmJmam6QAnp+goaKjAAC7AKipqqusra6vsLGys7S1tre4uboAAADGAMDBwsPExQAAAAAAAAAAAAAAAADIAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAADIAQAAAAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLi42Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHx8nKy8zNzs+eGwAArAEAAAEAAAACAAAALCApYCggKSAgICBgISAgIAAgAGABIAAgACAAYAEgACAAIABgASAAICggMCAQIBAgECAQIBAgECAQIBAgOCA5ICAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAICggKGAsIDkgMCAQIDAgMCAQIBAgECAwIDAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgLCA4ICkgKSApICkgKSApICkgLCApIDAgECAQIBAgECAQIBAgECAgICQgICAAgCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAACAgICAwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkICAgKSAxABEAEQARABEAEQARABEALCAAgCkgKSApICkgLCAsICkgKQAAAAAAAAAAABAAAAANAAAAAAEAAAAAAAABAQAAAAAAAAIBAAAAAAAAAwEAAAAAAAAFAQAAAAAAAAYBAAAAAAAABwEAAAAAAAAAAwAAAAAAAAEDAAAAAAAAAgMAAAAAAAADAwAAAAAAAAQDAAAAAAAABQMAAAAAAAAPAAAAAAAAAA4AAAAAAAAADQAAAAAAAAAMAAAAAAAAAAsAAAAAAAAACgAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAQAAAAAAAAABQAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAAAAAAcAQAAAAAAAAsAAAAKAAAAAAIAAAAAAAAAAQAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAgEAAAAAAAACAgAAAAAAAJsmAAAAAACAAQIAAAAAAAAcAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAADgAAAAAAAAAWAAAAAAAAAA4AQAAAAAAABwAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAACgAAAAAAAAAIAAAAAAAAADcAAAAAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAJsmAAD/////AQAAAAAAAAADAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAD/////AAAAwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAMABAAAACAAAAAAAAAABAAAA0AAAAAEAAAABAAAAAQAAwMUAAAABAAAAIQEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEBISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIQEhISEhISEhIQEhISEhISEhISEhAQEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEBISEhISEhISEhIQEBISEhISEBAQQAAAAEAQAAAAAAAAoAAAAIAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAAAwAAAAAAAAEDAAAAAAAAAgMAAAAAAAADAwAAAAAAAAQBAAAAAAAACAEAAAAAAAAMAQAAAAAAABABAAAAAAAAFAEAAAAAAAAgAQAAAAAAACwBAAAAAAAANAEAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAP////8AAADIAQAAAAEAAAAAAADIAQAAAAoAAAAAAADIAAAAAAAAAMgAAAAAAAAAAAQAAAAAAAAAfAEAAAAAAAAPAAAADAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABAEAAAAAAAAAAwAAAAAAAAEDAAAAAAAAAgMAAAAAAAADAwAAAAAAAAQDAAAAAAAAAAEAAAAAAAADAQAAAAAAAHwBAAAAAAAAgAEAAAAAAACEAQAAAAAAAIgBAAAAAAAAjAEAAAAAAACUAQAAAAAAAGgHAAAAAAAAPA0AAAAAAAAQEwAAAAAAAAAWAAAAAAAA8BgAAAAAAAD0GAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAACAAAAAAAAADUBQAAAAAAANQFAAAAAAAA1AUAAAAAAADwAgAAAAAAAPACAAAAAAAABAAAAAAAAADYBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOYCAADmAgAA1gAAAA0AAAAAAADIAAAAAAAAAMgCAAAAAAADAAQABQAGAAcACAAJAAoAAAAMAA0ADgAAAAAAAAASABMAFAAVAAAAFwAYABkAAAAbABwAHQAeAAAAIAAhAAAAIwAkAAAAJgAnACgAKQAAACsALAAAAC4ALwAAADEAMgAzADQAAAA2ADcAAAA5ADoAAAA8AD0APgA/AAAAQQBCAAAARABFAEYAAABIAEkAAABLAEwAAABOAE8AAABRAFIAAABUAFUAAABXAFgAAABaAFsAAABdAF4AAABgAGEAAABjAGQAZQBmAGcAaABpAGoAAABsAG0AbgAAAHAAAAByAAAAdAAAAHYAAAB4AAAAegAAAHwAAAB+AAAAgAAAAIIAAACEAAAAhgAAAIgAAACKAAAAjAAAAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwAAAJ0AngCfAKAAoQCiAKMApAClAKYApwCoAKkAqgCrAKwAAAC3AK8AsACxALIAswC0ALUAtgAAALgAuQC6ALsAvAC9AAAAvwAAAMEAAADDAAAAxQAAAMcAAADJAAAAywAAAM0AzgDPAAAA0QDSANMAAADVAAAAAADYAAAA2gAAANwAAADeAN8AAADhAOIA4wAAAOUAAADnAAAA6QAAAOsAAADtAAAA7wAAAPEA8gAAAPQA9QD2AAAA+AAAAAAA+wAAAP0AAAD/AAAAAQECAQMBAAAFAQAAAAAIAQAAAAALAQwBDQEAAA8BAAAAABIBAAAAABUBFgEXAQAAGQEAABsBAAAdAQAAHwEAACEBAAAjAQAAJQEmAScBAAApAQAAAAAsAQAAAAAvATABMQEAADMBAAA1AQAANwEAADkBAAA7AQAAPQEAAD8BQAEAAEIBQwFEAQAARgEAAAAASQEAAEsBAABNAQAATwFQAVEBAAAAAFQBVQFWAVcBWAFZAVoBWwFcAQAAXgFfAWABYQFiAWMBZAEAAGYBAABoAQAAagEAAGwBAABuAQAAcAEAAHIBAAB0AQAAdgF3AXgBeQF6AXsBfAEAAL0BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBAACzAbQBtQG2AbcBuAG5AboBuwG8AQAAAAAAAMABAADCAQAAxAEAAMYBAADIAQAAygEAAMwBAADOAQAA0AEAANIBAADUAQAA1gEAANgBAADaAQAA3AEAAN4BAADgAQAA4gEAAOQBAADmAQAA6AEAAOoBAADsAQAA7gEAAPAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+Af8BAAIBAgICAwIEAgUCBgIAAAgCCQIKAg0CDAINAhACDwIQAhkCEgITAhQCFQIWAhcCGAIZAh0CGwIcAh0CHwIfAioCIQIiAiMCJAIlAiYCJwIoAikCKgIAACwCLQIuAi8CMAIxAjICMwI0AjUCNgI3AjgCOQI6AjsCPAI9Aj4CPwJAAkECQgJDAkQCRQJGAkcCSAJJAkoCSwJMAk0CTgJPAlACUQJSAlMCVAJVAlYCVwJYAlkCWgJbAgAAAAAAAAAAYAIAAGICAABkAgAAZgIAAGgCAABqAgAAbAIAAG4CAABwAgAAcgIAAHQCAAB2AgAAeAIAAHoCAAB8AgAAfgIAAIACAACCAgAAhAIAAIYCAACIAgAAnwKLAowCjQKOAo8CkAKRApICkwKUApUClgKXApgCmQKaApsCnAKdAp4CAACgAgAAAACjAqQCpQKmAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAIAALYCtwIAALkCugIAALwCvQIAAL8CwAIAAMICwwIAAMUCxgIAAMgCyQIAAMsCzAIAANYCzwLQAtEC0gLTAtQC1QIAANcCAADZAt4C2wLcAt0CAADfAuAC4QLiAuMC5AIAAOYCAAAAAADIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcwJ7An8CgwKFAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAGwAcAB0AHgAAAAAAAAAAAAAAAAAlACYAJwAoACkAAAAAAAAAAAAAAAAAMAAxADIAMwA0AAAAAAAAAAAAAAAAAAAAagA/AEgAaQA+AEsAaAA9AE4AZwA8AFEAZgA7AFQAhgJMAEkAggJPAFcAfgJSAFoAdgJVAF0AAAAAAAAAAAAAAAAAAAAAAAAAZwJpAnkCbQJYAG8AWwBxAF4AcwBhAHUAYAB3AAAAAAAAAHoAewB5AAAAfAB/AH4AgQB9AHICgAAAAIIAhwCEAIkAgwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACnAAAAnQCeAJ8AoAChAKIAowCkAKUApgAAAKwAAACqAKsAAAAAAAAAAAAAAHgAdgB0AHIAcAAAAAAAAAAAAAAAAAAAALwCwwDLAsIAAAAAANcAzwDZAM4AwQLNAMwCzAAAAAAAAAAAAMQCXAEAAAAAAADWAAAAAADfAAAA3gAAAN0AAAAAAAAAAABbAQAAAAAAAOkA1ADoAAAAAAD6APIAAADxANsA8AAAAAAAAADgAFoBAAAAAOYA+QAAAAAA/wDuAP4AAAAAAPMAWQEAAAAAvwIGAQAAwAIJAQAAwwJYAQAAAADCAhABAADsABMBAAAAAFcBAAAAAAAAHQHkABwBAAAAABEBIwH8ACIBAAAAABQBVgEAAAAAGgEqAQAAIAEtAQAAHgFVAQAAAAAoATcB9wA2AQAAAAAuAUABSAE/ASsBPgEAAAAAAADKAlQBAAAAADQBRwEAAAAATQE8AUwBAAAAAAAAUwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOAccCSgEAADgBaAEkAWoBAABsAbgCbgG6AnABAAByAQAAAAAAAAAAAAAAAAAAAAAAAIcCtgC1ALQAswCyALEAsAAAALYAtQC0ALMAsgCxALAAAAC2ALUAtACzALIAsQCwAAAAtgC1ALQAswCyALEAbwKwAK4AAAC2ALUAtACzALIAsQCwAIYAiACKALYAtQC0AIwAiwCzALIAqAGpAaoBrgGvAasBrAGtAbABsQGxAAAAAAAyAb8BaQHBARgBwwFrAcUBAADHAW0ByQG2AgAAAADNAQAAzwHAAcQB0QHIAdMBzAHSAdQB1wHWAdgB2gHcAbkCAABfAq4ArwDhAd8B4gHkAQAAAAAAAOYBsADjAesB5QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAbcBsgGoAbgBswGpAbkBtAGqAT4CPwIAAEECiAJDAroBtQGuAbsBcAK2Aa8BegIAAO0BAABLAgAAvAFrAk8CUAJRAu4B7gHsAeoBAAC4AbkBugG7AQAAAAAAALoBuwGgAbcBCgK4AQ0CuQEQAgAAAAAAAAAAAAAAALoBGQK7AR0CHwLtAQAAAAAAALwBAAAAAAAAAAAqAuwB6gEAANABzgHKAcYBwgHOAcoBxgHCAQAA6gFgAuwBYQIqArEAHwJiAmYCZAJoAgAAagJlAh0CYwIAALEBbgJxAhkCsAF0AqsBAADtAWwCdQIQAq0BfAJ9Ag0CrAGAAoECCgJ3AoQCAAB4AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwIAAGcCaQJ5Am0CcwJ7An8CgwKFAocCegJyAnYCfgKCAoYCiALKAd0BzgG3AgAA0AFnAdUBwgHGAdsBtQK9AtkBvgIAAUUBuwJ0AcUCxgJlAcgCyQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADlAuYCAAAAAAAAAAAAAAAAAAAAyAIAAAACANABzwHOAc0BzAHLAcoByQHIAQ8ACwAMAA0ABgKDAEAAQgBEAEYASADZAdgB1wHWAUAAQgBEAEYASAAHAAYABQD/Af4B/QFAAEIARABGAEgACwAKAAkAJQIkAiMCQABCAEQARgBIAA8ADgANAEsCSgJJAkAAQgBEAEYASAATABIAEQAUABAADAAIABYASABIABcARgBGABgARABEABkAQgBCABoAQABAAEcARgBIAEUARABGAEMAQgBEAEEAQABCAB4AHQAcABsAGgAZABgAFwAWADIAMwA2AD4ASABIAEYARgBEAEQAQgBCAEAAQABFAEcAQwBHAEMARQBBAEcAQQBFAEEAQwA/AEcAPwBFAD8AQwA/AEEALwAuAC0ALAArACoAKQAoACcAJgAlACQAIwAiACEAxALEAsQCxALEAsQCxALEAsQCxALEAsQCwwLCAsICwgLCAjMAMgAzADYAPgBAAEIARABGAEgAMQAwACAAHwAVAAQAAwA9ADQALgA1ADUANAAJADcAHQA4AEEAOQAzADoAOgA5ADgANwAXADwAOwA2AC4APQA9AAkAPwAdAEAAMwBBAEEAQAA/ABcAQwBCAD4APQBEAC4ARQBFAEQAHABHAEEASAAzAEkASQBIAEcAFwBLAEoARgAuAEwATAAcAE4AMwBPAE8ATgAXAFEAUABNAGkAUgBSAG0AVABUAFcAVgBVAFMAUwBXAFcAQQBZAFkAVwBbAFoAWABTAFwAPQBdAF0AXABBAF8AMwBgAGAAXwBXAGIAYQBeAD0AYwBjADMAZQBlAEEAZwBmAGQAPQBoAC4AaQBpAGgAQQBrADIAbAAzAG0AbQBsAGsAHgBvAG4AagAuAHAAcAAyAHIAMwBzAHMAcgAeAHUAdABxAHcAdQBvAGcAYgBbAFYAUQBLAEMAPACAAH4AfQB8AHsAegB5AHgAHgAPADMADwBBAA8AVwAPAG0ADwCEAA8AmwAPAL4ADwCIAIcAhgCFAIQAgwCCAIEAiwChAn4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgFHAEUAQwBIAEYARABBAD8AQgBAAFoCsgGzAbQBtQG2AbcBuAG5AboBuwGJAJ4CPQA9AEEAQQBTAFMAVwBXAGkAaQBtAG0AgACAAIQAhACbAJsAPQBTAD0AaQA9AIAAUwBpAFMAgABpAIAAgACXAC8AMAAyADMAMgAvADMALwA4ADkATgAvADYAMgA2ADMAVQLvAfAB8QHyAfMB9AH1AVsC9wH4AfkB+gH7AfwB/QH+Af8BAAIBAgICAwIEAgUCtAIHAggCRwAJAgsCRQAMAg4CQwAPAhECEgITAhQCFQIWAhcCQQAYAhoCGwI/ABwCPAAeAiACIQIiAiMCJAIlAiYCJwIoAjMAKQIrAiwCLQIuAi8CMAIxAjICMwI0AjUCNgI3AjgCOQI6AjsCPAI9Aj4CPwJAAkECQgJDAkQCRQJGAkcCSAJJAkoCSwJMAk0CTgJPAlACUQJSAlMCVAKnAVYCVwJYAlkCXAJdAl4C1QIwAC8ALwAyAC8AMwA+ADwAMgA8ADMAPAA9ADwAPgA/AC8ATwBAAD8AQABBAEIAQQBIAEoANgA8AEIAQwBEAEMARABFAEYARQBGAEcASABHAFQASgC9APYBigKLAowCjQKOAo8CkAKRApICkwKUApUClgKXApgCmQKaApsCnAKdAqYApQC+AQAAogKjAqQCpQKmAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCbQCAAIQAhACXAJsAMwA9AEEAVwBpAG0AQQBTAFcAFwAuADMADwAuADMAHgAuADMAvAHNAs4CzwLQAtEC0gLTAtQCyQC+AM0AzgDPAMwAywDKAMcAvACKAH8AdgAyAAEAvACKAAAAAMgBAAAAAgEBAQEBAQEBAQEBAQEBDQ0NDQ0NAQEBAQ0NDQ0NAgICAQEBDQ0NDQ0CAgIBAQENDQ0NDQICAgEBAQ0NDQ0NAgICAgICAgINDQINDQINDQINDQINDQ0NDQ0NDQ0NDQ0NDQICAgICAgICAg0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0CAgICAgICAgICAgICAgIBAQEBAQEBAQEBAQEBAQEBAQINDQ0NDQ0NDQ0CAgICAgICIwIjAgICIwIjAiMCIwICAgICIwICAiMCAiMCIwIjAgICAiMCAgIjAiMCAgIjAiMCIwICAgIjAgICIwICIwIjAgICIwICAiMCAiMCAiMCAgIjAgIjAgIjAgICIwIjAgICIwIjAgICIwICAiMCAiMCAiMCAgIjAiMCAgIjAiMCIwICAgIjAgICIwICIwIjAgICIwICAgICAgICAgICAgICAgICAgICAgIjIyMjIyMjIyMjIyMjIyMjAgICAgICAgICDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAgEjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0NDQ0NDQ0NDQ0NDQ0NDQ0CAgICAgICAgICAgICAgICAgICAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NIyMjIyMjIyMjDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAgICAgICAgICAgICAgICAgICAgICAgICAg0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMCAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAAAyAEAAAABAgICAgICAgICAgICAgIDBAQEBAQGBgYGBwcHBwcICAgKCgoLCwsLCwwMDA4ODg8PDw8PEBAQEhISExMTExMUFBQVFRUVFhYWFxcXGBgYGRkZGhoaGxsbHBwcHR0dHh4eHx8fHx8fHx8fICAgICEhIiIjIyQkJSUmJicnKCgpKSoqKyssLC0tLi4vLzAwMDAwMDAwMDAwMDAwMDExMTExMTExMTExMTExMTExMjMzMzMzMzMzMzIyMjIyMjI0NDU1NjY3Nzg4OTk6Ojs7Ozs8PDw8PT0+Pz9AQEFBQkJCQ0NDQ0RERUVGRkdHSEhJSUpKSktLS0tMTE1OTk9PUFBRUVFRUlJTVFRVVlZWVldXWFlZWltbW1tcXF1dXl5fX2BgYWFiYmJiY2NkZWVmZ2dnZ2hoaWlqamtrbGxtbW5ubm9vb29wcHFycnNzdHR1dXV1dnd3d3d3d3d3d3d/f39/f39/f4GBgoKDg4SEhYWGhoeHiIiJiYmJiYmJiYqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKjI2Njo6Pj5CQkZGSkpOTlJSVlZaWl5eYmJmZmpqbm5ycnZ2enp+foKChoaKio6OkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqanp6ioqamqqqurrKytra6ur6+wsLGxsrKzs7S0tbW2tre3uLi5ubq6u7u8vb29vb29vb29vb29vb29vb29vb29vLy8vr6+vr6+vr6+vr6+vr6+vr6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfIyMjIyMjIyMfHzc3Ozs7Ozc3Nzc3NzdDQAABLuQAA2AUAAAEAAAACAAAACAAIAAgACAAIAAgACAAIAAgACAAAgACAAIAAgACACAAIQAhACEAIQAhACAAIAAgACAAAQABAAEAAQABACAAIAAgACAAIAAgAAEAAQABAAEAAQAgACAAIAAgACAAIAABAAEAAQABAAEAIAAgACAAIAAgACAAAQABAAEAAQABACAAIAAgACEAIQAhACEAIAABAAEAIAABAAEAIAABAAEAIAABAAEAIAABAAEAIQABAAEAIQABAAEAIQABAAEAIQABAAEAIQAhACEAIQABAAEAAQABAAEAIAAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAhAAEAAQABAAEAAQABAAEAAQABAAEAAQAhACEAAQABAAEAIAABAAEAAQABAAEAAQABAAEAAQAgACAAIAAgACAAIAAgACEAIAAhACAAAAAAACEAIAAhACAAIQAgACEAIAAAAAAAAAAAACEAIAAgACAAAQAgAAAAAQAgAAEAIAABACAAAAAAAAAAAQAgACAAIAABACAAAQAgAAAAAAAhACAAAQAgAAEAIAAAAAAAAAABACAAIAAgAAEAIAAAAAEAIAABACAAAAAAAAEAIAAgACAAIQAgAAAAIQAgAAAAIQAgACAAIAAhACAAAAABACAAAAABACAAIAAgAAEAIAABACAAAAAAAAEAIAABACAAAAAAAAEAIAAgACAAAQAgAAAAAQAgAAAAAQAgACAAIAABACAAAQAgAAAAAAABACAAIQAgAAEAIAAAAAAAAAAhACAAIAAgAAEAIAAAAAEAIAABACAAAAAAAAEAIAAgACAAIAABAAEAAQABAAEAAQABAAEAAQABACAAIAAgACAAIAAgACAAIAAAACAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAIAAAACEAIQAhACEAIQAhACEAIQAgAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAgACAAIAAgACAAIAAgACAAIAAgACACAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAAAACAAIAAgAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgABAAIAAgABAAIAAgABAAIAAgACAAIAAgACAAIAAgABAAIAAgACAAEAAgABAAIAAgACAAIAAgACAAIAAgACAAIAAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgACAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIAAgAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAAAAAAAABAAAAAKAAAAAAEAAAAAAAABAQAAAAAAAAIBAAAAAAAAAwEAAAAAAAAFAQAAAAAAAAYBAAAAAAAABwEAAAAAAAAAAwAAAAAAAAEDAAAAAAAAAgMAAAAAAAAPAAAAAAAAAA4AAAAAAAAADQAAAAAAAAAMAAAAAAAAAAsAAAAAAAAACgAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAcBAAAAAAAACsAAAAPAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAQAAAAAAAAACAAAAAAAAAAEAAAAAAAADAQAAAAAAAAICAAAAAAAAAQMAAAAAAAAEAgAAAAAAAAYCAAAAAAAAAgMAAAAAAAADAwAAAAAAAAQDAAAAAAAAHAQAAAAAAAAgBAAAAAAAACQEAAAAAAAAKAQAAAAAAAAsBAAAAAAAAOQEAAAAAAAA7AQAAAAAAADwBAAAAAAAAEQHAAAAAAAANAoAAAAAAAA0CwAAAAAAAFwNAAAAAAAATBAAAAAAAAC8EQAAAAAAAMwWAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAC4AAAAAAAAAAgAAAAAAAAABAAAAAAAAABUAgAAAAAAAPACAAAAAAAAAAEAAAAAAAAoAgAAAAAAAPACAAAAAAAAcAEAAAAAAAAQBQAAAAAAADABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArQAAAK0AAAAAAAAA/////wAAAMgBAAAAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywELgMwMTIzNDU2AjgBOjs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vAQECAgMDBAQFBQYGBwcICAkJCgoLCwwMDQ0BAgMEcHFyc3R1dnd4eXp7fH1+fwEBgIGCg4SFhoeIiYqLjI0AAAAAAADIAAAAAD+5AABoAQAAAQAAAAIAAAADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMADQADAA0AAwADAAMAAwADAAMAAwANAAMADQADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAjACEAIwAhACMAIQAjACEAIwAhACMAIQAjACEAIwAhACMAIQAjACEAIwAhACMAIQAjACEACQAJAAkACQADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAcAHQADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAAAAAAAAAAAAAAAAAAAQAAAACQAAAAABAAAAAAAAAQEAAAAAAAACAQAAAAAAAAMBAAAAAAAABQEAAAAAAAAGAQAAAAAAAAcBAAAAAAAAAAIAAAAAAAABAgAAAAAAAA8AAAAAAAAADgAAAAAAAAANAAAAAAAAAAwAAAAAAAAACwAAAAAAAAAKAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAApAAAAAAAAAAGAAAABQAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAMAAAAAAACkAAAAAAAAAKgAAAAAAAAArAAAAAAAAACwAAAAAAAAALQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAA4AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI0AAACNAAAABAAAAP////8AAADIECcAAEAGAAAgAwAALAEAAMgAAAAsAQAAyAAAAHwBAAC8AgAAfAEAAHwBAABg6gAAuAsAAIwAAACWAAAAjAAAAJYFAACqAAAAqgAAAJYAAABYAgAAvAIAAHwBAACqAAAADgEAAHwBAAB8AQAAmgEAAJYAAACWAAAASAMAALgLAACAqQMAgKkDABAIAQA4RAEAGOQDACgLBAAAQQoA4CICAOAiAgAQJwAAQAYAACADAAAsAQAAyAAAACwBAADIAAAAfAEAALwCAAB8AQAAfAEAAPYEAACgDwAAjAAAAKoAAACMAAAAvgAAAKoAAADSAAAAvAIAALwCAAB8AQAAqgAAAA4BAAB8AQAAfAEAAPQBAAAOAQAADgEAAPYEAACcGAAANwAAAEsAAAC8AgAAfAEAAIIAAABUAQAADgEAAJQRAAD+KQAANgEAAL4AAABBAAAAPAAAAEEAAAAoAAAAjAoAAFUAAABVAAAAPAAAANwFAAAAAAAAZAAAADIAAAB4AAAAKAAAAFAAAAC0AAAAtAAAAJABAAATBgAAEwYAADEBAAAxAQAAMQEAADEBAAC5AAAAuQAAALkAAAC5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAGAAAsAQAAyAAAACwBAADIAAAAjAAAAKoAAACMAAAAvgAAAJYAAADSAAAAqgAAAKoAAACMAAAAjAAAAIwAAACMAAAALAEAACwBAAAsAQAALAEAAEAGAABABgAABAAAAAAAAACkAAAAAAAAAAYAAAAFAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAAAwAAAAAAAKQAAAAAAAAAqAAAAAAAAACsAAAAAAAAALAAAAAAAAAAtAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAA/////wAAAMgBAAAAAQAAAAEAAAAdAAAAQAAAABwAAAAAAAAAAAAAAAAAAAAEAAAAFgAAAAYAAAAIAAAACgAAAA0AAAAPAAAAZAAAAAQAAAAAAAAANAEAAAAAAAAMAAAACwAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAMAAAAAAAABAwAAAAAAAAIDAAAAAAAAAwMAAAAAAAAEAwAAAAAAAAUDAAAAAAAABgMAAAAAAAA0AQAAAAAAADgBAAAAAAAAPAEAAAAAAABAAQAAAAAAAEQBAAAAAAAAVAEAAAAAAABgAQAAAAAAAGwBAAAAAAAAeAEAAAAAAADEAQAAAAAAABACAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAQAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAEwAAAAAAAAATAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAP////8AAADIAgAAAGsxazFrMWsxAAAAyAEAAAABAQEBAAAAyAEAAAACAgICAAAAyAEAAAABAQEBAAAAyAEAAAABCREZAQAAAAkJCQlAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAC9CwAAAAAAAL0LAAAAAAAAvQsAAAAAAAC9CwAAZAAAAAAAAMgBAAAAAQkRGQEAAAAJCQkJQAAAACAAAAAAAAAAAAAAAAAAAACMAAAAGAEAAIwAAAAYAQAALAEAAJABAAAsAQAAkAEAAGQAAAAAAADIjAAAAIwAAAAsAQAALAEAAAQAAAAAAAAArAEAAAAAAAARAAAAEAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAMAAAAAAAABAwAAAAAAAAIDAAAAAAAAAwMAAAAAAAAEAwAAAAAAAAUDAAAAAAAABgMAAAAAAAAHAwAAAAAAAAgDAAAAAAAACQMAAAAAAAAKAwAAAAAAAAsDAAAAAAAArAEAAAAAAACwAQAAAAAAALQBAAAAAAAAuAEAAAAAAAC8AQAAAAAAAMwBAAAAAAAA3AEAAAAAAADoAQAAAAAAAPQBAAAAAAAAAAIAAAAAAAAMAgAAAAAAABgCAAAAAAAAJAIAAAAAAABgAgAAAAAAAJwCAAAAAAAA2AIAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAP////8AAADIAgAAAGsxazFrMWsxAAAAyAIAAABxMXExcTFxMQAAAMgBAAAAAQEBAQAAAMgBAAAABAQEBAAAAMgBAAAAAgICAgAAAMgBAAAAAQEBAQAAAMgBAAAAAgICAgAAAMgBAAAAAQEBAQAAAMgBAAAAAQUJDQEAAAAFBQUFQAAAABAAAAAAAAAAAAAAAAAAAAC9CwAAvQsAAL0LAAC9CwAAZAAAAAAAAMgBAAAAAQUJDQEAAAAFBQUFQAAAABAAAAAAAAAAAAAAAAAAAAAYAQAAGAEAAJABAACQAQAAZAAAAAAAAMgBAAAAAQUJDQEAAAAFBQUFQAAAABAAAAAAAAAAAAAAAAAAAAAYAQAAGAEAAJABAACQAQAAZAAAAAAAAMgAAAAAAAAAAAAAAAAAAAAABAAAAAAAAADUAAAAAAAAAAgAAAAGAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAAAwAAAAAAAAIDAAAAAAAA1AAAAAAAAADYAAAAAAAAANwAAAAAAAAA4AAAAAAAAADkAAAAAAAAACgBAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAABEAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAA/////wAAAMgBAAAAAQAAAAEAAAAZAAAAQAAAABgAAAAAAAAAAAAAAAAAAAAEAAAAAwAAAAUAAAACAAAAAQAAAAAAAABkAAAAAAAAyAEAAAABAAAAAQAAABkAAABAAAAAGAAAAAAAAAAAAAAAAAAAAPUaAAD8GgAA7hoAAAMbAAAKGwAA4BoAAGQAAAAEAAAAAAAAAGQBAAAAAAAADgAAAA0AAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAADAAAAAAAAAQMAAAAAAAACAwAAAAAAAAMDAAAAAAAABAMAAAAAAAAFAwAAAAAAAAYDAAAAAAAABwMAAAAAAAAIAwAAAAAAAGQBAAAAAAAAaAEAAAAAAABsAQAAAAAAAHABAAAAAAAAdAEAAAAAAACMAQAAAAAAAMQBAAAAAAAA6AEAAAAAAAAAAgAAAAAAABgCAAAAAAAAMAIAAAAAAADgAwAAAAAAANQEAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAYAAAAAAAAADgAAAAAAAAAJAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAACwAQAAAAAAAPQAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAADQAAAAAAAAD/////AAAAyAEAAAABAQEBAQECAgICAgICAAAAAAAAyAAAAAAAAMBAAADAQAAAwEAAAMBAAABAQAAAAAAAAMhDAADIQwAAyEMAAMhDAADIQwAAlkIAAADIAgAAACIxzRHNEc0RzRHNESIxzRHNEc0RzRHNEc0RAAAAAADIAQAAAAEBAQEBAQEBAQEBAQEAAAAAAADIAQAAAAICAgICAgICAgICAgIAAAAAAADIAQAAAAEBAQEBAQEBAQEBAQEAAAAAAADIAgAAAAAAAQAhAEEAYQCBAAAAoQDBAOEAAQEhAUEBAAABAAAAACEhISEhACEhISEhIQAAAAACAABgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAADUMAAAAAAAAORXAAAAAAAAoFJXAQAAAAAAAAAAAAAAANQwAAAAAAAA5FcAAAAAAACgUlcBAAAAAAAAAAAAAAAA1DAAAAAAAADkVwAAAAAAAKBSVwEAAAAAAAAAAAAAAADUMAAAAAAAAORXAAAAAAAAoFJXAQAAAAAAAAAAAAAAANQwAAAAAAAA5FcAAAAAAACgUlcBAAAAAAAAAAAAAAAA1DAAAAAAAADkVwAAAAAAAKBSVwEAAAAAAAAAAAAAAADUMAAAAAAAAORXAAAAAAAAoFJXAQAAAAAAAAAAAAAAANQwAAAAAAAA5FcAAAAAAACgUlcBAAAAAAAAAAAAAAAA1DAAAAAAAADkVwAAAAAAAKBSVwEAAAAAAAAAAAAAAADUMAAAAAAAAORXAAAAAAAAoFJXAQAAAAAAAAAAAAAAANQwAAAAAAAA5FcAAAAAAACgUlcBAAAAAGQAAAAAAADIAQAAAAABESExQQBRYXGBkaEAAAABAAAAABERERERABEREREREQAAAAABAACwAAAAAAAAAAAAAAAAAAAAAADAQAAAwECF69lAAABMRAAAwEAAAMBAhevZQAAATEQAAMBAAADAQIXr2UAAAExEAADAQAAAwECF69lAAABMRAAAQEAAAEBAhetZQAAAzEMAAMhDAADIQwAQI0UAQDVGAADIQwAAyEMAECNFAEA1RgAAyEMAAMhDABAjRQBANUYAAMhDAADIQwAQI0UAQDVGAADIQwAAyEMAECNFAEA1RgAAlkIAAJZCAECqQgBgH0ZkAAAAAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAOwAAAAAAAAACQAAAAgAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAADAAAAAAAAAQMAAAAAAAACAwAAAAAAAAMDAAAAAAAA7AAAAAAAAADwAAAAAAAAAPQAAAAAAAAA+AAAAAAAAAD8AAAAAAAAABQBAAAAAAAAHAEAAAAAAAAkAQAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAGAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAADQAAAAAAAAD/////AAAAyAEAAABxc3V3eXt9f4GDhYeJAAAAAAAAyAAAAAAAAADIAAAAAAAAAMgAAAAABAAAAAAAAAD0AQAAAAAAABQAAAAPAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAQAAAAAAAAACAAAAAAAAAQIAAAAAAAACAgAAAAAAAAMCAAAAAAAABAIAAAAAAAAAAQAAAAAAAAMBAAAAAAAABQIAAAAAAAAGAgAAAAAAAAcCAAAAAAAA9AEAAAAAAAD4AQAAAAAAAPwBAAAAAAAAAAIAAAAAAAAEAgAAAAAAABwCAAAAAAAARAIAAAAAAAD8AgAAAAAAADwEAAAAAAAA9AQAAAAAAAAMBQAAAAAAABAFAAAAAAAAVAYAAAAAAAD0BgAAAAAAAJQHAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAYAAAAAAAAACgAAAAAAAAAuAAAAAAAAABAAQAAAAAAALgAAAAAAAAAGAAAAAAAAAAEAAAAAAAAAEQBAAAAAAAAoAAAAAAAAACgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAA/////wAAAMgBAAAAAQIDBAECBQYBBwIIAwkDBAAAAMgCAAAALy1FLU0t+iyTMLIw8DAKMSsxQDFIMXoxdTKgMNUy6DIAAADIAQAAAAEFCREdJS0xNT1FTVldZWkBAAAABQUJDQkJBQUJCQkNBQkFDYAAAAB0AAAAAAAAAAAAAAAAAAAA2wAAANsAAADbAAAA3gAAANsAAADeAAAA4AAAANsAAADgAAAA2wAAAN4AAADbAAAA2wAAAOoAAADrAAAA6gAAAOsAAADqAAAA6wAAANsAAADeAAAA4AAAANsAAADbAAAA3gAAAN0AAADoAAAAFQEAABYBAABkAAAAAAAAyAEAAAABFRkdXYmNqcXJzdHV2d3tAQAAABUFBUEtBR0dBQUFBQUFEREAAQAA/AAAAAAAAAAAAAAAAAAAABsAAAAgAAAAOAAAADkAAADAAAAAwAAAAMAAAAAQAAAAEQAAABIAAAATAAAAGwAAACAAAAAiAAAAIwAAACYAAAAoAAAAMQAAADIAAAAzAAAAOAAAADkAAADAAAAAEAAAABEAAAASAAAAEwAAABsAAAAgAAAAJgAAACgAAAA4AAAAOQAAAMAAAADAAAAAGwAAACAAAAA5AAAAOAAAADIAAAAxAAAAwAAAABsAAAAgAAAAOQAAADgAAAAyAAAAMQAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAbAAAAOQAAADgAAADAAAAAGwAAADkAAAA4AAAAwAAAAGQAAAAAAADIAQAAAAEJERkhKTE5QUVJTVVdZW0BAAAACQkJCQkJCQkFBQUJCQkJCYAAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAEAAAABAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAABkAAAAAAAAyAEAAAAoCAMnCRYGBgIMAgUICgICFbkAACwAAAABAAAAAgAAAAUABQAFAAUACwAJAAUABQABAAUAAQAFAAsABQABAAEAAAAAAAAAAAAQAAAACwAAAAABAAAAAAAAAQEAAAAAAAACAQAAAAAAAAMBAAAAAAAABQEAAAAAAAAGAQAAAAAAAAcBAAAAAAAAAAIAAAAAAAABAgAAAAAAAAICAAAAAAAAAwIAAAAAAAAPAAAAAAAAAA4AAAAAAAAADQAAAAAAAAAMAAAAAAAAAAsAAAAAAAAACgAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAjAAAAAAAAAAFAAAABAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAjAAAAAAAAACQAAAAAAAAAJQAAAAAAAAAmAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAP////8EAAAAAAAAAIwAAAAAAAAABQAAAAQAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAIwAAAAAAAAAkAAAAAAAAACUAAAAAAAAAJgAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAACQAAAAAAAAD/////BAAAAAAAAACMAAAAAAAAAAUAAAAEAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAACMAAAAAAAAAJAAAAAAAAAAlAAAAAAAAACYAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAA/////wQAAAAAAAAArAEAAAAAAAARAAAADAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABAEAAAAAAAAAAgAAAAAAAAECAAAAAAAAAgIAAAAAAAAAAQAAAAAAAAMBAAAAAAAAAAMAAAAAAAABAwAAAAAAAKwBAAAAAAAAsAEAAAAAAAC0AQAAAAAAALgBAAAAAAAAvAEAAAAAAABkAgAAAAAAALADAAAAAAAAWAQAAAAAAAAABQAAAAAAAAQFAAAAAAAAPAcAAAAAAACICgAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAqAAAAAAAAABMAQAAAAAAAKgAAAAAAAAAqAAAAAAAAAAEAAAAAAAAADgCAAAAAAAATAMAAAAAAACIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACgAAAAAAAAAP////8AAADIAQAAAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissZS5jMDEyMzQ1NmE4Xzo7PD0+P0BBQkNERUZHSAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdSUpLTE1OT1BRUgFTVFVWVwJYWVpbXF1eYGJkHh8gISIjJGZnaGlqa2xtbgMEb3BxcnN0dXZ3eHl6e3wAAADIAgAAAAIABAAGAAgACgAMAA4AEAASABQAFgAYABoAHAAeACAAIgAkACYAKAAqACwALgAwADIANAA2ADgAOgA8AD4AQABCAEQARgBIAEoATABOAFAAUgBUAFYAWABaAFwAXgBgAGIAZABmAGgAagBsAG4AcAByAHQAdgB4AHoAfAB+AIAAggCEAIYAiACKAIwAjgCQAJIAlACWAJgAmgCcAJ4AoACiAKQApgCoAKoArACuALAAsgC0ALYAuAC6ALwAvgDAAMIAxADGAMgAygDMAM4A0ADSANQA1gDYANoA3ADeAOAA4gDkAOYA6ADqAOwA7gDwAPIA9AD2APgA+gD8AP4AAAECAQQBBgEIAQoBDAEOARABEgEUARYBGAEaARwBHgEgASIBJAEmASgBKgEsAS4BMAEyATQBNgE4AToBPAE+AUABAAAAAAAAAMgBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAgICAgICAwMEBAQMBAwEBAQEBAQEDAQMBAQEBAQEBAQEBAQEBAQEBQUFBQUFBQUGBgYGBgYGBgYGBgYGBgYGBgYGBgYHCAcIBwgHCAcICQoKCgoKCwoKCgoKCgQEBAQNDQ0NDQ0NDg4ODg4ODg4ODxABBAEEAQQBBAEEAQQBBAAAAMgBAAAAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHJ0dnh6fH6AgoSGiIqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusrUC5AABMAQAAAQAAAAIAAAADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAwADAAMAAwADAAMAAwADAAMAAwABAAMAAwADAAMAAwABAAMAAwADAAMAAwADAAMAAwADAAMABQAFAAUABQAFAAUABQADAAMAAwADAAMAAwADAAMAAwABAAEAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAAAAAAAAAAAABAAAAAJAAAAAAEAAAAAAAABAQAAAAAAAAIBAAAAAAAAAwEAAAAAAAAFAQAAAAAAAAYBAAAAAAAABwEAAAAAAAAAAgAAAAAAAAECAAAAAAAADwAAAAAAAAAOAAAAAAAAAA0AAAAAAAAADAAAAAAAAAALAAAAAAAAAAoAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAAAAAC8AAAAAAAAAAcAAAAGAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAAAgAAAAAAAAECAAAAAAAAvAAAAAAAAADAAAAAAAAAAMQAAAAAAAAAyAAAAAAAAADMAAAAAAAAAFABAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAACEAAAAAAAAAPgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAHwAAAAEAAAA/////wAAAMgBAAAAiRAPDg0LCnIlXWEMMAkIB2gGLAUrNhoXdCAfKgQDARgOCwkHIB8qCQeJEA8ODQsKciVdYQwwCQgHBiwFKzYaF3QgHyoEAwEYEBAODgsLCQkHBw8NCggGEA4LCQcXBwcJCQsLDg4QDg0LCgkIBwYFBRcXBwcJCQsLDg4QEAAAAMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD3////9/////f////3////9/////f////3////9/////f///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADsAAAAAAAAAAkAAAAIAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAAAgAAAAAAAAECAAAAAAAAAgIAAAAAAAADAgAAAAAAAOwAAAAAAAAA8AAAAAAAAAD0AAAAAAAAAPgAAAAAAAAA/AAAAAAAAAAoAQAAAAAAAFQBAAAAAAAA7AEAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAACwAAAAAAAAALAAAAAAAAACYAAAAAAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAkAAAAAAAAAP////8AAADIAQAAAAUFKxoEAwMBiRAODgsLCRAJBwcBF3QFBAMXAQEYDQoICAYGBgAAAMgBAAAABAMBXQEBBBgMDw8NDQoKDAgIBmgGLCwsLCwEAwEPDQ0KDQoIAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPf////3////9/////f////3////9/////f///8AAADIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9/////f////3////9/////f////3////9////wAAAAAEAAAAAAAAAHwBAAAAAAAADwAAAA0AAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAQBAAAAAAAAAAIAAAAAAAABAgAAAAAAAAUCAAAAAAAABgIAAAAAAAAAAQAAAAAAAAMBAAAAAAAAAQEAAAAAAAACAQAAAAAAAHwBAAAAAAAAgAEAAAAAAACEAQAAAAAAAIgBAAAAAAAAjAEAAAAAAACUAQAAAAAAAKgBAAAAAAAAtAEAAAAAAADAAQAAAAAAAMgBAAAAAAAAzAEAAAAAAABEAwAAAAAAAGAEAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAIAAAAAAAAABQAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAgAAAAAAAAABAAAAAAAAAB4AQAAAAAAABwBAAAAAAAAdAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAD/////AAAAyAAAAAAAAADIAgAAAKlev1NjZQAAAAAAAAAAAMgBAAAAAwCTAAAAAMgBAAAAAQIDAAAAAMgAAAAAD7kAABQAAAABAAAAAgAAAKIA4gCAAAAAAAAAAAAAAAAAAAAAEAAAAA4AAAAAAQAAAAAAAAEBAAAAAAAAAgEAAAAAAAADAQAAAAAAAAUBAAAAAAAABgEAAAAAAAAHAQAAAAAAAAACAAAAAAAAAQIAAAAAAAACAgAAAAAAAAMCAAAAAAAABAIAAAAAAAAFAgAAAAAAAAYCAAAAAAAADwAAAAAAAAAOAAAAAAAAAA0AAAAAAAAADAAAAAAAAAALAAAAAAAAAAoAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAUAAAAAAAAABgAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAOwAAAAAAAAACQAAAAgAAAAAAQAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAgEAAAAAAAACAgAAAAAAAAMCAAAAAAAA7AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAFAAAAAAAAAAkAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAABAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA/////wAAAIABAADAAgAAAAEAAAABAQAAAAAAgAQAAAAcAQAAAAAAAAsAAAAJAAAAAAIAAAAAAAAAAQAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAgEAAAAAAAACAgAAAAAAAHMvAAAAAACAHAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAUAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABzLwAA/////wkAAAAEAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAD/////AAAAgAAAAIABAADAAQAAAAEAAADQAAAAAQAAAAIAAAABAAAAAQAAAAQAAAAAAAAAZAEAAAAAAAAOAAAACwAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABAEAAAAAAAAAAgAAAAAAAAECAAAAAAAAAgIAAAAAAAADAgAAAAAAAAABAAAAAAAAAwEAAAAAAABkAQAAAAAAAGgBAAAAAAAAbAEAAAAAAABwAQAAAAAAAHQBAAAAAAAAfAEAAAAAAAAoAgAAAAAAANQCAAAAAAAAgAMAAAAAAAAsBAAAAAAAADAEAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAIAAAAAAAAAKwAAAAAAAAArAAAAAAAAACsAAAAAAAAAKwAAAAAAAAABAAAAAAAAAAkAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIAAACiAAAAAgAAAAAAAAAAAADIAAAAAAAAAMgBAAAAAAAEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uMIMygjM0NTY3ODqBPIA9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/OzkxL4SFhoeIiYqLjI2Oj5CRkgCUlZaXmJmam5ydnp+goaIAAAAAAADIAQAAAAIAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foAAAAAAAyAEAAAAMDAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkAAAAAAMgBAAAAAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAwMDAwMDAwMDAwMDAwMDAABBuQAAUAEAAAEAAAACAAAAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAQAAAAAAAAEBAAAAAAAAAgEAAAAAAAADAQAAAAAAAAUBAAAAAAAABgEAAAAAAAAHAQAAAAAAAAACAAAAAAAADwAAAAAAAAAOAAAAAAAAAA0AAAAAAAAADAAAAAAAAAALAAAAAAAAAAoAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAPQBAAAAAAAAFAAAABAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAQBAAAAAAAAAAMAAAAAAAABAwAAAAAAAAIDAAAAAAAAAwMAAAAAAAAEAwAAAAAAAAUDAAAAAAAABgMAAAAAAAAAAQAAAAAAAAMBAAAAAAAAAgEAAAAAAAAHAwAAAAAAAPQBAAAAAAAA+AEAAAAAAAD8AQAAAAAAAAACAAAAAAAABAIAAAAAAACUAgAAAAAAACQDAAAAAAAAPAQAAAAAAADMBAAAAAAAANQEAAAAAAAA3AQAAAAAAADkBAAAAAAAAOwEAAAAAAAA8AQAAAAAAADcBgAAAAAAAOQYAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAACQAAAAAAAAAJAAAAAAAAAAGAEAAAAAAACQAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAABAAAAAAAAADsAQAAAAAAAAgSAAAAAAAAyAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIAAAAiAAAAAAAAAD/////AAAAyAEAAAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIAAAAyAEAAADNzMvK793a3t/k4OLh4/D+2djX1tXU09LR0Nvq3P3m5ejp58/O6+zt7vz/8QJ7ARhZAwQgHwU2Gl1yKix0FwYHCAkKCw0ODxAwDGZwaytoYVtNdomNjhk1Tm5QeVZ3XF45OjslZ39aOFRgPT4/QEF1RCZDYnhFRkdsPFiPc5CRalVpZG8WLnzJAAAAyAIAAACMAJ0AsgC4ALwAwwDYAOsA8QD5AAABBgENAREBFwEeASUBKAErAS4BMQE0ATcBOgE9AUABQwFLAVABYgFnAWsBcAF3AX4BgwGVAacBrQHAAdEB4gHnAQowMgNmA3sDnQOkA7AD8QMTBBgEHQSSBJ0EogSnBKwEsQTWBN8EMgVPBTsGVAYABx0H1wf0B6kIxgh7CX8JkwmgCa0JsQm1CccJywneCegJ9glzCnsKhArfCjELOwtiC4kLuAvnCxYMQQxsDJcMwgzpDO8MHg0zDV4NlA2/De4NJA5PDoUOtA7qDhoPSQ9OD3UPfw+ND8MP8g8PEBYQQRBoEG4QdBB5EH8QlhCtEMUQ2BACExAThBRoAAAAAMgBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAMgAAAAAAAAAyAAAAAAAAADIAAAAAAAAAMgAAAAADrkAABwBAAABAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAIAAAAGAAIAAAAAAAYAAAACAAIAAAAAAAIAAgAGAAIABgACAAYAAgAGAAIABgACAAYAAAACAAAAAAAAAAIAAgAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAABAAAAAAAAAQEAAAAAAAACAQAAAAAAAAMBAAAAAAAABQEAAAAAAAAGAQAAAAAAAAcBAAAAAAAAAAMAAAAAAAAPAAAAAAAAAA4AAAAAAAAADQAAAAAAAAAMAAAAAAAAAAsAAAAAAAAACgAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAQAAAAAAAAAHAEAAAAAAAALAAAACgAAAAACAAAAAAAAAAEAAAAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAIBAAAAAAAAAgIAAAAAAABwAAAAAAAAgAECAAAAAAAAHAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAA4AAAAAAAAAFQBAAAAAAAAdAIAAAAAAAAgAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAoAAAAAAAAABwBAAAAAAAAHAEAAAAAAABUDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABwAAAAAQAAAAwAAAACAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAP////8AAADAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAwIcAAAACAAAAAQIAAgwCHwIiAvgB9gHsAesB6gHpAegBLALnASsC5gEWAhUCFAITAhICEQIQAg8CDgINAtsBGALYAdYB1QHSAc8BFwLKAccBxgHFAcQBwwEaArgBtgEAAAYACAAMAA0ADgAWABsAHAAdACgAKQAqACsALAAtADEAMgA8AEAAkwFWAJQBbACVAYMAlgGaAJcBrgCxALMAtQC2ALcAuAC5ALsAvAC9AJ0BzADNANIA1wDYANwA4ADkAOgA7ADwAPQA+AD8AAABAQEFAQcBCwEQARQBGAEdASEBJgEqAS8BMwE3ATgBPAE9AT4BQgFGAUgBSQFNAVEBUgFTAVQBVQFWAVcBWAFaAXcBeAF5AZ4BIAIBAADAWwAAAAIAAACDAIMAgwCDAIMAgwCDAIMAgwCDAIMAgwCDAIMAgwCDAIMAgwCDAIMAgwCDAIMAgwCDAIMAgwCDAIMAgwCDAIMAgwCDAIMAgwCDAIMAgwCDAIMAgwCDAIMAMgNvA3sDnQOkA7AD8QMTBBgEHQSSBJ0EogSnBKwEsQTWBN8EMgVPBTsGVAYABx0H1wf0B6kIxgh7CX8JkwmgCa0JsQm/CccJywneCegJ9glzCnsKjQrfCjELOwtiC4kLuAvnCxYMQQxsDJcMwgzpDO8MHg0zDV4NlA2/De4NJA5PDoUOtA7qDhoPSQ9OD3UPfw+ND8MP8g8PEBYQQRBoEG4QdBB5EIkQnxCtEMUQ2BACExoTjRSDAAQAAAAEAQAAAAAAAAoAAAAIAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAAAwAAAAAAAAEDAAAAAAAAAgMAAAAAAAADAwAAAAAAAAQBAAAAAAAACAEAAAAAAAAMAQAAAAAAABABAAAAAAAAFAEAAAAAAAB8BQAAAAAAALQHAAAAAAAAHAwAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAGgEAAAAAAAAOAIAAAAAAABoBAAAAAAAADQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8CAAAvAgAAAAAAAP////8AAADIAgAAABICAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQAZQBmAGcAaABpAGoAawBsAG0AbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQB+AH8AgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAoQCiAKMApAClAKYApwCoAKkAqgCrAKwArQCuAK8AsACxALIAswC0ALUAtgC3ALgAuQC6ALsAvAC9AL4AvwDAAMEAwgDDAMQAxQDGAMcAyADJAMoAywDMAM0AzgDPANAA0QDSANMA1ADVANYA1wDYANkA2gDbANwA3QDeAN8A4ADhAOIA4wDkAOUA5gDnAOgA6QDqAOsA7ADtAO4A7wDwAPEA8gDzAPQA9QD2APcA+AD5APoA+wD8AP0A/gD/AAABAQECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAQMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhMCFAIVAhYCFwIYAq4BAQCfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGsAa0BrwGwAbEBsgGzAbQBtQG2AbcBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHKAcsBzQHPAdEB0wHVAdcB2QHbAd0B3wHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+ARwCHQIfAiACIgIjAiQCJQImAicCKAIpAioCKwIsAi0CLgIeAi8C/wEAAgECAgIZAhoCGwIhAswBzgHQAdIB1AHWAdgB2gHcAd4BuAHJAasBAAAAAADIAQAAACMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMAAAAAyAIAAABtAAAAAgADAAQABQAAAAcAAAAJAAoACwAAAAAAAAAPABAAEQASABMAFAAVAAAAFwAYABkAGgAAAAAAAAAeAB8AIAAhACIAIwAkACUAJgAnAAAAAAAAAAAAAAAAAJ8BLwAwAAAAAACoATQANQA2ADcAOAA5ADoAOwAAAKABPgA/AAAAqgFCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAAAAoQFUAFUAAACsAVgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQAZQBmAGcAAACiAWoAawAAAAEAbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQB+AAAAowGBAIIAAACvAYUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQAAAKQBmACZAAAAsQGcAJ0AngCfAKAAoQCiAKMApAClAKYApwCoAKkAqgCrAKwAAAAAAKUBsAAAALIAAAC0AAAAAAAAAAAAAAC6AAAAAAAAAKYBvwDAAMEAwgDDAMQAxQDGAMcAyADJAMoAAAAAAAAAzgDPANAA0QAAANMA1ADVANYAAAAAANkA2gDbAAAA3QDeAN8AAADhAOIA4wAAAOUA5gDnAAAA6QDqAOsAAADtAO4A7wAAAPEA8gDzAAAA9QD2APcAAAD5APoA+wAAAP0A/gD/AAAAAAACAQMBBAEAAAYBAAAIAQkBCgEAAAwBDQEOAQ8BAAARARIBEwEAABUBFgEXAQAAGQEaARsBHAEAAB4BHwEgAQAAIgEjASQBJQEAACcBKAEpAQAAKwEsAS0BLgEAADABMQEyAQAANAE1ATYBAAAAADkBOgE7AQAAAAAAAD8BQAFBAQAAQwFEAUUBAABHAQAAAABKAUsBTAEAAE4BTwFQAQAAAAAAAAAAAAAAAAAAAABZAQAAWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgEAAAAAUgBoAH8AlgCtAHoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBywCYAZkBmgGbAZwBAACnAakBqwGtAa4BsAGyAbMBLgAzAD0AQQBTAFcAaQCAAIQAlwCbAK8AvgC1AQAAAAAAALcBAAC5AboBuwG8Ab0BvgG/AcABAADCAbQBAAAAAAAAAADIAckBAAAAAC0CzQHOAQAA0AHRAQAA0wHUAQAAAADXAQAA2QEAAAAAAAAAAAAAAAAAACYCJwIoAikCKgIAAAAAAAAAAAAAAAAAAO0B7gHvAfAB8QHyAfMB9AH1AQAA9wEAAPkBAAD7AQAA/QEAAP8BAAAAAAICAwIEAgUCBgIhAggCGQIKAv4B3AEuAt0B3gEjAt8BJALgASUC4QHLAdoBCQIvAgcCGwIcAh0C/AEeAvoBCwIAAAAAAAAAAOIB4wHkAeUBAAAAAMwBAADBAQAAAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAA0AQAAAAAAAAwAAAAKAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAACAgAAAAAAAAMCAAAAAAAABgIAAAAAAAAHAgAAAAAAAAgCAAAAAAAAAAIAAAAAAAA0AQAAAAAAADgBAAAAAAAAPAEAAAAAAABAAQAAAAAAAEQBAAAAAAAA1AEAAAAAAADcAQAAAAAAAGgCAAAAAAAA+AIAAAAAAAAIAwAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAkAAAAAAAAAAIAAAAAAAAAIwAAAAAAAAAkAAAAAAAAAAQAAAAAAAAALwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAAAAIgAAAAAAAAA/////wAAAMgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAADAAQFBgcICQoLDA0OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMgAAAAAAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgABAAADAwAABwAAAAAACAAJCAkICQgJCAkICQAIAAAAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIAQAAAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4gAAADIAAAAAAAAAAAAAAAAlAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAEAAAAAAgAAAAAAAAAAAAAAAAAAAgAAAAAAAAAEAAAAAAAAAEwBAAAAAAAADQAAAAwAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAQBAAAAAAAAAAMAAAAAAAABAwAAAAAAAAIDAAAAAAAAAAEAAAAAAAADAQAAAAAAAAIBAAAAAAAABAMAAAAAAABMAQAAAAAAAFABAAAAAAAAVAEAAAAAAABYAQAAAAAAAFwBAAAAAAAAZAEAAAAAAAC8AgAAAAAAABQEAAAAAAAAxAQAAAAAAADIBAAAAAAAAAwHAAAAAAAAuBgAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAWAEAAAAAAABYAQAAAAAAALAAAAAAAAAABAAAAAAAAABEAgAAAAAAAKwRAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAAAAqAAAAAAAAAD/////AAAAyAAAAAAAAADIAgAAABQAEwASABEAEAAPAA4ADQAJAAoACwAMAPkA/wAAAQEBAgEDAQQBBQEGAQcBCAEJAQoBDAENAQ4BDwEQARIBEwEUAQsBJQAkADEALgAyACgAaAD6ADQANQA2ADcAOAA5ADoAOwAtACkATgBPAFAAKgArABkAdQCTAJQARACSABYAFwAYACYAIAAfACEASgAsABoARwBIAEkASwBaAGAAbABmAHoALwAwABsAHAAdAGQAbQBuAG8AcABxAHIAHgAiACMAJwAzADwAPQA+AD8AQABBAEIAQwBGAEwATQBRAFIAUwBUAPwAVgBXAFgAWQBbAFwAXQBeAF8AYQBiAGMAZQBnAGkAagBrAHMAdAB2AHcAeAB5AHsAfAB9AH4AfwCAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQD4APcA9gD1APQAFQD7AAAAAMgCAAAAAQAJAA4AEwAcACkANAA8AFsAUQBMAEYAPjAPAhsCJQIvAjkCRALRAVICXwJsAnkChgKgAq0CugLHAmcB3ALgAukCkwJMA1kD5wM6BFoEagSCBEMwowW2BckF3AXvBQIGFQYoBmcH0AmjCrcKywrtCgELFws1C98Q7RAKERgRJBE0EUQRVhFkEXgRkhGsEc0R3BH2EQcSGxIsEkISYhKEEo0SnxKqErYSwhLNEuES7hIiE1QThhO4E+oTHBTNFtMW2RbkFusW8hb6FgIXHQdUBk8F3wQdBAYXDBcVFxwXIBclFysX4gEyFzgXPxdFF1QXWhdlF3AXexeGF5MXtQmZF58XqReyF7gXvxcXAcQXzBfQF9gX3BfgFyAR4xfnF38JFBHsF/AX9Bf3F/4XCBgQGBMYGRgdGCEYJhgqGDQYPhhHGDYwLjAjMBowFDDxAA8FAAAAyAEAAAAYAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/FwAAXAEAAAEAAAACAAAACAAJAAoACwAMAA0ADgAPAAgACAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACQAAAAABAAAAAAAAAQEAAAAAAAACAQAAAAAAAAMBAAAAAAAABQEAAAAAAAAGAQAAAAAAAAcBAAAAAAAAAAMAAAAAAAABAwAAAAAAAA8AAAAAAAAADgAAAAAAAAANAAAAAAAAAAwAAAAAAAAACwAAAAAAAAAKAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAHAEAAAAAAAALAAAACgAAAAACAAAAAAAAAAEAAAAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAIBAAAAAAAAAgIAAAAAAAD6AQAAAAAAgAECAAAAAAAAHAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAA4AAAAAAAAAJQBAAAAAAAAGAIAAAAAAAAgAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAoAAAAAAAAAFwBAAAAAAAAgAAAAAAAAABUDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAD6AQAAAQAAAA0AAAACAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAP////8AAADAIAAAAAPy//8DAgAAAAAAAAAABAAAAAAAvgAAAAAAAAAAAAAAAQAAwFgAAAACAAAA+QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAggALAgoCCQKHAB4CGAAfADkAagBaAe0BqQH+AaUBugEhAqAAEwIAAAAA2AHBAMIAFgAiAKUAwwAoAC4CxADFAMYAxwDIAMkAygDLAKQAVQHQANEA0gBQAVEBSAHYAFsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwGYAZkBmgGbAZwBnQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkALwA+AKEAxQEAABECAAAAwCEAAABAAAAAAAAAAAEAAAAPEBESExQVFhcYGQoiGxwdHh8CASAhGg5zKg2io6SlpqgAAAACAAAAIQIrAjUCQAJKAk4CWwJoAnUCggKPAi8znAK2AsMC0AJnAdwC1ALYAuUC6QKpAhcCKzMnMyMzHzMbMxwXFzMTMw8zAAAEAAAAAAAAAAQBAAAAAAAACgAAAAgAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAADAAAAAAAAAQMAAAAAAAACAwAAAAAAAAMDAAAAAAAABAEAAAAAAAAIAQAAAAAAAAwBAAAAAAAAEAEAAAAAAAAUAQAAAAAAAHwFAAAAAAAAtAcAAAAAAAAcDAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAaAQAAAAAAAA4AgAAAAAAAGgEAAAAAAAANAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAgAALwIAAAAAAAD/////AAAAyAIAAAAMAgIAAwKhAAUABgDFARYCCQBEAEcACAINAA4ADwAQABEABwCJAB8A1AEWABcA8QG9AQwAgwAcAB0AHgAbAiAAIQAiABMCVAAlACYAIwAoACkAKgArACwALQAuAB4CSAC+ATIAMwAvADUANgBxAAEA+gEUAjsAPAA9AB8CCAAkAEEAQgBDAPMB5wG/AVUABwJJAEoASwBMAE0ATgBPAFAAUQBSAFMAEgAnADAAVwBYAFkA0wHoAcEBNAByAF8AYABhAGIAYwBkAGUAZgBnAGgAaQD7AQoAAwBtAG4AbwAPAs8ARQA3AKMBdQB2AHcAeAB5AHoAewB8AH0AfgB/AIAA1QEcAgsChACFAIYA9QGxAAQAEwAYAowAjQCOAI8AkACRAJIAkwCUAJUAlgCXAFYAHQJGAJsAnACdAAUC6QHEASACFwKjAKQApQCmAKcAqACpAKoAqwCsAK0ArgCvAFoBMQCyALMAtAClAbYAtwC4ALkAugC7ALwAvQC+AAsA6gHBAMIAwwDEAMUAxgDHAMgAyQDKAMsAzADNAM4AqQHQANEA0gDTANQA1QDWANcA2ADZANoA2wDcAN0A3gDfAOAA4QDiAOMA5ADlAOYA5wDoAOkA6gDrAOwA7QDuAO8A8ADxAPIA8wD0APUA9gD3APgA+QD6APsA/AD9AP4A/wAAAQEBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQH8AVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaAB2gGiAdsBXgABAiUCGQAYAP4B1gE4AKwB6wGuAaYBsAGxAbIBswEZAiYCtgG3AQ4CKAICAhECvAEGArAAoQHAAb8AwgHDAfcBIQLGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSAUAAJwI+AF0AXAD/ASMCFQAUANwB3QHeAd8B4AHhAeIB4wHkAeUB2QHYAQQCJAINAlsAWgD9AZ4AmACKAMAA8gG1APQBogD2ARAC+AH5AeYBPwAbABoAAALXAToAIgI5AJ8AmQCLAIcAgQBzAO4B7wHwAagB7AHtAWoApAEKAgkCoACaABUCiACCAHQAawApAqcBKgIrAiwCLQIuAi8CbACqAasBrQGvAbQBtQG4AbkBugG7ARICGgJwAAAAAAAAyAEAAAAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjAAAAAMgCAAAAgwAAAAAA7wEAAAAAsAAVAgIA+wHVAQUCCQANAA4ABQAGAGwAGwCoASsCAAAPAAAAKQI/AF4AFwAcAB0AXAAQABEAAAAtAgsAAAAAAPwBAAAeACkAKgArACwALQAAAOgBAAAuADIAQAAgACEA6wEAAOUBIwAmACUAMwAAAIkA/QE9ADUANgBGAIEAGQCaABgCOwA8AAAAAAAAAAAAAAAAAAAAAABBAL8ApwEUAFMAQgBDACoCqgEsAlYAIgJJAEoASwBMAE0ATgBPAFAAUQBSAFcA+gEAAAAAaQBYAFkAuAHxAXMAJwC/AV8AAABgAGEAYgBjAGQAZQBmAGcAaABtALUAAAAAAIAAbgBvAEQA7gEAABoAogB1AHYAdwB4AHkAegB7AHwAfQB+AH8AhAAKAAAA0wGXAIUAhgAwAP8BwQEAAAgAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJsArgAEAFUArwC+AbIAAAC0ALYAtwC4ALkAAAC6ALwAvQASAOcBnACdAKMApgCnAKgAqQCqAKsArACtAL4AzADNAAAAAAAAAAAAzgC7AAAAAAAAAAAA0wDUANUA1gDZANoA2wDcAN0A3gDfAOAA4QDiAOMA5ADlAOYA5wDoAOkA6gDrAOwA7QDuAO8A8ADxAPIA8wD0APUA9gD3APgA+QD6APsA/AD9AAEB/gD/AAABAgEDAQYBBwEEAQUBCAEJAQoB1wALAQwBDQEOARABEQESARMBFAEVARYBFwEYAQ8BGQEaARsBHAEeAR8BIAEhAR0BIgEjASQBJQEnASgBKQEqASYBKwEsAS0BLgEwATEBMgEzATUBNAE4ATYBNwE5AToBPgE7ATwBLwE9AT8BQAFBAUQBQgFDAUkBRwFFAUYBSgFLAUwBTQFPAVIBUwFUAU4BVgFXAVgBRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQF4AQAAegF7AXwBfQEAAH8BgAGBAYIBAACEAYUBhgGHAQAAiQGKAYsBjAEAAI4BjwGQAZEBAACTAZQBlQGWAX4BgwGIAY0BkgGXAXkBngGfASMCoAEkAp4ADQLpAdsBVACfAK8BsQCiAeYBrAEAAK4BsAGxAbIBxAGmAbMBtgHqAdQBDgL3AbcBpAEDAgAAvAGIAMABwgEHAAAAwwHGAccByAHJAcoBywHMAc0BzgHPAdAB0QGrAbUBAgIkAEcAwAAxADgAawDSAdwB3QHeAd8B4AHhAeIB4wFaAM8ADAIAAtkBAQByAJgAWwAEAvABBwLzAeQBswDyAQwA9AFwAPYB+AEVAF0AigDaAa0BGwIDALQBNAAWAgYCSAAXAggCDwIAAAAAAAAAAKEBowHWAQAAEgL1ARQCEwA6ADcALwK9AewBuQEAABoCHAIdAgECiwAfAtcBAAAAAHEAJQJ0ABACJgInAigCAAC7AQAAGQIAAAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAMQBAAAAAAAAEgAAAA0AAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAQBAAAAAAAAAAMAAAAAAAADAwAAAAAAAAEDAAAAAAAAAgMAAAAAAAAAAQAAAAAAAAMBAAAAAAAABQMAAAAAAAAGAwAAAAAAAMQBAAAAAAAAyAEAAAAAAADMAQAAAAAAANABAAAAAAAA1AEAAAAAAABIAgAAAAAAACgDAAAAAAAA3AQAAAAAAABQBQAAAAAAAMQFAAAAAAAAyAUAAAAAAAB8BwAAAAAAAEALAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAB0AAAAAAAAAOAAAAAAAAAAtAEAAAAAAAB0AAAAAAAAAHQAAAAAAAAABAAAAAAAAAC0AQAAAAAAAMQDAAAAAAAAOAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAAAAbAAAAAAAAAD/////AAAAyAEAAAABAgMEBQYHAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGUAAADIAgAAAOEaCxsEG/0a9hrvGugaEB+CH3gfcB9oH2AfWB9QH0YfPR80HysfIh8aH3wanxqWGo0ahRoRHjgeMh4qHiIeGx7QHfAd6R3jHdodWR52Hm0eZB7FHvEe6B7gHtcezx6WHqQeGSATIf8g6yDXIMMgryCbIIcgcyBpIGIgWyBUIE8gSiBFID4gOSAyIC0gryG2IXYhlCGJIYIhfSE3IVQhmR+vH+gfACD7H/YfcxvBG7MbpRuVG4UbYS5uLnsuhy6TLp8uqy63LsMu0S7fLu0u+y4HLxQvIS8uLwAAAMhcj8I+cT1aQHE9WkAAAJBAzcwUQa5HEUMAABZEXI/CPnE9WkBxPVpAXI/CPnE9WkBxPVpAAACQQM3MFEEAAJBAAAAWRAAANkMAABZEAAA2Q65HEUNcj8I+cT1aQHE9WkAAAJBAAACQQAAAFkQAAAAAAAAWRAAAFkQAABZEAAAWRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWRAAAFkQAABZEAAAWRAAAFkQAAAAAAAAAAAAAAAAAABZEAAAWRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcj8I+cT1aQHE9WkAAAAAAXI/CPnE9WkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2QwAANkOuRxFDzcwUQQAAkEBxPVpAcT1aQFyPwj4AAJBAcT1aQHE9WkBcj8I+AACQQAAAkEBxPVpAcT1aQFyPwj4AAADIAQAAAEhGREJANj5GREJGREJAPkAyMjMzNkZEQkBAMjIzMjIyMjIyMzIyMjIyMjIyMjIyMjI/Nj82PzY/Nj82REZEQkZEQkBAPz82NjIyMzMzMzM/NkpKMzI2NjY2Ly8yMzY+QEJERkBCREZAQEJERgAAAMgBAAAARkRCQD4+M0hGREhGREJAQj4+Pj4+SEZEQkI8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PD48Pjw+PD48PjxGSEZESEZEQkI+Pj09PDw8PDw8PD49VFQ8PD09PT08PD4+PkBCREZIQkRGSEJCREZInBsAAOQAAAABAAAAAgAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAACAAAAAgAAAAAAQAAAAAAAAEBAAAAAAAAAgEAAAAAAAADAQAAAAAAAAUBAAAAAAAABgEAAAAAAAAHAQAAAAAAAAADAAAAAAAADwAAAAAAAAAOAAAAAAAAAA0AAAAAAAAADAAAAAAAAAALAAAAAAAAAAoAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABwBAAAAAAAACwAAAAgAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAICAAAAAAAAAwIAAAAAAAAAAgAAAAAAAAECAAAAAAAAHAEAAAAAAAAgAQAAAAAAACQBAAAAAAAAKAEAAAAAAAAsAQAAAAAAAJgDAAAAAAAAqAMAAAAAAACwAwAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAbAIAAAAAAAAQAAAAAAAAAAgAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAABwAAAAAAAAD/////AAAAyDYBAAA2AQAAvgAAAL4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACADAAAgAwAAAAAAAAAAAAAgAwAAIAMAAA4AAAABAAAAAQAAAP////9BAAAAQQAAAFoAAABaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIAAAAyAAAAAAAAAAAAAAAyAAAAMgAAAAMAAAAAQAAAAEAAAD/////QQAAAEEAAABVAAAAVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAMgAAAAAAAAAAAAAAMgAAADIAAAACQAAAAEAAAABAAAA/////1UAAABVAAAAVQAAAFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKoAAACqAAAAAAAAAAAAAACWAAAAlgAAAAcAAAABAAAAAQAAAP////88AAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+AAAAvgAAAAAAAAAAAAAAqgAAAKoAAAAFAAAAAQAAAAEAAAD/////UAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAqgAAAKoAAAAAAAAAAAAAAKoAAACqAAAAKwAAAAEAAAABAAAA/////1AAAABQAAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKoAAACqAAAAAAAAAAAAAACqAAAAqgAAACsAAAABAAAAAQAAAP////8AAADIAAAAAAAAAAAAAAAAAAAAyAAAAAAAAADIAQAAAAAAAAAAPQAABAAAANQAAAAAAAAACAAAAAcAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAACAAAAAAAAAQIAAAAAAAACAgAAAAAAANQAAAAAAAAA2AAAAAAAAADcAAAAAAAAAOAAAAAAAAAA5AAAAAAAAABUAQAAAAAAAMQBAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAABwAAAAAAAAAHAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAAGUAAAAAAAAA/////wAAAMgBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAADIAQAAAAIEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVg0PEAoJCAcGCwUEAhUUExIRAAAAAAAAyAEAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNXV1dXV1dXV1dXV1dXV1dXVwAAAAAAAAAEAAAAAAAAADwCAAAAAAAAFwAAABAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAQBAAAAAAAAAAIAAAAAAAABAgAAAAAAAAICAAAAAAAAAwIAAAAAAAAEAgAAAAAAAAUCAAAAAAAABgIAAAAAAAAHAgAAAAAAAAgCAAAAAAAAAAEAAAAAAAADAQAAAAAAADwCAAAAAAAAQAIAAAAAAABEAgAAAAAAAEgCAAAAAAAATAIAAAAAAABUAgAAAAAAAGACAAAAAAAAbAIAAAAAAAB4AgAAAAAAAIQCAAAAAAAAkAIAAAAAAACcAgAAAAAAAKgCAAAAAAAAtAIAAAAAAADAAgAAAAAAAMQCAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAQAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAgAAAAAAAAD/////AAAAyAAAAAAAAADIAQAAABQXAAAAAADIAgAAAIkyTDMAAADIAQAAAAACAAAAAADIAQAAAAEBAAAAAADIAQAAAAIJAAAAAADIAQAAAAEEAAAAAADIAQAAAAICAAAAAADIAQAAAAUFAAAAAADIAQAAAAECAADyuAAAEAAAAAEAAAACAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAQAAAAAAAAEBAAAAAAAAAgEAAAAAAAADAQAAAAAAAAUBAAAAAAAABgEAAAAAAAAHAQAAAAAAAAACAAAAAAAADwAAAAAAAAAOAAAAAAAAAA0AAAAAAAAADAAAAAAAAAALAAAAAAAAAAoAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwCAAAAAAAAFQAAABIAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAQBAAAAAAAAAAIAAAAAAAABAgAAAAAAAAICAAAAAAAAAwIAAAAAAAAEAgAAAAAAAAUCAAAAAAAACQIAAAAAAAAKAgAAAAAAAAgCAAAAAAAABgIAAAAAAAAHAgAAAAAAAAABAAAAAAAAAwEAAAAAAAAMAgAAAAAAABACAAAAAAAAFAIAAAAAAAAYAgAAAAAAABwCAAAAAAAAJAIAAAAAAAAwAgAAAAAAADwCAAAAAAAARAIAAAAAAABMAgAAAAAAAFgCAAAAAAAAZAIAAAAAAABsAgAAAAAAAHQCAAAAAAAAqAIAAAAAAAC0AgAAAAAAALwCAAAAAAAAwAIAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAACAAAAAAAAAAIAAAAAAAAADQAAAAAAAAADAAAAAAAAAAIAAAAAAAAAAQAAAAAAAAA5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAgAAAAAAAAD/////AAAAyAAAAAAAAADIAQAAAAECAAAAAADIAQAAAAICAAAAAADIAAAAAAAAAMgAAAAAAAAAyAEAAAABAQAAAAAAyAEAAAAEBAAAAAAAyAAAAAAAAADIAAAAAAAAAMgBAAAABwgAAAEAAAACAgAAQAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAAAADIAQAAAAICAAAAAADIAAAAAPK4AAAQAAAAAQAAAAIAAAABAAEAAAAAAAAAAAAAAAAACAAAAAgAAAAAAQAAAAAAAAEBAAAAAAAAAgEAAAAAAAADAQAAAAAAAAUBAAAAAAAABgEAAAAAAAAHAQAAAAAAAAACAAAAAAAADwAAAAAAAAAOAAAAAAAAAA0AAAAAAAAADAAAAAAAAAALAAAAAAAAAAoAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAMQBAAAAAAAAEgAAAA0AAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAQBAAAAAAAAAAIAAAAAAAABAgAAAAAAAAICAAAAAAAAAwIAAAAAAAABBAAAAAAAAAABAAAAAAAAAwEAAAAAAAAgAwAAAAAAAMQBAAAAAAAAyAEAAAAAAADMAQAAAAAAANABAAAAAAAA1AEAAAAAAADgAQAAAAAAAOwBAAAAAAAA/AEAAAAAAAAMAgAAAAAAABgCAAAAAAAAJAIAAAAAAAAoAgAAAAAAADwDAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAEAAAAAAAAABQBAAAAAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAAD/////AAAAyAEAAAABAAAAAAAAyAIAAACNJgAAAAAAyAAAAAAAAAAAAAAAAAAAAMgAAAAAAAAAAAAAAAAAAADIAQAAAM8AAAAAAADIAQAAANAAAACVDwAAEAAAAAEAAAACAAAABwAAAAAAAAAAAAAAAAAAABAAAAAKAAAAAAEAAAAAAAABAQAAAAAAAAIBAAAAAAAAAwEAAAAAAAAFAQAAAAAAAAYBAAAAAAAABwEAAAAAAAAAAgAAAAAAAAEDAAAAAAAAAgMAAAAAAAAPAAAAAAAAAA4AAAAAAAAADQAAAAAAAAAMAAAAAAAAAAsAAAAAAAAACgAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACkAAAAAAAAAAYAAAAGAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAAAwAAAAAAAAACAAAAAAAApAAAAAAAAACoAAAAAAAAAKwAAAAAAAAAsAAAAAAAAAC0AAAAAAAAAP//////////BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAA/////wAAAMgAAAAAAAAAAAAAAAAEAAAAAAAAAKwBAAAAAAAAEQAAAAwAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAQBAAAAAAAAAAIAAAAAAAABAgAAAAAAAAICAAAAAAAAAwIAAAAAAAABBAAAAAAAAAABAAAAAAAAAwEAAAAAAACsAQAAAAAAALABAAAAAAAAtAEAAAAAAAC4AQAAAAAAALwBAAAAAAAAxAEAAAAAAADUAQAAAAAAADQCAAAAAAAAbAIAAAAAAAB4AgAAAAAAAIACAAAAAAAAhAIAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAEAAAAAAAAABgAAAAAAAAADgAAAAAAAAADAAAAAAAAAAIAAAAAAAAAAQAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAD/////AAAAyAAAAAAAAADIAgAAAF0vVzDHMgAAAAAAyAEAAAABBSkAAQAAAAUlDQBAAAAANAAAAAAAAAAAAAAAAAAAAAMAAAADAAAABAAAAAYAAAAHAAAAGwAAALMAAAABAQAABwAAgA0AAIADAAAABAAAAAUAAABkAAAAAAAAyAEAAAAAAAEAAQAAAAAADQBAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAGQAAAAAAADIAQAAAAICAgAAAADIAAAAAA65AAAUAAAAAQAAAAIAAAADAAEAAQAAAAAAAAAAAAAAAAAAABAAAAAJAAAAAAEAAAAAAAABAQAAAAAAAAIBAAAAAAAAAwEAAAAAAAAFAQAAAAAAAAYBAAAAAAAABwEAAAAAAAAAAgAAAAAAAAECAAAAAAAADwAAAAAAAAAOAAAAAAAAAA0AAAAAAAAADAAAAAAAAAALAAAAAAAAAAoAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAcAQAAAAAAAAsAAAAJAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAQAAAAAAAP//////////AAEAAAAAAAADAQAAAAAAAAIBAAAAAAAAHAEAAAAAAAAgAQAAAAAAACQBAAAAAAAAKAEAAAAAAAAsAQAAAAAAADQBAAAAAAAAPAEAAAAAAABAAQAAAAAAAGQGAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAABAAAAAAAAAAkBQAAAAAAAKgmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwIAAC8CAAAAAAAA/////wAAAMgAAAAAAAAAyAAAAACeuAAAbAQAAAEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAACAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAcAAAAAAQAAAAAAAAEBAAAAAAAAAgEAAAAAAAADAQAAAAAAAAUBAAAAAAAABgEAAAAAAAAHAQAAAAAAAA8AAAAAAAAADgAAAAAAAAANAAAAAAAAAAwAAAAAAAAACwAAAAAAAAAKAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAMQBAAAAAAAAEgAAABAAAAAAAgAAAAAAAAABAAAAAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAACAQAAAAAAAAICAAAAAAAA9AIAAAAAAIAIAwAAAAAAgBQDAAAAAACAHQMAAAAAAIAoAwAAAAAAgDovAAAAAACARi8AAAAAAIBeMQAAAAAAgMQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAmAAAAAAAAACcAAAAAAAAAAgFAAAAAAAAdAkAAAAAAAAYEAAAAAAAALwWAAAAAAAAhB8AAAAAAADAIQAAAAAAAPwjAAAAAAAAwAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAiAAAAAAAAAAEAAAAAAAAAGwEAAAAAAAAbAQAAAAAAACkBgAAAAAAAKQGAAAAAAAAyAgAAAAAAAA8AgAAAAAAADwCAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAA9AIAAP////8iAAAAQgAAAAMAAAAAAAAAAAAAAAgDAAD/////IgAAAEAAAAADAAAAAAAAABQDAAD/////IgAAAEQAAAADAAAAHQMAAP////8iAAAARAAAAAMAAAAoAwAA/////yIAAABAAAAAAwAAAAAAAAA6LwAA/////yIAAABAAAAAAwAAAMMAAABGLwAA/////yIAAABAAAAAAwAAAAAAAABeMQAA/////yIAAABAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAA/////wAAAMCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAAwC8CAAACAAAAAwMyAzgDQQNQA10DdwNBA3sDgQOJA5IDnQOpA7ADtQO9A8UDzQPXA98D6gPxA/UD/AMDBAoEEwQYBB0EIgQqBDIEPwRIBFIEYARwBHoEiASYBJ0EogSnBKwEsQS4BMIEzATaBN8E4wTqBPEE+AQBBQgFGAUgBSkFMgU3BT8FRwVPBVQFXAVkBWwFdgV+BYYFjwWZBasFvgXRBeQF9wUKBh0GMAY7Bj8GRgZNBlQGWQZhBmkGcQZ7BoMGiwaUBp4GqAazBr4GyQbUBt8G6gb1BgAHBQcNBxUHHQciByoHMgc6B0QHTAdUB10HbAd1B38HigeVB6AHqwe2B8EHzAfXB9wH5AfsB/QH+QcBCAkIEQgbCCMIKwg0CD4IRwhRCFwIZwhyCH0IiAiTCJ4IqQiuCLYIvgjGCMsI0wjbCOMI7Qj1CP0IBgkQCRkJIwkuCTkJRAlPCVoJZQlwCZgEfwmDCYwJkwmXCaAJpAl3A7EJtQnHCcsJ1QniCe0J+gn/CQcKUANdAxEKGwomCjEKPApHClIKXQpoCncKgAqECpUKqQq9CtEK3wrkCvUKCgsiC98KOwtAC0kLVQtiC2cLcAt8C4kLkAubC6kLuAu/C8oL2AvnC+4L+QsHDBYMHAwmDDMMQQxHDFEMXgxsDHIMfAyJDJcMnQynDLQMwgzHDNAM3AzpDO8M9gwBDQ8NJQ0qDTMNOQ1DDVANXg1jDWwNeA2HDZQNmg2kDbENvw3GDdEN3w3uDfMN/A0IDhUOJA4qDjQOQQ5PDlQOXQ5pDnYOhQ6MDpcOpQ60DrkOwg7ODtsO7w71Dv8ODA8aDyEPLA86DyUNTg9TD1wPaA96D4QPkg+bD6cPtA/DD8oP1Q/jD/cPABAPEBYQHBAmEDMQQRBGEE8QWxD6Ce0JdwqACpEQpxC0EMUQzRC0EPkQFBEgESkRORFKEVoRaxGCEZwRuRHTEeYR/hESEiMSNBJPEnAS+RCTEqUSshKTEsUQ2BLNEPUSCBMPECcTMBM5E0ITSxNZE2ITaxN0E30TixOUE50TphOvE70TxhPPE9gT4RPvE/gTARQKFBMUIRQqFDMUPBRFFE4UVxRgFGkUchR7FOIJ5wHiAZUU0QGbFKUUrxS5FMMUzRTXFOEU6xTAAfUUrQEBFQ8VlQGDAX4BpxAdFXcBcAEjFS0VNRU9FWsBRxVPFVcVZwFeFWIBUAFlFUsBSwFDAUABPQE6ATcBNAExAS4BKwEoASUBHgGBA3IVehWCFYoVkhWaFaIVqhUXAREBDQEGAQAB+QDxAOsA2ACyFb4VyhXWFeIV7hX6FQYWEhYeFi4WPhZJFrgAUxayAFoWnQBjFowAaABzFn0WhxaRFpsWpRavFrkWwxaxBDIFOwYAB9cHqQh/CfoJsQTfBDIFTwU7BlQGAAcdB9cH9AepCMYIfwn6CcExyDHUMd4x6DHyMfwxBjIQMhoyIzIpMi8yNTI7MkEyRzJNMlMyWTJfMksBZDIAAAEAAMAuAgAAAgAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4AMQAyADMANAA1ADcAOAA5ADoAOwA8AD0APgA/AEAAQwBEAEUARgBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBcAF0AXgBfAGEAYgBjAGQAZQBmAGcAaABpAGoAawBsAG0AbgBvAHAAcQByAHUAdgB3AHgAegB7AHwAfQB+AH8AgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACPAJAAkQCSAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAoQCiAKMApAClAKYAqQCqAKsArACuAK8AsACxALIAswC0ALUAtgC3ALgAuQC6ALsAvAC9AL4AvwDAAMEAxADFAMYAxwDIAMkAygDLAMwAzQDOAM8A0ADRANIA1QDWANcA2ADZANoA2wDcAN0A3gDfAOAA4QDiAOMA5ADlAOYA5wDoAOkA6gDrAOwA7QDuAO8A8ADxAPIA8wD0APUA9gD3APgA+QD6APsA/AD9AP4A/wAAAQEBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSAdMB1AHVAdYB1wHYAdkB2gHbAdwB3QHeAd8B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wH8Af0B/gH/AQACAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCMABCAFsAdACOAKgAwwDUAC8ANgBBAEcAWgBgAHMAeQCNAJMApwCtAMIA0wAZAhoCGwIcAh0CHgIfAiACIQIiAiMCJAIlAiYCJwIoAikCKgIrAiwCLQIuAi8CAAABAADALwIAAAEAAAAnLS0tLS0uLi8vLy8wMTIyMjIyMjIyMzMzMzM0NTY2NjY2NjY2NjY2Nzg5Ojs8PDw8PT4+Pj4+Pj4+Pj4/Pz8/QEBAQEBAQEBAQEBAQEBAQEBAQUFBQUJCQkJCQkJCQkJCQkJCQkJCQkNDQ0NERERERERERERERERERERERERERUVFRUZGRkZGRkZGRkZGRkZGRkZGRkZHR0dHSEhISEhISEhISEhISEhISEhISElKSkpLS0xMTU5PUFFRUlNUVFRUVFRUVFRUVFRUVFVWV1dXV1dYWFhYWFlaWlpaW1tbW1xcXFxdXV1dXl5eXl9fX19gYGBgYWFhYWJiYmJjY2NjZGVlZWVmZmdnZ2doaGhoaGlpaWlqampqa2tra2tsbGxsbW1tbW1ubm5ub29vb29wcHBwcXFxcXJzc3NzdHV2dnZ2d3d3d3h4eXp6enp7e3t7fH1+f4CBgoODhISEhISEhISEhISEhISEhISEhISEhISEhISEhISFhkBCREZIQEJERkhAQkRGSEBCREZIQEJERkhAQkRGSFRUVFRUVIcrKiopKSkpKSkpKSkpKCgnJyYlJCMjIyIhISEhISAgIB8fHx4dHRwcGxoZGBcWFRQTEhEQEBAQEBAQEBAQDw4NDAsKCQgHBwcHBwcHBwcHBgYFBQQEAwMCAgGIiIiIiIiIiIiIPD9BQ0VHSlQ8Pj9AQUJDREVGR0hKVASIBQUFBQUFBQMaGRgXFhUUExIRIhwpAAEAAAANDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAAEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAMAvAgAAAQAAAB0BHhEjJB4RAR8eEQEBASMkHhEfHSUBHh8dEQEBAR4jJCYRHScoHykBAQEBAQEdHh8BAR4jJBEfHagoJwEdHh8BIyQeER8dqCgnKywtLi8wMTIBHR8eASMkHhEfHagoJyssLS4vMDEyAR0eHwEjJB4RHx2oKDMnKywtLi8wMTIBHR4fASMkHhEfHagoMycrLC0uLzAxMgEdHh8BIyQeER8dqCgzJyssLS4vMDEyAQERHgERAREBAQEBATQBAQEeESMkKCssLS4vMDEyAQEBETU2NwE0ODk6OwE0ODkBNDg5ATQ4OQE0ODkBNDg5ATQ4OQE0ODkBNDg5ATQ4OQE0ODkBATQ4OQE0ATQ4OQE0ODo5ATQ4OQE0ODkBNDg5OgE0ODkBNDg5OgE0ODkBNDg5OgE0ODkBNDg5NAE0ODkBNDQ4OToBNDg5NDoBATQ4OQE0ODk0NDQ0AQEBAR08PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWAEBWVlZWVlaWlpaWltbW1tbXFxcXFxdXV1dXV5eXl5eWVpbXF1eAQEBFQEVFhcYGSIaGxwBEQERAQEBARUWAQERFRYUARESEQEUAQEeHQEBAQEBAQEBAQEBAQEVFhcYGSIaGxwBAQEBAQEBAQEVFhcYGSIaGxwQDw4TAREBEQEdAQEVFhcYGSIaGxyoqKioqKioqHNzc3Nzc3Nzc3Nzc3NzHSoUDaKjpKWmHRISEhISEhISEhIdcx0AAQAAAA4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4AAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQAAwC8CAAAEAAAAOAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAAvAAAALwAAAC8AAAAvAAAAPwAAAD8AAAAvAAAALwAAAC8AAAAvAAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAC8AAAA/AAAAPwAAAD8AAAAvAAAAPwAAAD8AAAA/AAAAPwAAAC8AAAAvAAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAAvAAAAPwAAAD8AAAAvAAAALwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAD8AAAA/AAAAPwAAAC8AAAA/AAAALwAAAC8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAA/AAAAPwAAAC8AAAA/AAAAPwAAAC8AAAAvAAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAALwAAAD8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAD8AAAA/AAAALwAAAD8AAAA/AAAALwAAAC8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAAvAAAAPwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAAPwAAAD8AAAAvAAAAPwAAAD8AAAAvAAAALwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAC8AAAA/AAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA3AAAANwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAAvAAAALwAAAD8AAAAvAAAALwAAAD8AAAA/AAAAPwAAAD8AAAAvAAAAPwAAAC8AAAAvAAAALwAAAD8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAAvAAAALwAAAD8AAAA/AAAAPwAAAC8AAAAvAAAALwAAAD8AAAA/AAAAPwAAAC8AAAAvAAAALwAAAD8AAAA/AAAAPwAAAD8AAAAvAAAAPwAAAD8AAAA/AAAALwAAAD8AAAA/AAAAPwAAAC8AAAA/AAAALwAAAC8AAAA/AAAALwAAAD8AAAAvAAAALwAAAC8AAAA/AAAALwAAAC8AAAA/AAAALwAAAD8AAAAvAAAALwAAAC8AAAA/AAAALwAAAC8AAAA/AAAAPwAAAD8AAAAvAAAALwAAAC8AAAA/AAAALwAAAC8AAAA/AAAALwAAAD8AAAAvAAAALwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAC8AAAA/AAAALwAAAC8AAAA/AAAAPwAAAD8AAAAvAAAAPwAAAC8AAAAvAAAAPwAAAD8AAAA/AAAAPwAAACkAAAApAAAAKQAAACkAAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAAvAAAAJAAAACQAAAAkAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAoAAAAMAAAADAAAAAoAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAAAQAAAAEAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAACcA//8nAP//JwD//ycA//8nAP//JwD//ycA//8nAP//IQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAoAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAACgAAAAkAAAAMAAAAAEAAMAvAgAAAQAAAOwCAgICAnt7AQEBARhZAwMDAwMDAwMEBAQEBCAfBQUFBQUFBQUFBQU2Gl1yKiwsLCx0FxcXFxcXFxcXFwYGBgYHBwcHBwcHBwcHBwcHBwcHBwcICAgICQkJCQkJCQkJCQkJCQkJCQkJCgoKCgsLCwsLCwsLCwsLCwsLCwsLCwsNDQ0NDg4ODg4ODg4ODg4ODg4ODg4ODg8PDw8QEBAQEBAQEBAQEBAQEBAQEBAQMAwMDGZmcHBrK2hhW1tNdomJiYmJiYmJiYmJiYmJjY4ZGRkZGTU1NTU1Tm5ubm5QUFBQeXl5eVZWVlZ3d3d3XFxcXF5eXl45OTk5Ojo6Ojs7OzslZ2dnZ39/WlpaWjg4ODg4VFRUVGBgYGA9PT09PT4+Pj4/Pz8/P0BAQEBBQUFBQXV1dXVEREREJkNDQ0NieEVFRUVGRkZGR0dsPDw8PFhYWFiPc5CRalVpZGRvb29vb29vb29vb29vb29vb29vb29vb29vb29vbxYuBwkLDhAHCQsOEAcJCw4QBwkLDhAHCQsOEAcJCw4QiYmJiYmJfP/8/O7u7u7u7u7u7u7t7ezs687P5+fn6ejo6Ojo5eXl5ubm/dzc6urb0NHS09TV1tfY2f7+/v7+/v7+/v7w4+Hi4OTf3tra2tra2tra2trd3e/vysrLy8zMzcnJycnJycnJycksBggKDQ8MiSwXBgcICQoLDQ4PEAyJysnv7+/v7+/vy9DR0tPU1dbX2Nnp6u4AAQAAwC8CAAABAAAA+wD87hEQ/O4A/vzuAAAAERD87v77HQD8/vvuAAAA/BEQGu77HhT+VAAAAAAAAPv8/gAA/BEQ7v775xQeAPv8/gAREPzu/vvnFB4gISIjJCUmJwD7/vwAERD87v775xQeICEiIyQlJicA+/z+ABEQ/O7+++cUGR4gISIjJCUmJwD7/P4AERD87v775xQZHiAhIiMkJSYnAPv8/gAREPzu/vvnFBkeICEiIyQlJicAAO78AO4A7gAAAAAAFQAAAPzuERAUICEiIyQlJicAAADuOjs8ABUWFwVhABUWFwAVFhcAFRYXABUWFwAVFhcAFRYXABUWFwAVFhcAFRYXABUWFwAAFRYXABUAFRYXABUWBRcAFRYXABUWFwAVFhcFABUWFwAVFhcFABUWFwAVFhcFABUWFwAVFhcVABUWFwAVFRYXBQAVFhcVBQAAFRYXABUWFxUVFRUAAAAA+3+AMH4CAwQSDAsNNhgGMzQ1N0ZMWFJmGxwHCAlQAABZWVlZWVpaWlpaW1tbW1tcXFxcXF1dXV1dXl5eXl5ZWltcXV4AAADyAPLz9PX29/j5+gDuAO4AAAAA8vMAAO7y8/EA7u/uAPEAAPz7AAAAAAAAAAAAAAAAAPLz9PX29/j5+gAAAAAAAAAAAPLz9PX29/j5+u3s6/AA7gDuAPsAAPLz9PX29/j5+ufn5+fn5+fn6Ojo6Ojo6Ojo6Ojo6Oj75vHl5OPi4eD77+/v7+/v7+/v7/vo+wAAAADAAQAAAAgAAAABAAAAAQAAAAAAAAABAAAAPwAAAGdFIwE=