IyBUaGlzIHNldCBvZiB0ZXN0cyBpcyBmb3IgZmVhdHVyZXMgdGhhdCBhcmUgY29tcGF0aWJsZSB3aXRoIGFsbCB2ZXJzaW9ucyBvZgojIFBlcmwgPj0gNS4xMCwgaW4gbm9uLVVURiBtb2RlLiBJdCBzaG91bGQgcnVuIGNsZWFuIGZvciB0aGUgOC1iaXQsIDE2LWJpdCwgYW5kCiMgMzItYml0IFBDUkUgbGlicmFyaWVzLCBhbmQgYWxzbyB1c2luZyB0aGUgcGVybHRlc3Quc2ggc2NyaXB0LgoKIyBXQVJOSU5HOiBVc2Ugb25seSAvIGFzIHRoZSBwYXR0ZXJuIGRlbGltaXRlci4gQWx0aG91Z2ggcGNyZTJ0ZXN0IHN1cHBvcnRzCiMgYSBudW1iZXIgb2YgZGVsaW1pdGVycywgYWxsIHRob3NlIG90aGVyIHRoYW4gLyBnaXZlIHByb2JsZW1zIHdpdGggdGhlCiMgcGVybHRlc3Quc2ggc2NyaXB0LgogICAgCiNmb3JiaWRfdXRmCiNuZXdsaW5lX2RlZmF1bHQgbGYgYW55IGFueWNybGYKI3Blcmx0ZXN0CgovdGhlIHF1aWNrIGJyb3duIGZveC8KICAgIHRoZSBxdWljayBicm93biBmb3gKICAgIFdoYXQgZG8geW91IGtub3cgYWJvdXQgdGhlIHF1aWNrIGJyb3duIGZveD8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBUaGUgcXVpY2sgYnJvd24gRk9YCiAgICBXaGF0IGRvIHlvdSBrbm93IGFib3V0IFRIRSBRVUlDSyBCUk9XTiBGT1g/CgovVGhlIHF1aWNrIGJyb3duIGZveC9pCiAgICB0aGUgcXVpY2sgYnJvd24gZm94CiAgICBUaGUgcXVpY2sgYnJvd24gRk9YCiAgICBXaGF0IGRvIHlvdSBrbm93IGFib3V0IHRoZSBxdWljayBicm93biBmb3g/CiAgICBXaGF0IGRvIHlvdSBrbm93IGFib3V0IFRIRSBRVUlDSyBCUk9XTiBGT1g/CgovYWJjZFx0XG5cclxmXGFcZVwwNzFceDNiXCRcXFw/Y2F4eXovCiAgICBhYmNkXHRcblxyXGZcYVxlOTtcJFxcP2NheHl6CgovYSphYmM/eHl6K3BxcnszfWFiezIsfXh5ezQsNX1wcXswLDZ9QUJ7MCx9enovCiAgICBhYnh5enBxcnJyYWJieHl5eXlwcUF6egogICAgYWJ4eXpwcXJycmFiYnh5eXl5cHFBenoKICAgIGFhYnh5enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFhYnh5enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFhYWJ4eXpwcXJycmFiYnh5eXl5cHFBenoKICAgIGFiY3h5enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFiY3h5enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cEF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cHFBenoKICAgIGFhYWJjeHl6cHFycnJhYmJ4eXl5eXBxcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cHFxcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cHFxcXFBenoKICAgIGFhYWJjeHl6cHFycnJhYmJ4eXl5eXBxcXFxcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cHFxcXFxcUF6egogICAgYWFhYWJjeHl6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICBhYnh5enpwcXJycmFiYnh5eXl5cHFBenoKICAgIGFhYnh5enp6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICBhYWFieHl6enp6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICBhYWFhYnh5enp6enBxcnJyYWJieHl5eXlwcUF6egogICAgYWJjeHl6enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFiY3h5enp6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICBhYWFiY3h5enp6enBxcnJyYWJieHl5eXlwcUF6egogICAgYWFhYWJjeHl6enp6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICBhYWFhYmN4eXp6enpwcXJycmFiYmJ4eXl5eXBxQXp6CiAgICBhYWFhYmN4eXp6enpwcXJycmFiYmJ4eXl5eXlwcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cEFCenoKICAgIGFhYWJjeHl6cHFycnJhYmJ4eXl5eXBBQkJ6egogICAgPj4+YWFhYnh5enBxcnJyYWJieHl5eXlwcUF6egogICAgPmFhYWFieHl6cHFycnJhYmJ4eXl5eXBxQXp6CiAgICA+Pj4+YWJjeHl6cHFycnJhYmJ4eXl5eXBxQXp6Clw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJ4eXpwcXJyYWJieHl5eXlwcUF6egogICAgYWJ4eXpwcXJycnJhYmJ4eXl5eXBxQXp6CiAgICBhYnh5enBxcnJyYWJ4eXl5eXBxQXp6CiAgICBhYWFhYmN4eXp6enpwcXJycmFiYmJ4eXl5eXl5cHFBenoKICAgIGFhYWFiY3h5enp6enBxcnJyYWJiYnh5eXlwcUF6egogICAgYWFhYmN4eXpwcXJycmFiYnh5eXl5cHFxcXFxcXFBenoKCi9eKGFiYyl7MSwyfXp6LwogICAgYWJjenoKICAgIGFiY2FiY3p6Clw9IEV4cGVjdCBubyBtYXRjaAogICAgenoKICAgIGFiY2FiY2FiY3p6CiAgICA+PmFiY3p6CgovXihiKz98YSl7MSwyfT9jLwogICAgYmMKICAgIGJiYwogICAgYmJiYwogICAgYmFjCiAgICBiYmFjCiAgICBhYWMKICAgIGFiYmJiYmJiYmJiYmMKICAgIGJiYmJiYmJiYmJiYWMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWFjCiAgICBhYmJiYmJiYmJiYmJhYwoKL14oYit8YSl7MSwyfWMvCiAgICBiYwogICAgYmJjCiAgICBiYmJjCiAgICBiYWMKICAgIGJiYWMKICAgIGFhYwogICAgYWJiYmJiYmJiYmJiYwogICAgYmJiYmJiYmJiYmJhYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYWMKICAgIGFiYmJiYmJiYmJiYmFjCgovXihiYXxiKil7MSwyfT9iYy8KICAgIGJhYmMKICAgIGJiYWJjCiAgICBiYWJhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBiYWJhYmJjCiAgICBiYWJhYmFiYwoKL15cY2FcY0FcY1s7XGM6LwogICAgXHgwMVx4MDFcZTt6CgovXlthYlxdY2RlXS8KICAgIGF0aGluZwogICAgYnRoaW5nCiAgICBddGhpbmcKICAgIGN0aGluZwogICAgZHRoaW5nCiAgICBldGhpbmcKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBmdGhpbmcKICAgIFt0aGluZwogICAgXFx0aGluZwoKL15bXWNkZV0vCiAgICBddGhpbmcKICAgIGN0aGluZwogICAgZHRoaW5nCiAgICBldGhpbmcKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhdGhpbmcKICAgIGZ0aGluZwoKL15bXmFiXF1jZGVdLwogICAgZnRoaW5nCiAgICBbdGhpbmcKICAgIFxcdGhpbmcKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhdGhpbmcKICAgIGJ0aGluZwogICAgXXRoaW5nCiAgICBjdGhpbmcKICAgIGR0aGluZwogICAgZXRoaW5nCgovXlteXWNkZV0vCiAgICBhdGhpbmcKICAgIGZ0aGluZwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIF10aGluZwogICAgY3RoaW5nCiAgICBkdGhpbmcKICAgIGV0aGluZwoKL15cgS8KICAgIIEKCi9e/y8KICAgIP8KCi9eWzAtOV0rJC8KICAgIDAKICAgIDEKICAgIDIKICAgIDMKICAgIDQKICAgIDUKICAgIDYKICAgIDcKICAgIDgKICAgIDkKICAgIDEwCiAgICAxMDAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmMKCi9eLipudGVyLwogICAgZW50ZXIKICAgIGludGVyCiAgICB1cG9udGVyCgovXnh4eFswLTldKyQvCiAgICB4eHgwCiAgICB4eHgxMjM0Clw9IEV4cGVjdCBubyBtYXRjaAogICAgeHh4CgovXi4rWzAtOV1bMC05XVswLTldJC8KICAgIHgxMjMKICAgIHgxMjM0CiAgICB4eDEyMwogICAgMTIzNDU2Clw9IEV4cGVjdCBubyBtYXRjaAogICAgMTIzCgovXi4rP1swLTldWzAtOV1bMC05XSQvCiAgICB4MTIzCiAgICB4MTIzNAogICAgeHgxMjMKICAgIDEyMzQ1NgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDEyMwoKL14oW14hXSspISguKyk9YXBxdXh6XC5peHJcLnp6elwuYWNcLnVrJC8KICAgIGFiYyFwcXI9YXBxdXh6Lml4ci56enouYWMudWsKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAhcHFyPWFwcXV4ei5peHIuenp6LmFjLnVrCiAgICBhYmMhPWFwcXV4ei5peHIuenp6LmFjLnVrCiAgICBhYmMhcHFyPWFwcXV4ejppeHIuenp6LmFjLnVrCiAgICBhYmMhcHFyPWFwcXV4ei5peHIuenp6LmFjLnVrawoKLzovCiAgICBXZWxsLCB3ZSBuZWVkIGEgY29sb246IHNvbWV3aGVyZQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEZhaWwgd2l0aG91dCBhIGNvbG9uCgovKFtcZGEtZjpdKykkL2kKICAgIDBhYmMKICAgIGFiYwogICAgZmVkCiAgICBFCiAgICA6OgogICAgNWYwMzoxMkMwOjo5MzJlCiAgICBmZWQgZGVmCiAgICBBbnkgb2xkIHN0dWZmClw9IEV4cGVjdCBubyBtYXRjaAogICAgMHp6egogICAgZ3p6egogICAgZmVkXHgyMAogICAgQW55IG9sZCBydWJiaXNoCgovXi4qXC4oXGR7MSwzfSlcLihcZHsxLDN9KVwuKFxkezEsM30pJC8KICAgIC4xLjIuMwogICAgQS4xMi4xMjMuMApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIC4xLjIuMzMzMwogICAgMS4yLjMKICAgIDEyMzQuMi4zCgovXihcZCspXHMrSU5ccytTT0FccysoXFMrKVxzKyhcUyspXHMqXChccyokLwogICAgMSBJTiBTT0Egbm9uLXNwMSBub24tc3AyKAogICAgMSAgICBJTiAgICBTT0EgICAgbm9uLXNwMSAgICBub24tc3AyICAgKApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDFJTiBTT0Egbm9uLXNwMSBub24tc3AyKAoKL15bYS16QS1aXGRdW2EtekEtWlxkXC1dKihcLlthLXpBLVpcZF1bYS16QS16XGRcLV0qKSpcLiQvCiAgICBhLgogICAgWi4KICAgIDIuCiAgICBhYi1jLnBxLXIuCiAgICBzeGsuenp6LmFjLnVrLgogICAgeC0ueS0uClw9IEV4cGVjdCBubyBtYXRjaAogICAgLWFiYy5wZXEuCgovXlwqXC5bYS16XShbYS16XC1cZF0qW2EtelxkXSspPyhcLlthLXpdKFthLXpcLVxkXSpbYS16XGRdKyk/KSokLwogICAgKi5hCiAgICAqLmIwLWEKICAgICouYzMtYi5jCiAgICAqLmMtYS5iLWMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAqLjAKICAgICouYS0KICAgICouYS1iLmMtCiAgICAqLmMtYS4wLWMKCi9eKD89YWIoZGUpKShhYmQpKGUpLwogICAgYWJkZQoKL14oPyEoYWIpZGV8eCkoYWJkKShmKS8KICAgIGFiZGYKCi9eKD89KGFiKGNkKSkpKGFiKS8KICAgIGFiY2QKCi9eW1xkYS1mXShcLltcZGEtZl0pKiQvaQogICAgYS5iLmMuZAogICAgQS5CLkMuRAogICAgYS5iLmMuMS4yLjMuQwoKL15cIi4qXCJccyooOy4qKT8kLwogICAgXCIxMjM0XCIKICAgIFwiYWJjZFwiIDsKICAgIFwiXCIgOyByaHViYXJiClw9IEV4cGVjdCBubyBtYXRjaAogICAgXCIxMjM0XCIgOiB0aGluZ3MKCi9eJC8KICAgIFwKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBIG5vbi1lbXB0eSBsaW5lCgovICAgXiAgICBhICAgKD8jIGJlZ2lucyB3aXRoIGEpICBiXHNjICg/IyB0aGVuIGIgYykgJCAoPyMgdGhlbiBlbmQpL3gKICAgIGFiIGMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmMKICAgIGFiIGNkZQoKLyg/eCkgICBeICAgIGEgICAoPyMgYmVnaW5zIHdpdGggYSkgIGJcc2MgKD8jIHRoZW4gYiBjKSAkICg/IyB0aGVuIGVuZCkvCiAgICBhYiBjClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjCiAgICBhYiBjZGUKCi9eICAgYVwgYltjIF1kICAgICAgICQveAogICAgYSBiY2QKICAgIGEgYiBkClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjZAogICAgYWIgZAoKL14oYShiKGMpKSkoZChlKGYpKSkoaChpKGopKSkoayhsKG0pKSkkLwogICAgYWJjZGVmaGlqa2xtCgovXig/OmEoYihjKSkpKD86ZChlKGYpKSkoPzpoKGkoaikpKSg/OmsobChtKSkpJC8KICAgIGFiY2RlZmhpamtsbQoKL15bXHddW1xXXVtcc11bXFNdW1xkXVtcRF1bXGJdW1xuXVtcY11dW1wwMjJdLwogICAgYSsgWjArXHgwOFxuXHgxZFx4MTIKCi9eWy5eJHwoKSorP3ssfV0rLwogICAgLl5cJCgqKyl8ez8sP30KCi9eYSpcdy8KICAgIHoKICAgIGF6CiAgICBhYWF6CiAgICBhCiAgICBhYQogICAgYWFhYQogICAgYSsKICAgIGFhKwoKL15hKj9cdy8KICAgIHoKICAgIGF6CiAgICBhYWF6CiAgICBhCiAgICBhYQogICAgYWFhYQogICAgYSsKICAgIGFhKwoKL15hK1x3LwogICAgYXoKICAgIGFhYXoKICAgIGFhCiAgICBhYWFhCiAgICBhYSsKCi9eYSs/XHcvCiAgICBhegogICAgYWFhegogICAgYWEKICAgIGFhYWEKICAgIGFhKwoKL15cZHs4fVx3ezIsfS8KICAgIDEyMzQ1Njc4OTAKICAgIDEyMzQ1Njc4YWIKICAgIDEyMzQ1Njc4X18KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxMjM0NTY3CgovXlthZWlvdVxkXXs0LDV9JC8KICAgIHVvaWUKICAgIDEyMzQKICAgIDEyMzQ1CiAgICBhYWFhYQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDEyMzQ1NgoKL15bYWVpb3VcZF17NCw1fT8vCiAgICB1b2llCiAgICAxMjM0CiAgICAxMjM0NQogICAgYWFhYWEKICAgIDEyMzQ1NgoKL1xBKGFiY3xkZWYpPShcMSl7MiwzfVxaLwogICAgYWJjPWFiY2FiYwogICAgZGVmPWRlZmRlZmRlZgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiYz1kZWZkZWYKCi9eKGEpKGIpKGMpKGQpKGUpKGYpKGcpKGgpKGkpKGopKGspXDExKihcM1w0KVwxKD8jKTIkLwogICAgYWJjZGVmZ2hpamtjZGEyCiAgICBhYmNkZWZnaGlqa2tra2NkYTIKCi8oY2F0KGEocmFjdHx0b25pYyl8ZXJwaWxsYXIpKSBcMSgpMigzKS8KICAgIGNhdGFyYWN0IGNhdGFyYWN0MjMKICAgIGNhdGF0b25pYyBjYXRhdG9uaWMyMwogICAgY2F0ZXJwaWxsYXIgY2F0ZXJwaWxsYXIyMwoKCi9eRnJvbSArKFteIF0rKSArW2EtekEtWl1bYS16QS1aXVthLXpBLVpdICtbYS16QS1aXVthLXpBLVpdW2EtekEtWl0gK1swLTldP1swLTldICtbMC05XVswLTldOlswLTldWzAtOV0vCiAgICBGcm9tIGFiY2QgIE1vbiBTZXAgMDEgMTI6MzM6MDIgMTk5NwoKL15Gcm9tXHMrXFMrXHMrKFthLXpBLVpdezN9XHMrKXsyfVxkezEsMn1ccytcZFxkOlxkXGQvCiAgICBGcm9tIGFiY2QgIE1vbiBTZXAgMDEgMTI6MzM6MDIgMTk5NwogICAgRnJvbSBhYmNkICBNb24gU2VwICAxIDEyOjMzOjAyIDE5OTcKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBGcm9tIGFiY2QgIFNlcCAwMSAxMjozMzowMiAxOTk3CgovXjEyLjM0L3MKICAgIDEyXG4zNAogICAgMTJccjM0CgovXHcrKD89XHQpLwogICAgdGhlIHF1aWNrIGJyb3duXHQgZm94CgovZm9vKD8hYmFyKSguKikvCiAgICBmb29iYXIgaXMgZm9vbGlzaCBzZWU/CgovKD86KD8hZm9vKS4uLnxeLnswLDJ9KWJhciguKikvCiAgICBmb29iYXIgY3Jvd2JhciBldGMKICAgIGJhcnJlbAogICAgMmJhcnJlbAogICAgQSBiYXJyZWwKCi9eKFxEKikoPz1cZCkoPyExMjMpLwogICAgYWJjNDU2Clw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjMTIzCgovXjEyMzQoPyMgdGVzdCBuZXdsaW5lcwogIGluc2lkZSkvCiAgICAxMjM0CgovXjEyMzQgI2NvbW1lbnQgaW4gZXh0ZW5kZWQgcmUKICAveAogICAgMTIzNAoKLyNyaHViYXJiCiAgYWJjZC94CiAgICBhYmNkCgovXmFiY2Qjcmh1YmFyYi94CiAgICBhYmNkCgovXihhKVwxezIsM30oLikvCiAgICBhYWFiCiAgICBhYWFhYgogICAgYWFhYWFiCiAgICBhYWFhYWFiCgovKD8hXilhYmMvCiAgICB0aGUgYWJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjCgovKD89XilhYmMvCiAgICBhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICB0aGUgYWJjCgovXlthYl17MSwzfShhYip8YikvCiAgICBhYWJiYmJiCgovXlthYl17MSwzfT8oYWIqfGIpLwogICAgYWFiYmJiYgoKL15bYWJdezEsM30/KGFiKj98YikvCiAgICBhYWJiYmJiCgovXlthYl17MSwzfShhYio/fGIpLwogICAgYWFiYmJiYgoKLyAgKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCBsZWFkaW5nIGNvbW1lbnQKKD86ICAgICg/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwKIiAoPzogICAgICAgICAgICAgICAgICAgICAgIyBvcGVuaW5nIHF1b3RlLi4uClteXFxceDgwLVx4ZmZcblwwMTUiXSAgICAgICAgICAgICAgICAjICAgQW55dGhpbmcgZXhjZXB0IGJhY2tzbGFzaCBhbmQgcXVvdGUKfCAgICAgICAgICAgICAgICAgICAgICMgICAgb3IKXFwgW15ceDgwLVx4ZmZdICAgICAgICAgICAjICAgRXNjYXBlZCBzb21ldGhpbmcgKHNvbWV0aGluZyAhPSBDUikKKSogIiAgIyBjbG9zaW5nIHF1b3RlCikgICAgICAgICAgICAgICAgICAgICMgaW5pdGlhbCB3b3JkCig/OiAgKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgXC4gICg/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogICAoPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8CiIgKD86ICAgICAgICAgICAgICAgICAgICAgICMgb3BlbmluZyBxdW90ZS4uLgpbXlxcXHg4MC1ceGZmXG5cMDE1Il0gICAgICAgICAgICAgICAgIyAgIEFueXRoaW5nIGV4Y2VwdCBiYWNrc2xhc2ggYW5kIHF1b3RlCnwgICAgICAgICAgICAgICAgICAgICAjICAgIG9yClxcIFteXHg4MC1ceGZmXSAgICAgICAgICAgIyAgIEVzY2FwZWQgc29tZXRoaW5nIChzb21ldGhpbmcgIT0gQ1IpCikqICIgICMgY2xvc2luZyBxdW90ZQopICApKiAjIGZ1cnRoZXIgb2theSwgaWYgbGVkIGJ5IGEgcGVyaW9kCig/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogIEAgICg/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogICAgKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfCAgIFxbICAgICAgICAgICAgICAgICAgICAgICAgICMgWwooPzogW15cXFx4ODAtXHhmZlxuXDAxNVxbXF1dIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogICAgIyAgICBzdHVmZgpcXSAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgIF0KKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaW5pdGlhbCBzdWJkb21haW4KKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgXC4gICAgICAgICAgICAgICAgICAgICAgICAjIGlmIGxlZCBieSBhIHBlcmlvZC4uLgooPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICAgKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfCAgIFxbICAgICAgICAgICAgICAgICAgICAgICAgICMgWwooPzogW15cXFx4ODAtXHhmZlxuXDAxNVxbXF1dIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogICAgIyAgICBzdHVmZgpcXSAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgIF0KKSAgICAgICAgICAgICAgICAgICAgICMgICAuLi5mdXJ0aGVyIG9rYXkKKSoKIyBhZGRyZXNzCnwgICAgICAgICAgICAgICAgICAgICAjICBvcgooPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8CiIgKD86ICAgICAgICAgICAgICAgICAgICAgICMgb3BlbmluZyBxdW90ZS4uLgpbXlxcXHg4MC1ceGZmXG5cMDE1Il0gICAgICAgICAgICAgICAgIyAgIEFueXRoaW5nIGV4Y2VwdCBiYWNrc2xhc2ggYW5kIHF1b3RlCnwgICAgICAgICAgICAgICAgICAgICAjICAgIG9yClxcIFteXHg4MC1ceGZmXSAgICAgICAgICAgIyAgIEVzY2FwZWQgc29tZXRoaW5nIChzb21ldGhpbmcgIT0gQ1IpCikqICIgICMgY2xvc2luZyBxdW90ZQopICAgICAgICAgICAgICMgb25lIHdvcmQsIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkuLi4uCig/OgpbXigpPD5ALDs6Ii5cXFxbXF1ceDgwLVx4ZmZcMDAwLVwwMTBcMDEyLVwwMzddICB8ICAjIGF0b20gYW5kIHNwYWNlIHBhcnRzLCBvci4uLgpcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgICAgICB8ICAjIGNvbW1lbnRzLCBvci4uLgoKIiAoPzogICAgICAgICAgICAgICAgICAgICAgIyBvcGVuaW5nIHF1b3RlLi4uClteXFxceDgwLVx4ZmZcblwwMTUiXSAgICAgICAgICAgICAgICAjICAgQW55dGhpbmcgZXhjZXB0IGJhY2tzbGFzaCBhbmQgcXVvdGUKfCAgICAgICAgICAgICAgICAgICAgICMgICAgb3IKXFwgW15ceDgwLVx4ZmZdICAgICAgICAgICAjICAgRXNjYXBlZCBzb21ldGhpbmcgKHNvbWV0aGluZyAhPSBDUikKKSogIiAgIyBjbG9zaW5nIHF1b3RlCiMgcXVvdGVkIHN0cmluZ3MKKSoKPCAgKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgICAgICAgICAgICAgICAgICAgICMgbGVhZGluZyA8Cig/OiAgQCAgKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgICAoPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8ICAgXFsgICAgICAgICAgICAgICAgICAgICAgICAgIyBbCig/OiBbXlxcXHg4MC1ceGZmXG5cMDE1XFtcXV0gfCAgXFwgW15ceDgwLVx4ZmZdICApKiAgICAjICAgIHN0dWZmClxdICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgXQopICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbml0aWFsIHN1YmRvbWFpbgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwooPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICBcLiAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgbGVkIGJ5IGEgcGVyaW9kLi4uCig/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogICAoPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8ICAgXFsgICAgICAgICAgICAgICAgICAgICAgICAgIyBbCig/OiBbXlxcXHg4MC1ceGZmXG5cMDE1XFtcXV0gfCAgXFwgW15ceDgwLVx4ZmZdICApKiAgICAjICAgIHN0dWZmClxdICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgXQopICAgICAgICAgICAgICAgICAgICAgIyAgIC4uLmZ1cnRoZXIgb2theQopKgoKKD86ICAoPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICAsICAoPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICBAICAoPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICAgICg/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwgICBcWyAgICAgICAgICAgICAgICAgICAgICAgICAjIFsKKD86IFteXFxceDgwLVx4ZmZcblwwMTVcW1xdXSB8ICBcXCBbXlx4ODAtXHhmZl0gICkqICAgICMgICAgc3R1ZmYKXF0gICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBdCikgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGluaXRpYWwgc3ViZG9tYWluCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCig/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogIFwuICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiBsZWQgYnkgYSBwZXJpb2QuLi4KKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgICg/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwgICBcWyAgICAgICAgICAgICAgICAgICAgICAgICAjIFsKKD86IFteXFxceDgwLVx4ZmZcblwwMTVcW1xdXSB8ICBcXCBbXlx4ODAtXHhmZl0gICkqICAgICMgICAgc3R1ZmYKXF0gICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBdCikgICAgICAgICAgICAgICAgICAgICAjICAgLi4uZnVydGhlciBva2F5CikqCikqICMgZnVydGhlciBva2F5LCBpZiBsZWQgYnkgY29tbWEKOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjbG9zaW5nIGNvbG9uCig/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogICk/ICMgICAgICAgb3B0aW9uYWwgcm91dGUKKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfAoiICg/OiAgICAgICAgICAgICAgICAgICAgICAjIG9wZW5pbmcgcXVvdGUuLi4KW15cXFx4ODAtXHhmZlxuXDAxNSJdICAgICAgICAgICAgICAgICMgICBBbnl0aGluZyBleGNlcHQgYmFja3NsYXNoIGFuZCBxdW90ZQp8ICAgICAgICAgICAgICAgICAgICAgIyAgICBvcgpcXCBbXlx4ODAtXHhmZl0gICAgICAgICAgICMgICBFc2NhcGVkIHNvbWV0aGluZyAoc29tZXRoaW5nICE9IENSKQopKiAiICAjIGNsb3NpbmcgcXVvdGUKKSAgICAgICAgICAgICAgICAgICAgIyBpbml0aWFsIHdvcmQKKD86ICAoPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICBcLiAgKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgICg/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwKIiAoPzogICAgICAgICAgICAgICAgICAgICAgIyBvcGVuaW5nIHF1b3RlLi4uClteXFxceDgwLVx4ZmZcblwwMTUiXSAgICAgICAgICAgICAgICAjICAgQW55dGhpbmcgZXhjZXB0IGJhY2tzbGFzaCBhbmQgcXVvdGUKfCAgICAgICAgICAgICAgICAgICAgICMgICAgb3IKXFwgW15ceDgwLVx4ZmZdICAgICAgICAgICAjICAgRXNjYXBlZCBzb21ldGhpbmcgKHNvbWV0aGluZyAhPSBDUikKKSogIiAgIyBjbG9zaW5nIHF1b3RlCikgICkqICMgZnVydGhlciBva2F5LCBpZiBsZWQgYnkgYSBwZXJpb2QKKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgQCAgKD86IFtcMDQwXHRdIHwgIFwoCig/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICB8ICBcKCAoPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgKSogXCkgICkqClwpICApKiAgICAoPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8ICAgXFsgICAgICAgICAgICAgICAgICAgICAgICAgIyBbCig/OiBbXlxcXHg4MC1ceGZmXG5cMDE1XFtcXV0gfCAgXFwgW15ceDgwLVx4ZmZdICApKiAgICAjICAgIHN0dWZmClxdICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgXQopICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbml0aWFsIHN1YmRvbWFpbgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwooPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICBcLiAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgbGVkIGJ5IGEgcGVyaW9kLi4uCig/OiBbXDA0MFx0XSB8ICBcKAooPzogIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gIHwgIFxcIFteXHg4MC1ceGZmXSAgfCAgXCggKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gICkqIFwpICApKgpcKSAgKSogICAoPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQp8ICAgXFsgICAgICAgICAgICAgICAgICAgICAgICAgIyBbCig/OiBbXlxcXHg4MC1ceGZmXG5cMDE1XFtcXV0gfCAgXFwgW15ceDgwLVx4ZmZdICApKiAgICAjICAgIHN0dWZmClxdICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgXQopICAgICAgICAgICAgICAgICAgICAgIyAgIC4uLmZ1cnRoZXIgb2theQopKgojICAgICAgIGFkZHJlc3Mgc3BlYwooPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICA+ICMgICAgICAgICAgICAgICAgICB0cmFpbGluZyA+CiMgbmFtZSBhbmQgYWRkcmVzcwopICAoPzogW1wwNDBcdF0gfCAgXCgKKD86ICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICB8ICBcXCBbXlx4ODAtXHhmZl0gIHwgIFwoICg/OiAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAgfCAgXFwgW15ceDgwLVx4ZmZdICApKiBcKSAgKSoKXCkgICkqICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIHRyYWlsaW5nIGNvbW1lbnQKL3gKICAgIEFsYW4gT3RoZXIgPHVzZXJcQGRvbS5haW4+CiAgICA8dXNlclxAZG9tLmFpbj4KICAgIHVzZXJcQGRvbS5haW4KICAgIFwiQS4gT3RoZXJcIiA8dXNlci4xMjM0XEBkb20uYWluPiAoYSBjb21tZW50KQogICAgQS4gT3RoZXIgPHVzZXIuMTIzNFxAZG9tLmFpbj4gKGEgY29tbWVudCkKICAgIFwiL3M9dXNlci9vdT1ob3N0L289cGxhY2UvcHJtZD11dS55eS9hZG1kPSAvYz1nYi9cIlxAeDQwMC1yZS5sYXkKICAgIEEgbWlzc2luZyBhbmdsZSA8dXNlclxAc29tZS53aGVyZQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIFRoZSBxdWljayBicm93biBmb3gKCi9bXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgojIG9wdGlvbmFsIGxlYWRpbmcgY29tbWVudAooPzoKKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KIyBBdG9tCnwgICAgICAgICAgICAgICAgICAgICAgICMgIG9yCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAiClteXFxceDgwLVx4ZmZcblwwMTUiXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICBub3JtYWwKKD86ICBcXCBbXlx4ODAtXHhmZl0gIFteXFxceDgwLVx4ZmZcblwwMTUiXSAqICkqICAgICAgICAjICAgKCBzcGVjaWFsIG5vcm1hbCogKSoKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAiCiMgUXVvdGVkIHN0cmluZwopCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCig/OgpcLgpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgooPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQojIEF0b20KfCAgICAgICAgICAgICAgICAgICAgICAgIyAgb3IKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICIKW15cXFx4ODAtXHhmZlxuXDAxNSJdICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgIG5vcm1hbAooPzogIFxcIFteXHg4MC1ceGZmXSAgW15cXFx4ODAtXHhmZlxuXDAxNSJdICogKSogICAgICAgICMgICAoIHNwZWNpYWwgbm9ybWFsKiApKgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICIKIyBRdW90ZWQgc3RyaW5nCikKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KIyBhZGRpdGlvbmFsIHdvcmRzCikqCkAKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfApcWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFsKKD86IFteXFxceDgwLVx4ZmZcblwwMTVcW1xdXSB8ICBcXCBbXlx4ODAtXHhmZl0gICkqICAgICAjICAgIHN0dWZmClxdICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgXQopCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCiMgb3B0aW9uYWwgdHJhaWxpbmcgY29tbWVudHMKKD86ClwuCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCig/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwKXFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBbCig/OiBbXlxcXHg4MC1ceGZmXG5cMDE1XFtcXV0gfCAgXFwgW15ceDgwLVx4ZmZdICApKiAgICAgIyAgICBzdHVmZgpcXSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgIF0KKQpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgojIG9wdGlvbmFsIHRyYWlsaW5nIGNvbW1lbnRzCikqCiMgYWRkcmVzcwp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICBvcgooPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQojIEF0b20KfCAgICAgICAgICAgICAgICAgICAgICAgIyAgb3IKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICIKW15cXFx4ODAtXHhmZlxuXDAxNSJdICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgIG5vcm1hbAooPzogIFxcIFteXHg4MC1ceGZmXSAgW15cXFx4ODAtXHhmZlxuXDAxNSJdICogKSogICAgICAgICMgICAoIHNwZWNpYWwgbm9ybWFsKiApKgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICIKIyBRdW90ZWQgc3RyaW5nCikKIyBsZWFkaW5nIHdvcmQKW14oKTw+QCw7OiIuXFxcW1xdXHg4MC1ceGZmXDAwMC1cMDEwXDAxMi1cMDM3XSAqICAgICAgICAgICAgICAgIyAibm9ybWFsIiBhdG9tcyBhbmQgb3Igc3BhY2VzCig/OgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQp8CiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAiClteXFxceDgwLVx4ZmZcblwwMTUiXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICBub3JtYWwKKD86ICBcXCBbXlx4ODAtXHhmZl0gIFteXFxceDgwLVx4ZmZcblwwMTUiXSAqICkqICAgICAgICAjICAgKCBzcGVjaWFsIG5vcm1hbCogKSoKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAiCikgIyAic3BlY2lhbCIgY29tbWVudCBvciBxdW90ZWQgc3RyaW5nClteKCk8PkAsOzoiLlxcXFtcXVx4ODAtXHhmZlwwMDAtXDAxMFwwMTItXDAzN10gKiAgICAgICAgICAgICMgIG1vcmUgIm5vcm1hbCIKKSoKPApbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgojIDwKKD86CkAKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfApcWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFsKKD86IFteXFxceDgwLVx4ZmZcblwwMTVcW1xdXSB8ICBcXCBbXlx4ODAtXHhmZl0gICkqICAgICAjICAgIHN0dWZmClxdICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgXQopCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCiMgb3B0aW9uYWwgdHJhaWxpbmcgY29tbWVudHMKKD86ClwuCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCig/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwKXFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBbCig/OiBbXlxcXHg4MC1ceGZmXG5cMDE1XFtcXV0gfCAgXFwgW15ceDgwLVx4ZmZdICApKiAgICAgIyAgICBzdHVmZgpcXSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgIF0KKQpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgojIG9wdGlvbmFsIHRyYWlsaW5nIGNvbW1lbnRzCikqCig/OiAsCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCkAKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfApcWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFsKKD86IFteXFxceDgwLVx4ZmZcblwwMTVcW1xdXSB8ICBcXCBbXlx4ODAtXHhmZl0gICkqICAgICAjICAgIHN0dWZmClxdICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgXQopCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCiMgb3B0aW9uYWwgdHJhaWxpbmcgY29tbWVudHMKKD86ClwuCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCig/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwKXFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBbCig/OiBbXlxcXHg4MC1ceGZmXG5cMDE1XFtcXV0gfCAgXFwgW15ceDgwLVx4ZmZdICApKiAgICAgIyAgICBzdHVmZgpcXSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgIF0KKQpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgojIG9wdGlvbmFsIHRyYWlsaW5nIGNvbW1lbnRzCikqCikqICAjIGFkZGl0aW9uYWwgZG9tYWlucwo6CltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCiMgb3B0aW9uYWwgdHJhaWxpbmcgY29tbWVudHMKKT8gICAgICMgICAgICAgb3B0aW9uYWwgcm91dGUKKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KIyBBdG9tCnwgICAgICAgICAgICAgICAgICAgICAgICMgIG9yCiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAiClteXFxceDgwLVx4ZmZcblwwMTUiXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICBub3JtYWwKKD86ICBcXCBbXlx4ODAtXHhmZl0gIFteXFxceDgwLVx4ZmZcblwwMTUiXSAqICkqICAgICAgICAjICAgKCBzcGVjaWFsIG5vcm1hbCogKSoKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAiCiMgUXVvdGVkIHN0cmluZwopCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCig/OgpcLgpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgooPzoKW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0rICAgICMgc29tZSBudW1iZXIgb2YgYXRvbSBjaGFyYWN0ZXJzLi4uCig/IVteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKSAjIC4ubm90IGZvbGxvd2VkIGJ5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHBhcnQgb2YgYW4gYXRvbQojIEF0b20KfCAgICAgICAgICAgICAgICAgICAgICAgIyAgb3IKIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICIKW15cXFx4ODAtXHhmZlxuXDAxNSJdICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgIG5vcm1hbAooPzogIFxcIFteXHg4MC1ceGZmXSAgW15cXFx4ODAtXHhmZlxuXDAxNSJdICogKSogICAgICAgICMgICAoIHNwZWNpYWwgbm9ybWFsKiApKgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICIKIyBRdW90ZWQgc3RyaW5nCikKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KIyBhZGRpdGlvbmFsIHdvcmRzCikqCkAKW1wwNDBcdF0qICAgICAgICAgICAgICAgICAgICAjIE5hYiB3aGl0ZXNwYWNlLgooPzoKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICgKKD86ICBcXCBbXlx4ODAtXHhmZl0gIHwKXCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgbm9ybWFsKgooPzogIFxcIFteXHg4MC1ceGZmXSAgIFteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiApKiAgICAgICAgIyAgICAgKHNwZWNpYWwgbm9ybWFsKikqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgKQopICAgICMgICAgICAgICBzcGVjaWFsClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgbm9ybWFsKgopKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgKQpbXDA0MFx0XSogKSogICAgIyBJZiBjb21tZW50IGZvdW5kLCBhbGxvdyBtb3JlIHNwYWNlcy4KKD86ClteKFwwNDApPD5ALDs6Ii5cXFxbXF1cMDAwLVwwMzdceDgwLVx4ZmZdKyAgICAjIHNvbWUgbnVtYmVyIG9mIGF0b20gY2hhcmFjdGVycy4uLgooPyFbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSkgIyAuLm5vdCBmb2xsb3dlZCBieSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBwYXJ0IG9mIGFuIGF0b20KfApcWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFsKKD86IFteXFxceDgwLVx4ZmZcblwwMTVcW1xdXSB8ICBcXCBbXlx4ODAtXHhmZl0gICkqICAgICAjICAgIHN0dWZmClxdICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgXQopCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCiMgb3B0aW9uYWwgdHJhaWxpbmcgY29tbWVudHMKKD86ClwuCltcMDQwXHRdKiAgICAgICAgICAgICAgICAgICAgIyBOYWIgd2hpdGVzcGFjZS4KKD86ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgKApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAoCig/OiAgXFwgW15ceDgwLVx4ZmZdICB8ClwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG5vcm1hbCoKKD86ICBcXCBbXlx4ODAtXHhmZl0gICBbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogKSogICAgICAgICMgICAgIChzcGVjaWFsIG5vcm1hbCopKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICkKKSAgICAjICAgICAgICAgc3BlY2lhbApbXlxcXHg4MC1ceGZmXG5cMDE1KCldICogICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIG5vcm1hbCoKKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICkqClwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICkKW1wwNDBcdF0qICkqICAgICMgSWYgY29tbWVudCBmb3VuZCwgYWxsb3cgbW9yZSBzcGFjZXMuCig/OgpbXihcMDQwKTw+QCw7OiIuXFxcW1xdXDAwMC1cMDM3XHg4MC1ceGZmXSsgICAgIyBzb21lIG51bWJlciBvZiBhdG9tIGNoYXJhY3RlcnMuLi4KKD8hW14oXDA0MCk8PkAsOzoiLlxcXFtcXVwwMDAtXDAzN1x4ODAtXHhmZl0pICMgLi5ub3QgZm9sbG93ZWQgYnkgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgcGFydCBvZiBhbiBhdG9tCnwKXFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBbCig/OiBbXlxcXHg4MC1ceGZmXG5cMDE1XFtcXV0gfCAgXFwgW15ceDgwLVx4ZmZdICApKiAgICAgIyAgICBzdHVmZgpcXSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgIF0KKQpbXDA0MFx0XSogICAgICAgICAgICAgICAgICAgICMgTmFiIHdoaXRlc3BhY2UuCig/OgpcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICgKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgKAooPzogIFxcIFteXHg4MC1ceGZmXSAgfApcKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAoClteXFxceDgwLVx4ZmZcblwwMTUoKV0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBub3JtYWwqCig/OiAgXFwgW15ceDgwLVx4ZmZdICAgW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICkqICAgICAgICAjICAgICAoc3BlY2lhbCBub3JtYWwqKSoKXCkgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICApCikgICAgIyAgICAgICAgIHNwZWNpYWwKW15cXFx4ODAtXHhmZlxuXDAxNSgpXSAqICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICBub3JtYWwqCikqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICApKgpcKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICApCltcMDQwXHRdKiApKiAgICAjIElmIGNvbW1lbnQgZm91bmQsIGFsbG93IG1vcmUgc3BhY2VzLgojIG9wdGlvbmFsIHRyYWlsaW5nIGNvbW1lbnRzCikqCiMgICAgICAgYWRkcmVzcyBzcGVjCj4gICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgID4KIyBuYW1lIGFuZCBhZGRyZXNzCikKL3gKICAgIEFsYW4gT3RoZXIgPHVzZXJcQGRvbS5haW4+CiAgICA8dXNlclxAZG9tLmFpbj4KICAgIHVzZXJcQGRvbS5haW4KICAgIFwiQS4gT3RoZXJcIiA8dXNlci4xMjM0XEBkb20uYWluPiAoYSBjb21tZW50KQogICAgQS4gT3RoZXIgPHVzZXIuMTIzNFxAZG9tLmFpbj4gKGEgY29tbWVudCkKICAgIFwiL3M9dXNlci9vdT1ob3N0L289cGxhY2UvcHJtZD11dS55eS9hZG1kPSAvYz1nYi9cIlxAeDQwMC1yZS5sYXkKICAgIEEgbWlzc2luZyBhbmdsZSA8dXNlclxAc29tZS53aGVyZQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIFRoZSBxdWljayBicm93biBmb3gKCi9hYmNcMGRlZlwwMHBxclwwMDB4eXpcMDAwMEFCLwogICAgYWJjXDBkZWZcMDBwcXJcMDAweHl6XDAwMDBBQgogICAgYWJjNDU2IGFiY1wwZGVmXDAwcHFyXDAwMHh5elwwMDAwQUJDREUKCi9hYmNceDBkZWZceDAwcHFyXHgwMDB4eXpceDAwMDBBQi8KICAgIGFiY1x4MGRlZlx4MDBwcXJceDAwMHh5elx4MDAwMEFCCiAgICBhYmM0NTYgYWJjXHgwZGVmXHgwMHBxclx4MDAweHl6XHgwMDAwQUJDREUKCi9eW1wwMDAtXDAzN10vCiAgICBcMEEKICAgIFwwMUIKICAgIFwwMzdDCgovXDAqLwogICAgXDBcMFwwXDAKCi9BXHgwezIsM31aLwogICAgVGhlIEFceDBceDBaCiAgICBBbiBBXDBceDBcMFoKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBXDBaCiAgICBBXDBceDBcMFx4MFoKCi9eKGNvd3wpXDEoYmVsbCkvCiAgICBjb3djb3diZWxsCiAgICBiZWxsClw9IEV4cGVjdCBubyBtYXRjaAogICAgY293YmVsbAoKL15ccy8KICAgIFwwNDBhYmMKICAgIFx4MGNhYmMKICAgIFxuYWJjCiAgICBccmFiYwogICAgXHRhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmMKCi9eYQliCiAgICAMICBjL3gKICAgIGFiYwoKL14oYXwpXDEqYi8KICAgIGFiCiAgICBhYWFhYgogICAgYgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFjYgoKL14oYXwpXDErYi8KICAgIGFhYgogICAgYWFhYWIKICAgIGIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYgoKL14oYXwpXDE/Yi8KICAgIGFiCiAgICBhYWIKICAgIGIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhY2IKCi9eKGF8KVwxezJ9Yi8KICAgIGFhYWIKICAgIGIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYgogICAgYWFiCiAgICBhYWFhYgoKL14oYXwpXDF7MiwzfWIvCiAgICBhYWFiCiAgICBhYWFhYgogICAgYgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiCiAgICBhYWIKICAgIGFhYWFhYgoKL2FiezEsM31iYy8KICAgIGFiYmJiYwogICAgYWJiYmMKICAgIGFiYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmMKICAgIGFiYmJiYmMKCi8oW14uXSopXC4oW146XSopOltUIF0rKC4qKS8KICAgIHRyYWNrMS50aXRsZTpUQmxhaCBibGFoIGJsYWgKCi8oW14uXSopXC4oW146XSopOltUIF0rKC4qKS9pCiAgICB0cmFjazEudGl0bGU6VEJsYWggYmxhaCBibGFoCgovKFteLl0qKVwuKFteOl0qKTpbdCBdKyguKikvaQogICAgdHJhY2sxLnRpdGxlOlRCbGFoIGJsYWggYmxhaAoKL15bVy1jXSskLwogICAgV1hZX15hYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICB3eHkKCi9eW1ctY10rJC9pCiAgICBXWFlfXmFiYwogICAgd3h5X15BQkMKCi9eW1x4M2YtXHg1Rl0rJC9pCiAgICBXWFlfXmFiYwogICAgd3h5X15BQkMKCi9eYWJjJC9tCiAgICBhYmMKICAgIHFxcVxuYWJjCiAgICBhYmNcbnp6egogICAgcXFxXG5hYmNcbnp6egoKL15hYmMkLwogICAgYWJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgcXFxXG5hYmMKICAgIGFiY1xuenp6CiAgICBxcXFcbmFiY1xuenp6CgovXEFhYmNcWi9tCiAgICBhYmMKICAgIGFiY1xuIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIHFxcVxuYWJjCiAgICBhYmNcbnp6egogICAgcXFxXG5hYmNcbnp6egogICAgCi9cQSguKSpcWi9zCiAgICBhYmNcbmRlZgoKL1xBKC4pKlxaL20KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmNcbmRlZgoKLyg/OmIpfCg/OjorKS8KICAgIGI6OmMKICAgIGM6OmIKCi9bLWF6XSsvCiAgICBhei0KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBiCgovW2F6LV0rLwogICAgemEtClw9IEV4cGVjdCBubyBtYXRjaAogICAgYgoKL1thXC16XSsvCiAgICBhLXoKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBiCgovW2Etel0rLwogICAgYWJjZHh5egoKL1tcZC1dKy8KICAgIDEyLTM0Clw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhCgovXHg1Yy8KICAgIFxcCgovXHgyMFovCiAgICB0aGUgWm9vClw9IEV4cGVjdCBubyBtYXRjaAogICAgWnVsdQoKLyhhYmMpXDEvaQogICAgYWJjYWJjCiAgICBBQkNhYmMKICAgIGFiY0FCQwoKL2FiYyQvCiAgICBhYmMKICAgIGFiY1xuClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjXG5kZWYKCi8oYWJjKVwxMjMvCiAgICBhYmNceDUzCgovKGFiYylcMjIzLwogICAgYWJjXHg5MwoKLyhhYmMpXDMyMy8KICAgIGFiY1x4ZDMKCi8oYWJjKVwxMDAvCiAgICBhYmNceDQwCiAgICBhYmNcMTAwCgovKGFiYylcMTAwMC8KICAgIGFiY1x4NDAwCiAgICBhYmNceDQwXHgzMAogICAgYWJjXDEwMDAKICAgIGFiY1wxMDBceDMwCiAgICBhYmNcMTAwXDA2MAogICAgYWJjXDEwMFw2MAogICAgCi9eKEEpKEIpKEMpKEQpKEUpKEYpKEcpKEgpKEkpXDhcOSQvCiAgICBBQkNERUZHSElISSAKCi9eW0FcOEJcOUNdKyQvCiAgICBBOEI5QwpcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBBOEI5Q1x4MDAKCi8oYSkoYikoYykoZCkoZSkoZikoZykoaCkoaSkoaikoaykobClcMTJcMTIzLwogICAgYWJjZGVmZ2hpamtsbFMKCi8oYSkoYikoYykoZCkoZSkoZikoZykoaCkoaSkoaikoaylcMTJcMTIzLwogICAgYWJjZGVmZ2hpamtcMTJTCgovYXswfWJjLwogICAgYmMKCi8oYXwoYmMpKXswLDB9P3h5ei8KICAgIHh5egoKL2FiY1tcMTBdZGUvCiAgICBhYmNcMDEwZGUKCi9hYmNbXDFdZGUvCiAgICBhYmNcMWRlCgovKGFiYylbXDFdZGUvCiAgICBhYmNcMWRlCgovKD9zKWEuYi8KICAgIGFcbmIKCi9eKFteYV0pKFteXGJdKShbXmNdKikoW15kXXszLDR9KS8KICAgIGJhTk9UY2NjY2QKICAgIGJhTk9UY2NjZAogICAgYmFOT1RjY2QKICAgIGJhY2NjZApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFueXRoaW5nCiAgICBiXGJjICAgCiAgICBiYWNjZAoKL1teYV0vCiAgICBBYmMKICAKL1teYV0vaQogICAgQWJjIAoKL1teYV0rLwogICAgQUFBYUFiYwogIAovW15hXSsvaQogICAgQUFBYUFiYyAKCi9bXmFdKy8KICAgIGJiYlxuY2NjCiAgIAovW15rXSQvCiAgICBhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmsgICAKICAgCi9bXmtdezIsM30kLwogICAgYWJjCiAgICBrYmMKICAgIGthYmMgClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJrCiAgICBha2IKICAgIGFrayAKCi9eXGR7OCx9XEAuK1tea10kLwogICAgMTIzNDU2NzhcQGEuYi5jLmQKICAgIDEyMzQ1Njc4OVxAeC55LnoKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxMjM0NTY3OFxAeC55LnVrCiAgICAxMjM0NTY3XEBhLmIuYy5kICAgICAgIAoKLyhhKVwxezgsfS8KICAgIGFhYWFhYWFhYQogICAgYWFhYWFhYWFhYQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYWFhYWEgICAKCi9bXmFdLwogICAgYWFhYWJjZAogICAgYWFBYWJjZCAKCi9bXmFdL2kKICAgIGFhYWFiY2QKICAgIGFhQWFiY2QgCgovW15hel0vCiAgICBhYWFhYmNkCiAgICBhYUFhYmNkIAoKL1teYXpdL2kKICAgIGFhYWFiY2QKICAgIGFhQWFiY2QgCgovXDAwMFwwMDFcMDAyXDAwM1wwMDRcMDA1XDAwNlwwMDdcMDEwXDAxMVwwMTJcMDEzXDAxNFwwMTVcMDE2XDAxN1wwMjBcMDIxXDAyMlwwMjNcMDI0XDAyNVwwMjZcMDI3XDAzMFwwMzFcMDMyXDAzM1wwMzRcMDM1XDAzNlwwMzdcMDQwXDA0MVwwNDJcMDQzXDA0NFwwNDVcMDQ2XDA0N1wwNTBcMDUxXDA1MlwwNTNcMDU0XDA1NVwwNTZcMDU3XDA2MFwwNjFcMDYyXDA2M1wwNjRcMDY1XDA2NlwwNjdcMDcwXDA3MVwwNzJcMDczXDA3NFwwNzVcMDc2XDA3N1wxMDBcMTAxXDEwMlwxMDNcMTA0XDEwNVwxMDZcMTA3XDExMFwxMTFcMTEyXDExM1wxMTRcMTE1XDExNlwxMTdcMTIwXDEyMVwxMjJcMTIzXDEyNFwxMjVcMTI2XDEyN1wxMzBcMTMxXDEzMlwxMzNcMTM0XDEzNVwxMzZcMTM3XDE0MFwxNDFcMTQyXDE0M1wxNDRcMTQ1XDE0NlwxNDdcMTUwXDE1MVwxNTJcMTUzXDE1NFwxNTVcMTU2XDE1N1wxNjBcMTYxXDE2MlwxNjNcMTY0XDE2NVwxNjZcMTY3XDE3MFwxNzFcMTcyXDE3M1wxNzRcMTc1XDE3NlwxNzdcMjAwXDIwMVwyMDJcMjAzXDIwNFwyMDVcMjA2XDIwN1wyMTBcMjExXDIxMlwyMTNcMjE0XDIxNVwyMTZcMjE3XDIyMFwyMjFcMjIyXDIyM1wyMjRcMjI1XDIyNlwyMjdcMjMwXDIzMVwyMzJcMjMzXDIzNFwyMzVcMjM2XDIzN1wyNDBcMjQxXDI0MlwyNDNcMjQ0XDI0NVwyNDZcMjQ3XDI1MFwyNTFcMjUyXDI1M1wyNTRcMjU1XDI1NlwyNTdcMjYwXDI2MVwyNjJcMjYzXDI2NFwyNjVcMjY2XDI2N1wyNzBcMjcxXDI3MlwyNzNcMjc0XDI3NVwyNzZcMjc3XDMwMFwzMDFcMzAyXDMwM1wzMDRcMzA1XDMwNlwzMDdcMzEwXDMxMVwzMTJcMzEzXDMxNFwzMTVcMzE2XDMxN1wzMjBcMzIxXDMyMlwzMjNcMzI0XDMyNVwzMjZcMzI3XDMzMFwzMzFcMzMyXDMzM1wzMzRcMzM1XDMzNlwzMzdcMzQwXDM0MVwzNDJcMzQzXDM0NFwzNDVcMzQ2XDM0N1wzNTBcMzUxXDM1MlwzNTNcMzU0XDM1NVwzNTZcMzU3XDM2MFwzNjFcMzYyXDM2M1wzNjRcMzY1XDM2NlwzNjdcMzcwXDM3MVwzNzJcMzczXDM3NFwzNzVcMzc2XDM3Ny8KIFwwMDBcMDAxXDAwMlwwMDNcMDA0XDAwNVwwMDZcMDA3XDAxMFwwMTFcMDEyXDAxM1wwMTRcMDE1XDAxNlwwMTdcMDIwXDAyMVwwMjJcMDIzXDAyNFwwMjVcMDI2XDAyN1wwMzBcMDMxXDAzMlwwMzNcMDM0XDAzNVwwMzZcMDM3XDA0MFwwNDFcMDQyXDA0M1wwNDRcMDQ1XDA0NlwwNDdcMDUwXDA1MVwwNTJcMDUzXDA1NFwwNTVcMDU2XDA1N1wwNjBcMDYxXDA2MlwwNjNcMDY0XDA2NVwwNjZcMDY3XDA3MFwwNzFcMDcyXDA3M1wwNzRcMDc1XDA3NlwwNzdcMTAwXDEwMVwxMDJcMTAzXDEwNFwxMDVcMTA2XDEwN1wxMTBcMTExXDExMlwxMTNcMTE0XDExNVwxMTZcMTE3XDEyMFwxMjFcMTIyXDEyM1wxMjRcMTI1XDEyNlwxMjdcMTMwXDEzMVwxMzJcMTMzXDEzNFwxMzVcMTM2XDEzN1wxNDBcMTQxXDE0MlwxNDNcMTQ0XDE0NVwxNDZcMTQ3XDE1MFwxNTFcMTUyXDE1M1wxNTRcMTU1XDE1NlwxNTdcMTYwXDE2MVwxNjJcMTYzXDE2NFwxNjVcMTY2XDE2N1wxNzBcMTcxXDE3MlwxNzNcMTc0XDE3NVwxNzZcMTc3XDIwMFwyMDFcMjAyXDIwM1wyMDRcMjA1XDIwNlwyMDdcMjEwXDIxMVwyMTJcMjEzXDIxNFwyMTVcMjE2XDIxN1wyMjBcMjIxXDIyMlwyMjNcMjI0XDIyNVwyMjZcMjI3XDIzMFwyMzFcMjMyXDIzM1wyMzRcMjM1XDIzNlwyMzdcMjQwXDI0MVwyNDJcMjQzXDI0NFwyNDVcMjQ2XDI0N1wyNTBcMjUxXDI1MlwyNTNcMjU0XDI1NVwyNTZcMjU3XDI2MFwyNjFcMjYyXDI2M1wyNjRcMjY1XDI2NlwyNjdcMjcwXDI3MVwyNzJcMjczXDI3NFwyNzVcMjc2XDI3N1wzMDBcMzAxXDMwMlwzMDNcMzA0XDMwNVwzMDZcMzA3XDMxMFwzMTFcMzEyXDMxM1wzMTRcMzE1XDMxNlwzMTdcMzIwXDMyMVwzMjJcMzIzXDMyNFwzMjVcMzI2XDMyN1wzMzBcMzMxXDMzMlwzMzNcMzM0XDMzNVwzMzZcMzM3XDM0MFwzNDFcMzQyXDM0M1wzNDRcMzQ1XDM0NlwzNDdcMzUwXDM1MVwzNTJcMzUzXDM1NFwzNTVcMzU2XDM1N1wzNjBcMzYxXDM2MlwzNjNcMzY0XDM2NVwzNjZcMzY3XDM3MFwzNzFcMzcyXDM3M1wzNzRcMzc1XDM3NlwzNzcKCi9QW14qXVRBSVJFW14qXXsxLDZ9P0xMLwogICAgeHh4eHh4eHh4eHhQU1RBSVJFSVNMTHh4eHh4eHh4eAoKL1BbXipdVEFJUkVbXipdezEsfT9MTC8KICAgIHh4eHh4eHh4eHh4UFNUQUlSRUlTTEx4eHh4eHh4eHgKCi8oXC5cZFxkWzEtOV0/KVxkKy8KICAgIDEuMjMwMDAzOTM4CiAgICAxLjg3NTAwMDI4MiAgIAogICAgMS4yMzUgIAogICAgICAgICAgICAgICAgICAKLyhcLlxkXGQoKD89MCl8XGQoPz1cZCkpKS8KICAgIDEuMjMwMDAzOTM4ICAgICAgCiAgICAxLjg3NTAwMDI4MgpcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICAxLjIzNSAKICAgIAovYSg/KWIvCiAgICBhYiAKIAovXGIoZm9vKVxzKyhcdyspL2kKICAgIEZvb2QgaXMgb24gdGhlIGZvbyB0YWJsZQogICAgCi9mb28oLiopYmFyLwogICAgVGhlIGZvb2QgaXMgdW5kZXIgdGhlIGJhciBpbiB0aGUgYmFybi4KICAgIAovZm9vKC4qPyliYXIvCiAgICBUaGUgZm9vZCBpcyB1bmRlciB0aGUgYmFyIGluIHRoZSBiYXJuLgoKLyguKikoXGQqKS8KICAgIEkgaGF2ZSAyIG51bWJlcnM6IDUzMTQ3CiAgICAKLyguKikoXGQrKS8KICAgIEkgaGF2ZSAyIG51bWJlcnM6IDUzMTQ3CiAKLyguKj8pKFxkKikvCiAgICBJIGhhdmUgMiBudW1iZXJzOiA1MzE0NwoKLyguKj8pKFxkKykvCiAgICBJIGhhdmUgMiBudW1iZXJzOiA1MzE0NwoKLyguKikoXGQrKSQvCiAgICBJIGhhdmUgMiBudW1iZXJzOiA1MzE0NwoKLyguKj8pKFxkKykkLwogICAgSSBoYXZlIDIgbnVtYmVyczogNTMxNDcKCi8oLiopXGIoXGQrKSQvCiAgICBJIGhhdmUgMiBudW1iZXJzOiA1MzE0NwoKLyguKlxEKShcZCspJC8KICAgIEkgaGF2ZSAyIG51bWJlcnM6IDUzMTQ3CgovXlxEKig/ITEyMykvCiAgICBBQkMxMjMKICAgICAKL14oXEQqKSg/PVxkKSg/ITEyMykvCiAgICBBQkM0NDUKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBQkMxMjMKICAgIAovXltXLV00Nl0vCiAgICBXNDZdNzg5IAogICAgLTQ2XTc4OQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIFdhbGwKICAgIFplYnJhCiAgICA0MgogICAgW2FiY2RdIAogICAgXWFiY2RbCiAgICAgICAKL15bVy1cXTQ2XS8KICAgIFc0Nl03ODkgCiAgICBXYWxsCiAgICBaZWJyYQogICAgWHlsb3Bob25lICAKICAgIDQyCiAgICBbYWJjZF0gCiAgICBdYWJjZFsKICAgIFxcYmFja3NsYXNoIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIC00Nl03ODkKICAgIHdlbGwKICAgIAovXGRcZFwvXGRcZFwvXGRcZFxkXGQvCiAgICAwMS8wMS8yMDAwCgovd29yZCAoPzpbYS16QS1aMC05XSsgKXswLDEwfW90aGVyd29yZC8KICAgIHdvcmQgY2F0IGRvZyBlbGVwaGFudCBtdXNzZWwgY293IGhvcnNlIGNhbmFyeSBiYWJvb24gc25ha2Ugc2hhcmsgb3RoZXJ3b3JkClw9IEV4cGVjdCBubyBtYXRjaAogICAgd29yZCBjYXQgZG9nIGVsZXBoYW50IG11c3NlbCBjb3cgaG9yc2UgY2FuYXJ5IGJhYm9vbiBzbmFrZSBzaGFyawoKL3dvcmQgKD86W2EtekEtWjAtOV0rICl7MCwzMDB9b3RoZXJ3b3JkLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIHdvcmQgY2F0IGRvZyBlbGVwaGFudCBtdXNzZWwgY293IGhvcnNlIGNhbmFyeSBiYWJvb24gc25ha2Ugc2hhcmsgdGhlIHF1aWNrIGJyb3duIGZveCBhbmQgdGhlIGxhenkgZG9nIGFuZCBzZXZlcmFsIG90aGVyIHdvcmRzIGdldHRpbmcgY2xvc2UgdG8gdGhpcnR5IGJ5IG5vdyBJIGhvcGUKCi9eKGEpezAsMH0vCiAgICBiY2QKICAgIGFiYwogICAgYWFiICAgICAKCi9eKGEpezAsMX0vCiAgICBiY2QKICAgIGFiYwogICAgYWFiICAKCi9eKGEpezAsMn0vCiAgICBiY2QKICAgIGFiYwogICAgYWFiICAKCi9eKGEpezAsM30vCiAgICBiY2QKICAgIGFiYwogICAgYWFiCiAgICBhYWEgICAKCi9eKGEpezAsfS8KICAgIGJjZAogICAgYWJjCiAgICBhYWIKICAgIGFhYQogICAgYWFhYWFhYWEgICAgCgovXihhKXsxLDF9LwogICAgYWJjCiAgICBhYWIgIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGJjZAoKL14oYSl7MSwyfS8KICAgIGFiYwogICAgYWFiICAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBiY2QKCi9eKGEpezEsM30vCiAgICBhYmMKICAgIGFhYgogICAgYWFhICAgClw9IEV4cGVjdCBubyBtYXRjaAogICAgYmNkCgovXihhKXsxLH0vCiAgICBhYmMKICAgIGFhYgogICAgYWFhCiAgICBhYWFhYWFhYSAgICAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBiY2QKCi8uKlwuZ2lmLwogICAgYm9yZmxlXG5iaWIuZ2lmXG5ubwoKLy57MCx9XC5naWYvCiAgICBib3JmbGVcbmJpYi5naWZcbm5vCgovLipcLmdpZi9tCiAgICBib3JmbGVcbmJpYi5naWZcbm5vCgovLipcLmdpZi9zCiAgICBib3JmbGVcbmJpYi5naWZcbm5vCgovLipcLmdpZi9tcwogICAgYm9yZmxlXG5iaWIuZ2lmXG5ubwogICAgCi8uKiQvCiAgICBib3JmbGVcbmJpYi5naWZcbm5vCgovLiokL20KICAgIGJvcmZsZVxuYmliLmdpZlxubm8KCi8uKiQvcwogICAgYm9yZmxlXG5iaWIuZ2lmXG5ubwoKLy4qJC9tcwogICAgYm9yZmxlXG5iaWIuZ2lmXG5ubwogICAgCi8uKiQvCiAgICBib3JmbGVcbmJpYi5naWZcbm5vXG4KCi8uKiQvbQogICAgYm9yZmxlXG5iaWIuZ2lmXG5ub1xuCgovLiokL3MKICAgIGJvcmZsZVxuYmliLmdpZlxubm9cbgoKLy4qJC9tcwogICAgYm9yZmxlXG5iaWIuZ2lmXG5ub1xuCiAgICAKLyguKlh8XkIpLwogICAgYWJjZGVcbjEyMzRYeXoKICAgIEJhckZvbyAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmNkZVxuQmFyICAKCi8oLipYfF5CKS9tCiAgICBhYmNkZVxuMTIzNFh5egogICAgQmFyRm9vIAogICAgYWJjZGVcbkJhciAgCgovKC4qWHxeQikvcwogICAgYWJjZGVcbjEyMzRYeXoKICAgIEJhckZvbyAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmNkZVxuQmFyICAKCi8oLipYfF5CKS9tcwogICAgYWJjZGVcbjEyMzRYeXoKICAgIEJhckZvbyAKICAgIGFiY2RlXG5CYXIgIAoKLyg/cykoLipYfF5CKS8KICAgIGFiY2RlXG4xMjM0WHl6CiAgICBCYXJGb28gClw9IEV4cGVjdCBubyBtYXRjaCAKICAgIGFiY2RlXG5CYXIgIAoKLyg/czouKlh8XkIpLwogICAgYWJjZGVcbjEyMzRYeXoKICAgIEJhckZvbyAKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgYWJjZGVcbkJhciAgCgovXi4qQi8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmNcbkIKICAgICAKLyg/cyleLipCLwogICAgYWJjXG5CCgovKD9tKV4uKkIvCiAgICBhYmNcbkIKICAgICAKLyg/bXMpXi4qQi8KICAgIGFiY1xuQgoKLyg/bXMpXkIvCiAgICBhYmNcbkIKCi8oP3MpQiQvCiAgICBCXG4KCi9eWzAtOV1bMC05XVswLTldWzAtOV1bMC05XVswLTldWzAtOV1bMC05XVswLTldWzAtOV1bMC05XVswLTldLwogICAgMTIzNDU2NjU0MzIxCiAgCi9eXGRcZFxkXGRcZFxkXGRcZFxkXGRcZFxkLwogICAgMTIzNDU2NjU0MzIxIAoKL15bXGRdW1xkXVtcZF1bXGRdW1xkXVtcZF1bXGRdW1xkXVtcZF1bXGRdW1xkXVtcZF0vCiAgICAxMjM0NTY2NTQzMjEKICAKL15bYWJjXXsxMn0vCiAgICBhYmNhYmNhYmNhYmMKICAgIAovXlthLWNdezEyfS8KICAgIGFiY2FiY2FiY2FiYwogICAgCi9eKGF8YnxjKXsxMn0vCiAgICBhYmNhYmNhYmNhYmMgCgovXlthYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5MDEyMzQ1Njc4OV0vCiAgICBuClw9IEV4cGVjdCBubyBtYXRjaCAKICAgIHogCgovYWJjZGV7MCwwfS8KICAgIGFiY2QKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmNlICAKCi9hYltjZF17MCwwfWUvCiAgICBhYmUKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmNkZSAKICAgIAovYWIoYyl7MCwwfWQvCiAgICBhYmQKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmNkICAgCgovYShiKikvCiAgICBhCiAgICBhYgogICAgYWJiYmIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBiYmJiYiAgICAKICAgIAovYWJcZHswfWUvCiAgICBhYmUKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYjFlICAgCiAgICAKLyIoW15cXCJdK3xcXC4pKiIvCiAgICB0aGUgXCJxdWlja1wiIGJyb3duIGZveAogICAgXCJ0aGUgXFxcInF1aWNrXFxcIiBicm93biBmb3hcIiAKCi8uKj8vZyxhZnRlcnRleHQKICAgIGFiYwogIAovXGIvZyxhZnRlcnRleHQKICAgIGFiYyAKCi9cYi9nLGFmdGVydGV4dAogICAgYWJjIAoKLy9nCiAgICBhYmMKCi88dHIoW1x3XFdcc1xkXVtePD5dezAsfSk+PFREKFtcd1xXXHNcZF1bXjw+XXswLH0pPihbXGRdezAsfVwuKSguKikoKDxCUj4oW1x3XFdcc1xkXVtePD5dezAsfSl8W1xzXXswLH0pKTxcL2E+PFwvVEQ+PFREKFtcd1xXXHNcZF1bXjw+XXswLH0pPihbXHdcV1xzXGRdW148Pl17MCx9KTxcL1REPjxURChbXHdcV1xzXGRdW148Pl17MCx9KT4oW1x3XFdcc1xkXVtePD5dezAsfSk8XC9URD48XC9UUj4vaXMKICA8VFIgQkdDT0xPUj0nI0RCRTlFOSc+PFREIGFsaWduPWxlZnQgdmFsaWduPXRvcD40My48YSBocmVmPSdqb2JsaXN0LmNmbT9Kb2JJRD05NCA2NzM1JktleXdvcmQ9Jz5Xb3JkIFByb2Nlc3NvcjxCUj4oTi0xMjg2KTwvYT48L1REPjxURCBhbGlnbj1sZWZ0IHZhbGlnbj10b3A+TGVnYSBsc3RhZmYuY29tPC9URD48VEQgYWxpZ249bGVmdCB2YWxpZ249dG9wPkNBIC0gU3RhdGV3aWRlPC9URD48L1RSPgoKL2FbXmFdYi8KICAgIGFjYgogICAgYVxuYgogICAgCi9hLmIvCiAgICBhY2IKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgYVxuYiAgIAogICAgCi9hW15hXWIvcwogICAgYWNiCiAgICBhXG5iICAKICAgIAovYS5iL3MKICAgIGFjYgogICAgYVxuYiAgCgovXihiKz98YSl7MSwyfT9jLwogICAgYmFjCiAgICBiYmFjCiAgICBiYmJhYwogICAgYmJiYmFjCiAgICBiYmJiYmFjIAoKL14oYit8YSl7MSwyfT9jLwogICAgYmFjCiAgICBiYmFjCiAgICBiYmJhYwogICAgYmJiYmFjCiAgICBiYmJiYmFjIAogICAgCi8oPyFcQSl4L20KICAgIGFcYnhcbgogICAgYVxueFxuClw9IEV4cGVjdCBubyBtYXRjaCAgICAgCiAgICB4XG5iXG4KICAgIAovKEF8QikqP0NELwogICAgQ0QgCiAgICAKLyhBfEIpKkNELwogICAgQ0QgCgovKEFCKSo/XDEvCiAgICBBQkFCQUIKCi8oQUIpKlwxLwogICAgQUJBQkFCCiAgICAKLyg/PCFiYXIpZm9vLwogICAgZm9vCiAgICBjYXRmb29kCiAgICBhcmZvb3RsZQogICAgcmZvb3NoClw9IEV4cGVjdCBubyBtYXRjaAogICAgYmFyZm9vCiAgICB0b3diYXJmb28KCi9cd3szfSg/PCFiYXIpZm9vLwogICAgY2F0Zm9vZApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGZvbwogICAgYmFyZm9vCiAgICB0b3diYXJmb28KCi8oPzw9KGZvbylhKWJhci8KICAgIGZvb2FiYXIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBiYXIKICAgIGZvb2JiYXIKICAgICAgCi9cQWFiY1x6L20KICAgIGFiYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY1xuICAgCiAgICBxcXFcbmFiYwogICAgYWJjXG56enoKICAgIHFxcVxuYWJjXG56enoKCi8oPz4uKlwvKWZvby8KICAgIC90aGlzL2lzL2EvdmVyeS9sb25nL2xpbmUvaW4vZGVlZC93aXRoL3ZlcnkvbWFueS9zbGFzaGVzL2luL2FuZC9mb28KXD0gRXhwZWN0IG5vIG1hdGNoICAgICAKICAgIC90aGlzL2lzL2EvdmVyeS9sb25nL2xpbmUvaW4vZGVlZC93aXRoL3ZlcnkvbWFueS9zbGFzaGVzL2luL2l0L3lvdS9zZWUvCgovKD8+KFwuXGRcZFsxLTldPykpXGQrLwogICAgMS4yMzAwMDM5MzgKICAgIDEuODc1MDAwMjgyClw9IEV4cGVjdCBubyBtYXRjaCAKICAgIDEuMjM1IAoKL14oKD8+XHcrKXwoPz5ccyspKSokLwogICAgbm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBtZW4gdG8gY29tZSB0byB0aGUgYWlkIG9mIHRoZSBwYXJ0eQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIHRoaXMgaXMgbm90IGEgbGluZSB3aXRoIG9ubHkgd29yZHMgYW5kIHNwYWNlcyEKICAgIAovKFxkKykoXHcpLwogICAgMTIzNDVhCiAgICAxMjM0NSsgCgovKCg/PlxkKykpKFx3KS8KICAgIDEyMzQ1YQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDEyMzQ1KyAKCi8oPz5hKyliLwogICAgYWFhYgoKLygoPz5hKyliKS8KICAgIGFhYWIKCi8oPz4oYSspKWIvCiAgICBhYWFiCgovKD8+YikrLwogICAgYWFhYmJiY2NjCgovKD8+YSt8Yit8YyspKmMvCiAgICBhYWFiYmJiY2NjY2QKCi8oKD8+W14oKV0rKXxcKFteKCldKlwpKSsvCiAgICAoKGFiYyhhZGUpdWZoKCkoKXgKICAgIAovXCgoKD8+W14oKV0rKXxcKFteKCldK1wpKStcKS8KICAgIChhYmMpCiAgICAoYWJjKGRlZil4eXopClw9IEV4cGVjdCBubyBtYXRjaAogICAgKCgoKWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhICAgCgovYSg/LWkpYi9pCiAgICBhYgogICAgQWIKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgYUIKICAgIEFCCiAgICAgICAgCi8oYSAoP3gpYiBjKWQgZS8KICAgIGEgYmNkIGUKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhIGIgY2QgZQogICAgYWJjZCBlICAgCiAgICBhIGJjZGUgCiAKLyhhIGIoP3gpYyBkICg/LXgpZSBmKS8KICAgIGEgYmNkZSBmClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjZGVmICAKCi8oYSg/aSliKWMvCiAgICBhYmMKICAgIGFCYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiQwogICAgYUJDICAKICAgIEFiYwogICAgQUJjCiAgICBBQkMKICAgIEFiQwogICAgCi9hKD9pOmIpYy8KICAgIGFiYwogICAgYUJjClw9IEV4cGVjdCBubyBtYXRjaCAKICAgIEFCQwogICAgYWJDCiAgICBhQkMKICAgIAovYSg/aTpiKSpjLwogICAgYUJjCiAgICBhQkJjClw9IEV4cGVjdCBubyBtYXRjaCAKICAgIGFCQwogICAgYUJCQwogICAgCi9hKD89Yig/aSljKVx3XHdkLwogICAgYWJjZAogICAgYWJDZApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFCQ2QKICAgIGFiY0QgICAgIAogICAgCi8oP3MtaTptb3JlLip0aGFuKS4qbWlsbGlvbi9pCiAgICBtb3JlIHRoYW4gbWlsbGlvbgogICAgbW9yZSB0aGFuIE1JTExJT04KICAgIG1vcmUgXG4gdGhhbiBNaWxsaW9uIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIE1PUkUgVEhBTiBNSUxMSU9OICAgIAogICAgbW9yZSBcbiB0aGFuIFxuIG1pbGxpb24gCgovKD86KD9zLWkpbW9yZS4qdGhhbikuKm1pbGxpb24vaQogICAgbW9yZSB0aGFuIG1pbGxpb24KICAgIG1vcmUgdGhhbiBNSUxMSU9OCiAgICBtb3JlIFxuIHRoYW4gTWlsbGlvbiAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBNT1JFIFRIQU4gTUlMTElPTiAgICAKICAgIG1vcmUgXG4gdGhhbiBcbiBtaWxsaW9uIAogICAgCi8oPz5hKD9pKWIrKStjLwogICAgYWJjCiAgICBhQmJjCiAgICBhQkJjIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiYwogICAgYWJBYiAgICAKICAgIGFiYkMgCiAgICAKLyg/PWEoP2kpYilcd1x3Yy8KICAgIGFiYwogICAgYUJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgQWIgCiAgICBhYkMKICAgIGFCQyAgICAgCiAgICAKLyg/PD1hKD9pKWIpKFx3XHcpYy8KICAgIGFieHhjCiAgICBhQnh4YwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFieHhjCiAgICBBQnh4YwogICAgYWJ4eEMgICAgICAKCi8oPzooYSl8YikoPygxKUF8QikvCiAgICBhQQogICAgYkIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhQgogICAgYkEgICAgCgovXihhKT8oPygxKWF8YikrJC8KICAgIGFhCiAgICBiCiAgICBiYiAgClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWIgICAKICAgIAojIFBlcmwgZ2V0cyB0aGlzIG5leHQgb25lIHdyb25nIGlmIHRoZSBwYXR0ZXJuIGVuZHMgd2l0aCAkOyBpbiB0aGF0IGNhc2UgaXQKIyBmYWlscyB0byBtYXRjaCAiMTIiLiAKCi9eKD8oPz1hYmMpXHd7M306fFxkXGQpLwogICAgYWJjOgogICAgMTIKICAgIDEyMwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIHh5eiAgICAKCi9eKD8oPyFhYmMpXGRcZHxcd3szfTopJC8KICAgIGFiYzoKICAgIDEyClw9IEV4cGVjdCBubyBtYXRjaAogICAgMTIzCiAgICB4eXogICAgCiAgICAKLyg/KD88PWZvbyliYXJ8Y2F0KS8KICAgIGZvb2JhcgogICAgY2F0CiAgICBmY2F0CiAgICBmb2NhdCAgIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGZvb2NhdCAgCgovKD8oPzwhZm9vKWNhdHxiYXIpLwogICAgZm9vYmFyCiAgICBjYXQKICAgIGZjYXQKICAgIGZvY2F0ICAgClw9IEV4cGVjdCBubyBtYXRjaAogICAgZm9vY2F0ICAKCi8oIFwoICk/IFteKCldKyAoPygxKSBcKSB8KSAveAogICAgYWJjZAogICAgKGFiY2QpCiAgICB0aGUgcXVpY2sgKGFiY2QpIGZveAogICAgKGFiY2QgICAKCi8oIFwoICk/IFteKCldKyAoPygxKSBcKSApIC94CiAgICBhYmNkCiAgICAoYWJjZCkKICAgIHRoZSBxdWljayAoYWJjZCkgZm94CiAgICAoYWJjZCAgIAoKL14oPygyKWF8KDEpKDIpKSskLwogICAgMTIKICAgIDEyYQogICAgMTJhYQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDEyMzQgICAgCgovKCg/aSlibGFoKVxzK1wxLwogICAgYmxhaCBibGFoCiAgICBCTEFIIEJMQUgKICAgIEJsYWggQmxhaAogICAgYmxhSCBibGFIClw9IEV4cGVjdCBubyBtYXRjaAogICAgYmxhaCBCTEFICiAgICBCbGFoIGJsYWggICAgICAKICAgIGJsYUggYmxhaCAKCi8oKD9pKWJsYWgpXHMrKD9pOlwxKS8KICAgIGJsYWggYmxhaAogICAgQkxBSCBCTEFICiAgICBCbGFoIEJsYWgKICAgIGJsYUggYmxhSAogICAgYmxhaCBCTEFICiAgICBCbGFoIGJsYWggICAgICAKICAgIGJsYUggYmxhaCAKCi8oKD9pKWJsYWgpXHMrKD9tKUEoP2k6XDEpLwogICAgYmxhaCBBQkxBSApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGJsYWggYUJMQUgKCi8oPz5hKikqLwogICAgYQogICAgYWEKICAgIGFhYWEKICAgIAovKGFiY3wpKy8KICAgIGFiYwogICAgYWJjYWJjCiAgICBhYmNhYmNhYmMKICAgIHh5eiAgICAgIAoKLyhbYV0qKSovCiAgICBhCiAgICBhYWFhYSAKIAovKFthYl0qKSovCiAgICBhCiAgICBiCiAgICBhYmFiYWIKICAgIGFhYWFiY2RlCiAgICBiYmJiICAgIAogCi8oW15hXSopKi8KICAgIGIKICAgIGJiYmIKICAgIGFhYSAgIAogCi8oW15hYl0qKSovCiAgICBjY2NjCiAgICBhYmFiICAKIAovKFthXSo/KSovCiAgICBhCiAgICBhYWFhIAogCi8oW2FiXSo/KSovCiAgICBhCiAgICBiCiAgICBhYmFiCiAgICBiYWJhICAgCiAKLyhbXmFdKj8pKi8KICAgIGIKICAgIGJiYmIKICAgIGFhYSAgIAogCi8oW15hYl0qPykqLwogICAgYwogICAgY2NjYwogICAgYmFiYSAgIAogCi8oPz5hKikqLwogICAgYQogICAgYWFhYmNkZSAKIAovKCg/PmEqKSkqLwogICAgYWFhYWEKICAgIGFhYmJhYSAKIAovKCg/PmEqPykpKi8KICAgIGFhYWFhCiAgICBhYWJiYWEgCgovKD8oPz1bXmEtel0rW2Etel0pICBcZHsyfS1bYS16XXszfS1cZHsyfSAgfCAgXGR7Mn0tXGR7Mn0tXGR7Mn0gKSAveAogICAgMTItc2VwLTk4CiAgICAxMi0wOS05OApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIHNlcC0xMi05OAogICAgICAgIAovKD88PShmb28pKWJhclwxLwogICAgZm9vYmFyZm9vCiAgICBmb29iYXJmb290bGluZyAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBmb29iYXIKICAgIGJhcmZvbyAgIAoKLyg/aTpzYXR1cmRheXxzdW5kYXkpLwogICAgc2F0dXJkYXkKICAgIHN1bmRheQogICAgU2F0dXJkYXkKICAgIFN1bmRheQogICAgU0FUVVJEQVkKICAgIFNVTkRBWQogICAgU3VuRGF5CiAgICAKLyhhKD9pKWJjfEJCKXgvCiAgICBhYmN4CiAgICBhQkN4CiAgICBiYngKICAgIEJCeApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY1gKICAgIGFCQ1gKICAgIGJiWAogICAgQkJYICAgICAgICAgICAgICAgCgovXihbYWJdKD9pKVtjZF18W2VmXSkvCiAgICBhYwogICAgYUMKICAgIGJECiAgICBlbGVwaGFudAogICAgRXVyb3BlIAogICAgZnJvZwogICAgRnJhbmNlClw9IEV4cGVjdCBubyBtYXRjaAogICAgQWZyaWNhICAgICAKCi9eKGFifGEoP2kpW2ItY10oP20taSlkfHgoP2kpeXx6KS8KICAgIGFiCiAgICBhQmQKICAgIHh5CiAgICB4WQogICAgemVicmEKICAgIFphbWJlc2kKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhQ0QgIAogICAgWFkgIAoKLyg/PD1mb29cbileYmFyL20KICAgIGZvb1xuYmFyClw9IEV4cGVjdCBubyBtYXRjaAogICAgYmFyCiAgICBiYXpcbmJhciAgIAoKLyg/PD0oPzwhZm9vKWJhciliYXovCiAgICBiYXJiYXoKICAgIGJhcmJhcmJheiAKICAgIGtvb2JhcmJheiAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBiYXoKICAgIGZvb2JhcmJheiAKCiMgVGhlIGNhc2VzIG9mIGFhYWEgYW5kIGFhYWFhYSBhcmUgbWlzc2VkIG91dCBiZWxvdyBiZWNhdXNlIFBlcmwgZG9lcyB0aGluZ3MKIyBkaWZmZXJlbnRseS4gV2Uga25vdyB0aGF0IG9kZCwgYW5kIG1heWJlIGluY29ycmVjdCwgdGhpbmdzIGhhcHBlbiB3aXRoCiMgcmVjdXJzaXZlIHJlZmVyZW5jZXMgaW4gUGVybCwgYXMgZmFyIGFzIDUuMTEuMyAtIHNlZSBzb21lIHN0dWZmIGluIHRlc3QgIzIuCgovXihhXDE/KXs0fSQvCiAgICBhYWFhYQogICAgYWFhYWFhYQogICAgYWFhYWFhYWFhYQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGEKICAgIGFhCiAgICBhYWEKICAgIGFhYWFhYWFhCiAgICBhYWFhYWFhYWEKICAgIGFhYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYWEKICAgIGFhYWFhYWFhYWFhYWEKICAgIGFhYWFhYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYWFhYWEKICAgIGFhYWFhYWFhYWFhYWFhYWEKCi9eKGFcMT8pKGFcMT8pKGFcMj8pKGFcMz8pJC8KICAgIGFhYWEKICAgIGFhYWFhCiAgICBhYWFhYWEKICAgIGFhYWFhYWEKICAgIGFhYWFhYWFhYWEKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhCiAgICBhYQogICAgYWFhCiAgICBhYWFhYWFhYQogICAgYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYQogICAgYWFhYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYWFhYQogICAgYWFhYWFhYWFhYWFhYWFhCiAgICBhYWFhYWFhYWFhYWFhYWFhICAgICAgICAgICAgICAgCgojIFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIHRha2VuIGZyb20gdGhlIFBlcmwgNS4wMDUgdGVzdCBzdWl0ZTsgc29tZSBvZiB0aGVtCiMgYXJlIGNvbXBhdGlibGUgd2l0aCA1LjAwNCwgYnV0IEknZCByYXRoZXIgbm90IGhhdmUgdG8gc29ydCB0aGVtIG91dC4KCi9hYmMvCiAgICBhYmMKICAgIHhhYmN5CiAgICBhYmFiYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIHhiYwogICAgYXhjCiAgICBhYngKCi9hYipjLwogICAgYWJjCgovYWIqYmMvCiAgICBhYmMKICAgIGFiYmMKICAgIGFiYmJiYwoKLy57MX0vCiAgICBhYmJiYmMKCi8uezMsNH0vCiAgICBhYmJiYmMKCi9hYnswLH1iYy8KICAgIGFiYmJiYwoKL2FiK2JjLwogICAgYWJiYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiYwogICAgYWJxCgovYWJ7MSx9YmMvCgovYWIrYmMvCiAgICBhYmJiYmMKCi9hYnsxLH1iYy8KICAgIGFiYmJiYwoKL2FiezEsM31iYy8KICAgIGFiYmJiYwoKL2FiezMsNH1iYy8KICAgIGFiYmJiYwoKL2FiezQsNX1iYy8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYnEKICAgIGFiYmJiYwoKL2FiP2JjLwogICAgYWJiYwogICAgYWJjCgovYWJ7MCwxfWJjLwogICAgYWJjCgovYWI/YmMvCgovYWI/Yy8KICAgIGFiYwoKL2FiezAsMX1jLwogICAgYWJjCgovXmFiYyQvCiAgICBhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmJiYmMKICAgIGFiY2MKCi9eYWJjLwogICAgYWJjYwoKL15hYmMkLwoKL2FiYyQvCiAgICBhYWJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFiY2QKCi9eLwogICAgYWJjCgovJC8KICAgIGFiYwoKL2EuYy8KICAgIGFiYwogICAgYXhjCgovYS4qYy8KICAgIGF4eXpjCgovYVtiY11kLwogICAgYWJkClw9IEV4cGVjdCBubyBtYXRjaAogICAgYXh5emQKICAgIGFiYwoKL2FbYi1kXWUvCiAgICBhY2UKCi9hW2ItZF0vCiAgICBhYWMKCi9hWy1iXS8KICAgIGEtCgovYVtiLV0vCiAgICBhLQoKL2FdLwogICAgYV0KCi9hW11dYi8KICAgIGFdYgoKL2FbXmJjXWQvCiAgICBhZWQKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmQKICAgIGFiZAoKL2FbXi1iXWMvCiAgICBhZGMKCi9hW15dYl1jLwogICAgYWRjCiAgICBhLWMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhXWMKCi9cYmFcYi8KICAgIGEtCiAgICAtYQogICAgLWEtCgovXGJ5XGIvClw9IEV4cGVjdCBubyBtYXRjaAogICAgeHkKICAgIHl6CiAgICB4eXoKCi9cQmFcQi8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhLQogICAgLWEKICAgIC1hLQoKL1xCeVxiLwogICAgeHkKCi9cYnlcQi8KICAgIHl6CgovXEJ5XEIvCiAgICB4eXoKCi9cdy8KICAgIGEKCi9cVy8KICAgIC0KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhCgovYVxzYi8KICAgIGEgYgoKL2FcU2IvCiAgICBhLWIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhIGIKCi9cZC8KICAgIDEKCi9cRC8KICAgIC0KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxCgovW1x3XS8KICAgIGEKCi9bXFddLwogICAgLQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGEKCi9hW1xzXWIvCiAgICBhIGIKCi9hW1xTXWIvCiAgICBhLWIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhIGIKCi9bXGRdLwogICAgMQoKL1tcRF0vCiAgICAtClw9IEV4cGVjdCBubyBtYXRjaAogICAgMQoKL2FifGNkLwogICAgYWJjCiAgICBhYmNkCgovKCllZi8KICAgIGRlZgoKLyRiLwoKL2FcKGIvCiAgICBhKGIKCi9hXCgqYi8KICAgIGFiCiAgICBhKChiCgovYVxcYi8KICAgIGFcXGIKCi8oKGEpKS8KICAgIGFiYwoKLyhhKWIoYykvCiAgICBhYmMKCi9hK2IrYy8KICAgIGFhYmJhYmMKCi9hezEsfWJ7MSx9Yy8KICAgIGFhYmJhYmMKCi9hLis/Yy8KICAgIGFiY2FiYwoKLyhhK3xiKSovCiAgICBhYgoKLyhhK3xiKXswLH0vCiAgICBhYgoKLyhhK3xiKSsvCiAgICBhYgoKLyhhK3xiKXsxLH0vCiAgICBhYgoKLyhhK3xiKT8vCiAgICBhYgoKLyhhK3xiKXswLDF9LwogICAgYWIKCi9bXmFiXSovCiAgICBjZGUKCi9hYmMvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYgoKL2EqLwogICAgXAoKLyhbYWJjXSkqZC8KICAgIGFiYmJjZAoKLyhbYWJjXSkqYmNkLwogICAgYWJjZAoKL2F8YnxjfGR8ZS8KICAgIGUKCi8oYXxifGN8ZHxlKWYvCiAgICBlZgoKL2FiY2QqZWZnLwogICAgYWJjZGVmZwoKL2FiKi8KICAgIHhhYnlhYmJiegogICAgeGF5YWJiYnoKCi8oYWJ8Y2QpZS8KICAgIGFiY2RlCgovW2FiaGdlZmRjXWlqLwogICAgaGlqCgovXihhYnxjZCllLwoKLyhhYmN8KWVmLwogICAgYWJjZGVmCgovKGF8YiljKmQvCiAgICBhYmNkCgovKGFifGFiKiliYy8KICAgIGFiYwoKL2EoW2JjXSopYyovCiAgICBhYmMKCi9hKFtiY10qKShjKmQpLwogICAgYWJjZAoKL2EoW2JjXSspKGMqZCkvCiAgICBhYmNkCgovYShbYmNdKikoYytkKS8KICAgIGFiY2QKCi9hW2JjZF0qZGNkY2RlLwogICAgYWRjZGNkZQoKL2FbYmNkXStkY2RjZGUvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjZGUKICAgIGFkY2RjZGUKCi8oYWJ8YSliKmMvCiAgICBhYmMKCi8oKGEpKGIpYykoZCkvCiAgICBhYmNkCgovW2EtekEtWl9dW2EtekEtWjAtOV9dKi8KICAgIGFscGhhCgovXmEoYmMrfGJbZWhdKWd8LmgkLwogICAgYWJoCgovKGJjK2QkfGVmKmcufGg/aShqfGspKS8KICAgIGVmZmd6CiAgICBpagogICAgcmVmZmd6Clw9IEV4cGVjdCBubyBtYXRjaAogICAgZWZmZwogICAgYmNkZAoKLygoKCgoKCgoKChhKSkpKSkpKSkpKS8KICAgIGEKCi8oKCgoKCgoKCgoYSkpKSkpKSkpKSlcMTAvCiAgICBhYQoKLygoKCgoKCgoKGEpKSkpKSkpKSkvCiAgICBhCgovbXVsdGlwbGUgd29yZHMgb2YgdGV4dC8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYQogICAgdWgtdWgKCi9tdWx0aXBsZSB3b3Jkcy8KICAgIG11bHRpcGxlIHdvcmRzLCB5ZWFoCgovKC4qKWMoLiopLwogICAgYWJjZGUKCi9cKCguKiksICguKilcKS8KICAgIChhLCBiKQoKL1trXS8KCi9hYmNkLwogICAgYWJjZAoKL2EoYmMpZC8KICAgIGFiY2QKCi9hWy1dP2MvCiAgICBhYwoKLyhhYmMpXDEvCiAgICBhYmNhYmMKCi8oW2EtY10qKVwxLwogICAgYWJjYWJjCgovKGEpfFwxLwogICAgYQogICAgYWIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICB4CgovKChbYS1jXSliKj9cMikqLwogICAgYWJhYmJiY2JjCgovKChbYS1jXSliKj9cMil7M30vCiAgICBhYmFiYmJjYmMKCi8oKFwzfGIpXDIoYSl4KSsvCiAgICBhYWF4YWJheGJhYXhiYmF4CgovKChcM3xiKVwyKGEpKXsyLH0vCiAgICBiYmFhYmFiYmFiYWFhYWFiYmFhYWFiYmEKCi9hYmMvaQogICAgQUJDCiAgICBYQUJDWQogICAgQUJBQkMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYXhhYnhiYXhiYngKICAgIFhCQwogICAgQVhDCiAgICBBQlgKCi9hYipjL2kKICAgIEFCQwoKL2FiKmJjL2kKICAgIEFCQwogICAgQUJCQwoKL2FiKj9iYy9pCiAgICBBQkJCQkMKCi9hYnswLH0/YmMvaQogICAgQUJCQkJDCgovYWIrP2JjL2kKICAgIEFCQkMKCi9hYitiYy9pClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUJDCiAgICBBQlEKCi9hYnsxLH1iYy9pCgovYWIrYmMvaQogICAgQUJCQkJDCgovYWJ7MSx9P2JjL2kKICAgIEFCQkJCQwoKL2FiezEsM30/YmMvaQogICAgQUJCQkJDCgovYWJ7Myw0fT9iYy9pCiAgICBBQkJCQkMKCi9hYns0LDV9P2JjL2kKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBQlEKICAgIEFCQkJCQwoKL2FiPz9iYy9pCiAgICBBQkJDCiAgICBBQkMKCi9hYnswLDF9P2JjL2kKICAgIEFCQwoKL2FiPz9iYy9pCgovYWI/P2MvaQogICAgQUJDCgovYWJ7MCwxfT9jL2kKICAgIEFCQwoKL15hYmMkL2kKICAgIEFCQwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFCQkJCQwogICAgQUJDQwoKL15hYmMvaQogICAgQUJDQwoKL15hYmMkL2kKCi9hYmMkL2kKICAgIEFBQkMKCi9eL2kKICAgIEFCQwoKLyQvaQogICAgQUJDCgovYS5jL2kKICAgIEFCQwogICAgQVhDCgovYS4qP2MvaQogICAgQVhZWkMKCi9hLipjL2kKICAgIEFBQkMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBWFlaRAoKL2FbYmNdZC9pCiAgICBBQkQKCi9hW2ItZF1lL2kKICAgIEFDRQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFCQwogICAgQUJECgovYVtiLWRdL2kKICAgIEFBQwoKL2FbLWJdL2kKICAgIEEtCgovYVtiLV0vaQogICAgQS0KCi9hXS9pCiAgICBBXQoKL2FbXV1iL2kKICAgIEFdQgoKL2FbXmJjXWQvaQogICAgQUVECgovYVteLWJdYy9pCiAgICBBREMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBQkQKICAgIEEtQwoKL2FbXl1iXWMvaQogICAgQURDCgovYWJ8Y2QvaQogICAgQUJDCiAgICBBQkNECgovKCllZi9pCiAgICBERUYKCi8kYi9pClw9IEV4cGVjdCBubyBtYXRjaAogICAgQV1DCiAgICBCCgovYVwoYi9pCiAgICBBKEIKCi9hXCgqYi9pCiAgICBBQgogICAgQSgoQgoKL2FcXGIvaQogICAgQVxcYgogICAgYVxcQiAKCi8oKGEpKS9pCiAgICBBQkMKCi8oYSliKGMpL2kKICAgIEFCQwoKL2ErYitjL2kKICAgIEFBQkJBQkMKCi9hezEsfWJ7MSx9Yy9pCiAgICBBQUJCQUJDCgovYS4rP2MvaQogICAgQUJDQUJDCgovYS4qP2MvaQogICAgQUJDQUJDCgovYS57MCw1fT9jL2kKICAgIEFCQ0FCQwoKLyhhK3xiKSovaQogICAgQUIKCi8oYSt8Yil7MCx9L2kKICAgIEFCCgovKGErfGIpKy9pCiAgICBBQgoKLyhhK3xiKXsxLH0vaQogICAgQUIKCi8oYSt8Yik/L2kKICAgIEFCCgovKGErfGIpezAsMX0vaQogICAgQUIKCi8oYSt8Yil7MCwxfT8vaQogICAgQUIKCi9bXmFiXSovaQogICAgQ0RFCgovKFthYmNdKSpkL2kKICAgIEFCQkJDRAoKLyhbYWJjXSkqYmNkL2kKICAgIEFCQ0QKCi9hfGJ8Y3xkfGUvaQogICAgRQoKLyhhfGJ8Y3xkfGUpZi9pCiAgICBFRgoKL2FiY2QqZWZnL2kKICAgIEFCQ0RFRkcKCi9hYiovaQogICAgWEFCWUFCQkJaCiAgICBYQVlBQkJCWgoKLyhhYnxjZCllL2kKICAgIEFCQ0RFCgovW2FiaGdlZmRjXWlqL2kKICAgIEhJSgoKL14oYWJ8Y2QpZS9pClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUJDREUKCi8oYWJjfCllZi9pCiAgICBBQkNERUYKCi8oYXxiKWMqZC9pCiAgICBBQkNECgovKGFifGFiKiliYy9pCiAgICBBQkMKCi9hKFtiY10qKWMqL2kKICAgIEFCQwoKL2EoW2JjXSopKGMqZCkvaQogICAgQUJDRAoKL2EoW2JjXSspKGMqZCkvaQogICAgQUJDRAoKL2EoW2JjXSopKGMrZCkvaQogICAgQUJDRAoKL2FbYmNkXSpkY2RjZGUvaQogICAgQURDRENERQoKL2FbYmNkXStkY2RjZGUvaQoKLyhhYnxhKWIqYy9pCiAgICBBQkMKCi8oKGEpKGIpYykoZCkvaQogICAgQUJDRAoKL1thLXpBLVpfXVthLXpBLVowLTlfXSovaQogICAgQUxQSEEKCi9eYShiYyt8YltlaF0pZ3wuaCQvaQogICAgQUJICgovKGJjK2QkfGVmKmcufGg/aShqfGspKS9pCiAgICBFRkZHWgogICAgSUoKICAgIFJFRkZHWgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFEQ0RDREUKICAgIEVGRkcKICAgIEJDREQKCi8oKCgoKCgoKCgoYSkpKSkpKSkpKSkvaQogICAgQQoKLygoKCgoKCgoKChhKSkpKSkpKSkpKVwxMC9pCiAgICBBQQoKLygoKCgoKCgoKGEpKSkpKSkpKSkvaQogICAgQQoKLyg/Oig/Oig/Oig/Oig/Oig/Oig/Oig/Oig/OihhKSkpKSkpKSkpKS9pCiAgICBBCgovKD86KD86KD86KD86KD86KD86KD86KD86KD86KGF8YnxjKSkpKSkpKSkpKS9pCiAgICBDCgovbXVsdGlwbGUgd29yZHMgb2YgdGV4dC9pClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUEKICAgIFVILVVICgovbXVsdGlwbGUgd29yZHMvaQogICAgTVVMVElQTEUgV09SRFMsIFlFQUgKCi8oLiopYyguKikvaQogICAgQUJDREUKCi9cKCguKiksICguKilcKS9pCiAgICAoQSwgQikKCi9ba10vaQoKL2FiY2QvaQogICAgQUJDRAoKL2EoYmMpZC9pCiAgICBBQkNECgovYVstXT9jL2kKICAgIEFDCgovKGFiYylcMS9pCiAgICBBQkNBQkMKCi8oW2EtY10qKVwxL2kKICAgIEFCQ0FCQwoKL2EoPyFiKS4vCiAgICBhYmFkCgovYSg/PWQpLi8KICAgIGFiYWQKCi9hKD89Y3xkKS4vCiAgICBhYmFkCgovYSg/OmJ8Y3xkKSguKS8KICAgIGFjZQoKL2EoPzpifGN8ZCkqKC4pLwogICAgYWNlCgovYSg/OmJ8Y3xkKSs/KC4pLwogICAgYWNlCiAgICBhY2RiY2RiZQoKL2EoPzpifGN8ZCkrKC4pLwogICAgYWNkYmNkYmUKCi9hKD86YnxjfGQpezJ9KC4pLwogICAgYWNkYmNkYmUKCi9hKD86YnxjfGQpezQsNX0oLikvCiAgICBhY2RiY2RiZQoKL2EoPzpifGN8ZCl7NCw1fT8oLikvCiAgICBhY2RiY2RiZQoKLygoZm9vKXwoYmFyKSkqLwogICAgZm9vYmFyCgovYSg/OmJ8Y3xkKXs2LDd9KC4pLwogICAgYWNkYmNkYmUKCi9hKD86YnxjfGQpezYsN30/KC4pLwogICAgYWNkYmNkYmUKCi9hKD86YnxjfGQpezUsNn0oLikvCiAgICBhY2RiY2RiZQoKL2EoPzpifGN8ZCl7NSw2fT8oLikvCiAgICBhY2RiY2RiZQoKL2EoPzpifGN8ZCl7NSw3fSguKS8KICAgIGFjZGJjZGJlCgovYSg/OmJ8Y3xkKXs1LDd9PyguKS8KICAgIGFjZGJjZGJlCgovYSg/OmJ8KGN8ZSl7MSwyfT98ZCkrPyguKS8KICAgIGFjZQoKL14oLispP0IvCiAgICBBQgoKL14oW15hLXpdKXwoXF4pJC8KICAgIC4KCi9eWzw+XSYvCiAgICA8Jk9VVAoKL14oYVwxPyl7NH0kLwogICAgYWFhYWFhYWFhYQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFCCiAgICBhYWFhYWFhYWEKICAgIGFhYWFhYWFhYWFhCgovXihhKD8oMSlcMSkpezR9JC8KICAgIGFhYWFhYWFhYWEKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWFhYWFhYWEKICAgIGFhYWFhYWFhYWFhCgovKD86KGYpKG8pKG8pfChiKShhKShyKSkqLwogICAgZm9vYmFyCgovKD88PWEpYi8KICAgIGFiClw9IEV4cGVjdCBubyBtYXRjaAogICAgY2IKICAgIGIKCi8oPzwhYyliLwogICAgYWIKICAgIGIKICAgIGIKCi8oPzouLikqYS8KICAgIGFiYQoKLyg/Oi4uKSo/YS8KICAgIGFiYQoKL14oPzpifGEoPz0oLikpKSpcMS8KICAgIGFiYwoKL14oKXszLDV9LwogICAgYWJjCgovXihhKykqYXgvCiAgICBhYXgKCi9eKChhfGIpKykqYXgvCiAgICBhYXgKCi9eKChhfGJjKSspKmF4LwogICAgYWF4CgovKGF8eCkqYWIvCiAgICBjYWIKCi8oYSkqYWIvCiAgICBjYWIKCi8oPzooP2kpYSliLwogICAgYWIKCi8oKD9pKWEpYi8KICAgIGFiCgovKD86KD9pKWEpYi8KICAgIEFiCgovKCg/aSlhKWIvCiAgICBBYgoKLyg/Oig/aSlhKWIvClw9IEV4cGVjdCBubyBtYXRjaAogICAgY2IKICAgIGFCCgovKCg/aSlhKWIvCgovKD9pOmEpYi8KICAgIGFiCgovKCg/aTphKSliLwogICAgYWIKCi8oP2k6YSliLwogICAgQWIKCi8oKD9pOmEpKWIvCiAgICBBYgoKLyg/aTphKWIvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYUIKICAgIGFCCgovKCg/aTphKSliLwoKLyg/Oig/LWkpYSliL2kKICAgIGFiCgovKCg/LWkpYSliL2kKICAgIGFiCgovKD86KD8taSlhKWIvaQogICAgYUIKCi8oKD8taSlhKWIvaQogICAgYUIKCi8oPzooPy1pKWEpYi9pCiAgICBhQgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiCiAgICBBQgoKLyg/LWk6YSliL2kKICAgIGFiCgovKCg/LWk6YSkpYi9pCiAgICBhYgoKLyg/LWk6YSliL2kKICAgIGFCCgovKCg/LWk6YSkpYi9pCiAgICBhQgoKLyg/LWk6YSliL2kKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBQgogICAgQWIKCi8oKD8taTphKSliL2kKCi8oPy1pOmEpYi9pCiAgICBhQgoKLygoPy1pOmEpKWIvaQogICAgYUIKCi8oPy1pOmEpYi9pClw9IEV4cGVjdCBubyBtYXRjaAogICAgQWIKICAgIEFCCgovKCg/LWk6YSkpYi9pCgovKCg/LWk6YS4pKWIvaQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFCCiAgICBhXG5CCgovKCg/cy1pOmEuKSliL2kKICAgIGFcbkIKCi8oPzpjfGQpKD86KSg/OmEoPzopKD86YikoPzpiKD86KSkoPzpiKD86KSg/OmIpKSkvCiAgICBjYWJiYmIKCi8oPzpjfGQpKD86KSg/OmFhYWFhYWFhKD86KSg/OmJiYmJiYmJiKSg/OmJiYmJiYmJiKD86KSkoPzpiYmJiYmJiYig/OikoPzpiYmJiYmJiYikpKS8KICAgIGNhYWFhYWFhYWJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiCgovKGFiKVxkXDEvaQogICAgQWI0YWIKICAgIGFiNEFiCgovZm9vXHcqXGR7NH1iYXovCiAgICBmb29iYXIxMjM0YmF6CgoveCh+fikqKD86KD86Rik/KT8vCiAgICB4fn4KCi9eYSg/I3h4eCl7M31jLwogICAgYWFhYwoKL15hICg/I3h4eCkgKD8jeXl5KSB7M31jL3gKICAgIGFhYWMKCi8oPzwhW2NkXSliLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEJcbkIKICAgIGRiY2IKCi8oPzwhW2NkXSlbYWJdLwogICAgZGJhYWNiCgovKD88IShjfGQpKWIvCgovKD88IShjfGQpKVthYl0vCiAgICBkYmFhY2IKCi8oPzwhY2QpW2FiXS8KICAgIGNkYWNjYgoKL14oPzphP2I/KSokLwogICAgXAogICAgYQogICAgYWIKICAgIGFhYSAgIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGRiY2IKICAgIGEtLQogICAgYWEtLSAKCi8oKD9zKV5hKC4pKSgoP20pXmIkKS8KICAgIGFcbmJcbmNcbgoKLygoP20pXmIkKS8KICAgIGFcbmJcbmNcbgoKLyg/bSleYi8KICAgIGFcbmJcbgoKLyg/bSleKGIpLwogICAgYVxuYlxuCgovKCg/bSleYikvCiAgICBhXG5iXG4KCi9cbigoP20pXmIpLwogICAgYVxuYlxuCgovKCg/cykuKWMoPyEuKS8KICAgIGFcbmJcbmNcbgogICAgYVxuYlxuY1xuCgovKCg/cyliLiljKD8hLikvCiAgICBhXG5iXG5jXG4KICAgIGFcbmJcbmNcbgoKL15iLwoKLygpXmIvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYVxuYlxuY1xuCiAgICBhXG5iXG5jXG4KCi8oKD9tKV5iKS8KICAgIGFcbmJcbmNcbgoKLyh4KT8oPygxKWF8YikvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYQogICAgYQoKLyh4KT8oPygxKWJ8YSkvCiAgICBhCgovKCk/KD8oMSlifGEpLwogICAgYQoKLygpKD8oMSlifGEpLwoKLygpPyg/KDEpYXxiKS8KICAgIGEKCi9eKFwoKT9ibGFoKD8oMSkoXCkpKSQvCiAgICAoYmxhaCkKICAgIGJsYWgKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhCiAgICBibGFoKQogICAgKGJsYWgKCi9eKFwoKyk/YmxhaCg/KDEpKFwpKSkkLwogICAgKGJsYWgpCiAgICBibGFoClw9IEV4cGVjdCBubyBtYXRjaAogICAgYmxhaCkKICAgIChibGFoCgovKD8oPyFhKWF8YikvCgovKD8oPyFhKWJ8YSkvCiAgICBhCgovKD8oPz1hKWJ8YSkvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYQogICAgYQoKLyg/KD89YSlhfGIpLwogICAgYQoKLyg/PShhKz8pKShcMWFiKS8KICAgIGFhYWIKCi9eKD89KGErPykpXDFhYi8KCi8oXHcrOikrLwogICAgb25lOgoKLyQoPzw9XihhKSkvCiAgICBhCgovKD89KGErPykpKFwxYWIpLwogICAgYWFhYgoKL14oPz0oYSs/KSlcMWFiLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYWIKICAgIGFhYWIKCi8oW1x3Ol0rOjopPyhcdyspJC8KICAgIGFiY2QKICAgIHh5Ono6OjphYmNkCgovXlteYmNkXSooYyspLwogICAgYWV4eWNkCgovKGEqKWIrLwogICAgY2FhYgoKLyhbXHc6XSs6Oik/KFx3KykkLwogICAgYWJjZAogICAgeHk6ejo6OmFiY2QKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmNkOgogICAgYWJjZDoKCi9eW15iY2RdKihjKykvCiAgICBhZXh5Y2QKCi8oPmErKWFiLwoKLyg/PmErKWIvCiAgICBhYWFiCgovKFtbOl0rKS8KICAgIGE6W2JdOgoKLyhbWz1dKykvCiAgICBhPVtiXT0KCi8oW1suXSspLwogICAgYS5bYl0uCgovKCg/PmErKWIpLwogICAgYWFhYgoKLyg/PihhKykpYi8KICAgIGFhYWIKCi8oKD8+W14oKV0rKXxcKFteKCldKlwpKSsvCiAgICAoKGFiYyhhZGUpdWZoKCkoKXgKCi9hXFovClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhYgogICAgYVxuYlxuCgovYlxaLwogICAgYVxuYlxuCgovYlx6LwoKL2JcWi8KICAgIGFcbmIKCi9iXHovCiAgICBhXG5iCiAgICAKL14oPz4oPygxKVwufCgpKVteXFdfXSg/PlthLXowLTktXSpbXlxXX10pPykrJC8KICAgIGEKICAgIGFiYwogICAgYS1iCiAgICAwLTkgCiAgICBhLmIKICAgIDUuNi43ICAKICAgIHRoZS5xdWljay5icm93bi5mb3gKICAgIGExMDAuYjIwMC4zMDBjICAKICAgIDEyLWFiLjEyNDUgClw9IEV4cGVjdCBubyBtYXRjaAogICAgXAogICAgLmEKICAgIC1hCiAgICBhLQogICAgYS4gIAogICAgYV9iIAogICAgYS4tCiAgICBhLi4gIAogICAgYWIuLmJjIAogICAgdGhlLnF1aWNrLmJyb3duLmZveC0KICAgIHRoZS5xdWljay5icm93bi5mb3guCiAgICB0aGUucXVpY2suYnJvd24uZm94XwogICAgdGhlLnF1aWNrLmJyb3duLmZveCsgICAgICAgCgovKD8+LiopKD88PShhYmNkfHd4eXopKS8KICAgIGFscGhhYmV0YWJjZAogICAgZW5kaW5nd3h5egpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGEgcmF0aGVyIGxvbmcgc3RyaW5nIHRoYXQgZG9lc24ndCBlbmQgd2l0aCBvbmUgb2YgdGhlbQoKL3dvcmQgKD8+KD86KD8hb3RoZXJ3b3JkKVthLXpBLVowLTldKyApezAsMzB9KW90aGVyd29yZC8KICAgIHdvcmQgY2F0IGRvZyBlbGVwaGFudCBtdXNzZWwgY293IGhvcnNlIGNhbmFyeSBiYWJvb24gc25ha2Ugc2hhcmsgb3RoZXJ3b3JkClw9IEV4cGVjdCBubyBtYXRjaAogICAgd29yZCBjYXQgZG9nIGVsZXBoYW50IG11c3NlbCBjb3cgaG9yc2UgY2FuYXJ5IGJhYm9vbiBzbmFrZSBzaGFyawogIAovd29yZCAoPz5bYS16QS1aMC05XSsgKXswLDMwfW90aGVyd29yZC8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICB3b3JkIGNhdCBkb2cgZWxlcGhhbnQgbXVzc2VsIGNvdyBob3JzZSBjYW5hcnkgYmFib29uIHNuYWtlIHNoYXJrIHRoZSBxdWljayBicm93biBmb3ggYW5kIHRoZSBsYXp5IGRvZyBhbmQgc2V2ZXJhbCBvdGhlciB3b3JkcyBnZXR0aW5nIGNsb3NlIHRvIHRoaXJ0eSBieSBub3cgSSBob3BlCgovKD88PVxkezN9KD8hOTk5KSlmb28vCiAgICA5OTlmb28KICAgIDEyMzk5OWZvbyAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxMjNhYmNmb28KICAgIAovKD88PSg/IS4uLjk5OSlcZHszfSlmb28vCiAgICA5OTlmb28KICAgIDEyMzk5OWZvbyAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxMjNhYmNmb28KCi8oPzw9XGR7M30oPyE5OTkpLi4uKWZvby8KICAgIDEyM2FiY2ZvbwogICAgMTIzNDU2Zm9vIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDEyMzk5OWZvbyAgCiAgICAKLyg/PD1cZHszfS4uLikoPzwhOTk5KWZvby8KICAgIDEyM2FiY2ZvbyAgIAogICAgMTIzNDU2Zm9vIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDEyMzk5OWZvbyAgCgovPGFbXHNdK2hyZWZbXHNdKj1bXHNdKiAgICAgICAgICAjIGZpbmQgPGEgaHJlZj0KIChbXCJcJ10pPyAgICAgICAgICAgICAgICAgICAgICAgIyBmaW5kIHNpbmdsZSBvciBkb3VibGUgcXVvdGUKICg/KDEpICguKj8pXDEgfCAoW15cc10rKSkgICAgICAgIyBpZiBxdW90ZSBmb3VuZCwgbWF0Y2ggdXAgdG8gbmV4dCBtYXRjaGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHF1b3RlLCBvdGhlcndpc2UgbWF0Y2ggdXAgdG8gbmV4dCBzcGFjZQovaXN4CiAgICA8YSBocmVmPWFiY2QgeHl6CiAgICA8YSBocmVmPVwiYWJjZCB4eXogcHFyXCIgY2F0cwogICAgPGEgaHJlZj1cJ2FiY2QgeHl6IHBxclwnIGNhdHMKCi88YVxzK2hyZWZccyo9XHMqICAgICAgICAgICAgICAgICMgZmluZCA8YSBocmVmPQogKFsiJ10pPyAgICAgICAgICAgICAgICAgICAgICAgICAjIGZpbmQgc2luZ2xlIG9yIGRvdWJsZSBxdW90ZQogKD8oMSkgKC4qPylcMSB8IChcUyspKSAgICAgICAgICAjIGlmIHF1b3RlIGZvdW5kLCBtYXRjaCB1cCB0byBuZXh0IG1hdGNoaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcXVvdGUsIG90aGVyd2lzZSBtYXRjaCB1cCB0byBuZXh0IHNwYWNlCi9pc3gKICAgIDxhIGhyZWY9YWJjZCB4eXoKICAgIDxhIGhyZWY9XCJhYmNkIHh5eiBwcXJcIiBjYXRzCiAgICA8YSBocmVmICAgICAgID0gICAgICAgXCdhYmNkIHh5eiBwcXJcJyBjYXRzCgovPGFccytocmVmKD8+XHMqKT0oPz5ccyopICAgICAgICAjIGZpbmQgPGEgaHJlZj0KIChbIiddKT8gICAgICAgICAgICAgICAgICAgICAgICAgIyBmaW5kIHNpbmdsZSBvciBkb3VibGUgcXVvdGUKICg/KDEpICguKj8pXDEgfCAoXFMrKSkgICAgICAgICAgIyBpZiBxdW90ZSBmb3VuZCwgbWF0Y2ggdXAgdG8gbmV4dCBtYXRjaGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHF1b3RlLCBvdGhlcndpc2UgbWF0Y2ggdXAgdG8gbmV4dCBzcGFjZQovaXN4CiAgICA8YSBocmVmPWFiY2QgeHl6CiAgICA8YSBocmVmPVwiYWJjZCB4eXogcHFyXCIgY2F0cwogICAgPGEgaHJlZiAgICAgICA9ICAgICAgIFwnYWJjZCB4eXogcHFyXCcgY2F0cwoKLygoWikrfEEpKi8KICAgIFpBQkNERUZHCgovKFooKXxBKSovCiAgICBaQUJDREVGRwoKLyhaKCgpKXxBKSovCiAgICBaQUJDREVGRwoKLygoPz5aKSt8QSkqLwogICAgWkFCQ0RFRkcKCi8oKD8+KSt8QSkqLwogICAgWkFCQ0RFRkcKCi9hKi9nCiAgICBhYmJhYgoKL1tbOnNwYWNlOl1dKy8KICAgID4gXHgwOVx4MGFceDBjXHgwZFx4MGI8CiAgICAgCi9bWzpibGFuazpdXSsvCiAgICA+IFx4MDlceDBhXHgwY1x4MGRceDBiPAogICAgIAovW1xzXSsvCiAgICA+IFx4MDlceDBhXHgwY1x4MGRceDBiPAogICAgIAovXHMrLwogICAgPiBceDA5XHgwYVx4MGNceDBkXHgwYjwKICAgICAKL2ELYi94CiAgICBhYgoKLyg/IVxBKXgvbQogICAgYVxueGJcbgoKLyg/IV4peC9tClw9IEV4cGVjdCBubyBtYXRjaAogICAgYVxueGJcbgoKL2FiY1xRYWJjXEVhYmMvCiAgICBhYmNhYmNhYmMKICAgIAovYWJjXFEoKit8XEVhYmMvCiAgICBhYmMoKit8YWJjIAoKLyAgIGFiY1xRIGFiY1xFYWJjL3gKICAgIGFiYyBhYmNhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmNhYmNhYmMgIAogICAgCi9hYmMjY29tbWVudAogICAgXFEjbm90IGNvbW1lbnQKICAgIGxpdGVyYWxcRS94CiAgICBhYmMjbm90IGNvbW1lbnRcbiAgICBsaXRlcmFsICAgICAKCi9hYmMjY29tbWVudAogICAgXFEjbm90IGNvbW1lbnQKICAgIGxpdGVyYWwveAogICAgYWJjI25vdCBjb21tZW50XG4gICAgbGl0ZXJhbCAgICAgCgovYWJjI2NvbW1lbnQKICAgIFxRI25vdCBjb21tZW50CiAgICBsaXRlcmFsXEUgI21vcmUgY29tbWVudAogICAgL3gKICAgIGFiYyNub3QgY29tbWVudFxuICAgIGxpdGVyYWwgICAgIAoKL2FiYyNjb21tZW50CiAgICBcUSNub3QgY29tbWVudAogICAgbGl0ZXJhbFxFICNtb3JlIGNvbW1lbnQveAogICAgYWJjI25vdCBjb21tZW50XG4gICAgbGl0ZXJhbCAgICAgCgovXFFhYmNcJHh5elxFLwogICAgYWJjXFxcJHh5egoKL1xRYWJjXEVcJFxReHl6XEUvCiAgICBhYmNcJHh5egoKL1xHYWJjLwogICAgYWJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgeHl6YWJjICAKCi9cR2FiYy4vZwogICAgYWJjMWFiYzJ4eXphYmMzCgovYWJjLi9nCiAgICBhYmMxYWJjMnh5emFiYzMgCgovYSg/eDogYiBjIClkLwogICAgWGFiY2RZClw9IEV4cGVjdCBubyBtYXRjaCAKICAgIFhhIGIgYyBkIFkgCgovKCg/eCl4IHkgeiB8IGEgYiBjKS8KICAgIFhhYmNZCiAgICBBeHl6QiAKCi8oP2kpQUIoPy1pKUMvCiAgICBYYWJDWQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIFhhYmNZICAKCi8oKD9pKUFCKD8taSlDfEQpRS8KICAgIGFiQ0UKICAgIERFClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjRQogICAgYWJDZSAgCiAgICBkRQogICAgRGUgICAgCgovKC4qKVxkK1wxLwogICAgYWJjMTIzYWJjCiAgICBhYmMxMjNiYyAKCi8oLiopXGQrXDEvcwogICAgYWJjMTIzYWJjCiAgICBhYmMxMjNiYyAKICAgIAovKCguKikpXGQrXDEvCiAgICBhYmMxMjNhYmMKICAgIGFiYzEyM2JjICAKCiMgVGhpcyB0ZXN0cyBmb3IgYW4gSVB2NiBhZGRyZXNzIGluIHRoZSBmb3JtIHdoZXJlIGl0IGNhbiBoYXZlIHVwIHRvCiMgZWlnaHQgY29tcG9uZW50cywgb25lIGFuZCBvbmx5IG9uZSBvZiB3aGljaCBpcyBlbXB0eS4gVGhpcyBtdXN0IGJlCiMgYW4gaW50ZXJuYWwgY29tcG9uZW50LiAKCi9eKD8hOikgICAgICAgICAgICAgICAgICAgICAgICMgY29sb24gZGlzYWxsb3dlZCBhdCBzdGFydAogICg/OiAgICAgICAgICAgICAgICAgICAgICAgICAjIHN0YXJ0IG9mIGl0ZW0KICAgICg/OiBbMC05YS1mXXsxLDR9IHwgICAgICAgIyAxLTQgaGV4IGRpZ2l0cyBvcgogICAgKD8oMSkwIHwgKCkgKSApICAgICAgICAgICAjIGlmIG51bGwgcHJldmlvdXNseSBtYXRjaGVkLCBmYWlsOyBlbHNlIG51bGwKICAgIDogICAgICAgICAgICAgICAgICAgICAgICAgIyBmb2xsb3dlZCBieSBjb2xvbgogICl7MSw3fSAgICAgICAgICAgICAgICAgICAgICAjIGVuZCBpdGVtOyAxLTcgb2YgdGhlbSByZXF1aXJlZCAgICAgICAgICAgICAgIAogIFswLTlhLWZdezEsNH0gJCAgICAgICAgICAgICAjIGZpbmFsIGhleCBudW1iZXIgYXQgZW5kIG9mIHN0cmluZwogICg/KDEpfC4pICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIHRoYXQgdGhlcmUgd2FzIGFuIGVtcHR5IGNvbXBvbmVudAogIC9peAogICAgYTEyMzo6YTEyMwogICAgYTEyMzpiMzQyOjphYmNkCiAgICBhMTIzOmIzNDI6OjMyNGU6YWJjZAogICAgYTEyMzpkZGRlOmIzNDI6OjMyNGU6YWJjZAogICAgYTEyMzpkZGRlOmIzNDI6OjMyNGU6ZGNiYTphYmNkCiAgICBhMTIzOmRkZGU6OTk5OTpiMzQyOjozMjRlOmRjYmE6YWJjZApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDE6MjozOjQ6NTo2Ojc6OAogICAgYTEyMzpiY2U6ZGRkZTo5OTk5OmIzNDI6OjMyNGU6ZGNiYTphYmNkCiAgICBhMTIzOjo5OTk5OmIzNDI6OjMyNGU6ZGNiYTphYmNkCiAgICBhYmNkZToyOjM6NDo1OjY6Nzo4CiAgICA6OjEKICAgIGFiY2Q6ZmVlMDoxMjM6OiAgIAogICAgOjEKICAgIDE6ICAKCi9belxRYS1kXVxFXS8KICAgIHoKICAgIGEKICAgIC0KICAgIGQKICAgIF0gClw9IEV4cGVjdCBubyBtYXRjaAogICAgYiAgICAgCgovKGErKSpiLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEgCiAgICAKLyg/aSlyZWcoPzp1bCg/Olth5F18YWUpcnxleCkvCiAgICBSRUd1bGFyCiAgICByZWd1bGFlcgogICAgUmVnZXggIAogICAgcmVndWzkciAKCi/F5uXkW+At/8At310rLwogICAgxebl5OAKICAgIMXm5eT/CiAgICDF5uXkwAogICAgxebl5N8KCi8oPzw9WilYLi8KICBceDg0WEFaWEIKCi9hYiBjZCAoP3gpIGRlIGZnLwogICAgYWIgY2QgZGVmZwoKL2FiIGNkKD94KSBkZSBmZy8KICAgIGFiIGNkZGVmZwpcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBhYmNkZGVmZwoKLyg/PCFbXmZdb28pKGJhcikvCiAgICBmb29iYXJYIApcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBib29iYXJYCgovKD88IVteZl0pWC8KICAgIG9mZlgKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBvbnlYICAKCi8oPzw9W15mXSlYLwogICAgb255WApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIG9mZlggCgovXi9nbQogICAgYVxuYlxuY1xuCiAgICBcIAogICAgCi8oPzw9Q1xuKV4vZ20KICAgIEFcbkNcbkNcbiAKCi8oPzooPygxKWF8YikoWCkpKy8KICAgIGJYYVgKCi8oPzooPygxKVwxYXxiKShYfFkpKSsvCiAgICBiWFhhWVlhWQogICAgYlhZYVhYYVggIAoKLygpKCkoKSgpKCkoKSgpKCkoKSg/Oig/KDEwKVwxMGF8YikoWHxZKSkrLwogICAgYlhYYVlZYVkKCi9bWyxhYmMsXStdLwogICAgYWJjXQogICAgYSxiXQogICAgW2EsYixjXSAgCgovKD8teDogKS94CiAgICBBXHgyMEIKICAgIAovKD94KSg/LXg6IFxzKiNccyopLwogICAgQSAjIEIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAjICAKICAgIEEgcyNzIEIKCi8oP3gtaXMpKD86KD8taXhzKSBccyojXHMqKSBpbmNsdWRlLwogICAgQSAjaW5jbHVkZQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEEjaW5jbHVkZSAgCiAgICBBICNJbmNsdWRlCgovYSpiKlx3LwogICAgYWFhYmJiYgogICAgYWFhYQogICAgYQoKL2EqYj9cdy8KICAgIGFhYWJiYmIKICAgIGFhYWEKICAgIGEKCi9hKmJ7MCw0fVx3LwogICAgYWFhYmJiYgogICAgYWFhYQogICAgYQoKL2EqYnswLH1cdy8KICAgIGFhYWJiYmIKICAgIGFhYWEKICAgIGEKICAgIAovYSpcZCpcdy8KICAgIDBhCiAgICBhIAogICAgCi9hKmIgKlx3L3gKICAgIGEgCgovYSpiI2NvbW1lbnQKICAqXHcveAogICAgYSAKCi9hKiBiICpcdy94CiAgICBhIAoKL15cdys9LiooXFxcbi4qKSovCiAgICBhYmM9eHl6XFxcbnBxcgoKLyg/PShcdyspKVwxOi8KICAgIGFiY2Q6CgovXig/PShcdyspKVwxOi8KICAgIGFiY2Q6CgovXlxFYWJjLwogICAgYWJjCiAgICAKL15bXEVhYmNdLwogICAgYQpcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBFIAogICAgCi9eW2EtXEVjXS8KICAgIGIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAtCiAgICBFICAgIAoKL15bYVxFXEUtXEVjXS8KICAgIGIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAtCiAgICBFICAgIAoKL15bXEVcUWFcRS1cUXpcRV0rLwogICAgYgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIC0gIAogICAgCi9eW2FcUV1iY1xFXS8KICAgIGEKICAgIF0KICAgIGMKICAgIAovXlthLVxRXEVdLwogICAgYQogICAgLSAgICAgCgovXihhKCkqKSovCiAgICBhYWFhCgovXig/OmEoPzooPzopKSopKi8KICAgIGFhYWEKCi9eKGEoKSspKy8KICAgIGFhYWEKCi9eKD86YSg/Oig/OikpKykrLwogICAgYWFhYQoKLyhhKXswLDN9KD8oMSlifChjfCkpKkQvCiAgICBhYmJECiAgICBjY2NjRAogICAgRCAgCgovKGF8KSpcZC8KICBhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWE0Clw9IEV4cGVjdCBubyBtYXRjaAogIGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQoKLyg/PmF8KSpcZC8KICBhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWE0Clw9IEV4cGVjdCBubyBtYXRjaAogIGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQoKLyg/OmF8KSpcZC8KICBhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWE0Clw9IEV4cGVjdCBubyBtYXRjaAogIGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQoKL1xaL2cKICBhYmNcbgogIAovXig/cykoPz4uKikoPzwhXG4pLwogIGFiYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICBhYmNcbiAgCgovXig/IVteXG5dKlxuXHopLwogIGFiYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICBhYmNcbiAKICAKL1x6KD88IVxuKS8KICBhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgYWJjXG4gIAoKLyguKiguKT8pKi8KICAgIGFiY2QKCi8oIChBIHwgKD8oMSkwfCkgKSogICApL3gKICAgIGFiY2QKCi8oICggKD8oMSkwfCkgKSogICApL3gKICAgIGFiY2QKCi8oICAoPygxKTB8KSogICApL3gKICAgIGFiY2QKCi9bWzphYmNkOnh5el1dLwogICAgYV0KICAgIDpdIAogICAgCi9bYWJjWzp4XF1wcXJdLwogICAgYQogICAgWwogICAgOgogICAgXQogICAgcCAgICAKCi8uKltvcF1beHl6XS8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBmb29hYmNmb28KCi8oPyg/PS4qYilifF4pLwogICBhZGMKICAgYWJjIAoKLyg/KD89Xi4qYilifF4pLwogICBhZGMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgIGFiYyAKCi8oPyg/PS4qYilifF4pKi8KICAgYWRjCiAgIGFiYyAKCi8oPyg/PS4qYilifF4pKy8KICAgYWRjCiAgIGFiYyAKCi8oPyg/PWIpLipifF5kKS8KICAgIGFiYwoKLyg/KD89LipiKS4qYnxeZCkvCiAgICBhYmMKCi9eJSgoPyg/PVthXSlbXiVdKXxiKSolJC8KICAgICVhYiUKCi8oP2kpYSg/LWkpYnxjLwogICAgWGFiWAogICAgWEFiWAogICAgQ2NDIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIFhBQlggICAKCi9bXHgwMC1ceGZmXHNdKy8KICAgIFx4MGFceDBiXHgwY1x4MGQKCi8oYWJjKVwxL2kKXD0gRXhwZWN0IG5vIG1hdGNoCiAgIGFiYwoKLyhhYmMpXDEvClw9IEV4cGVjdCBubyBtYXRjaAogICBhYmMKCi9bXmFdKi9pCiAgICAxMmFiYwogICAgMTJBQkMKCi9bXmFdKisvaQogICAgMTJhYmMKICAgIDEyQUJDCgovW15hXSo/WC9pClw9IEV4cGVjdCBubyBtYXRjaAogICAgMTJhYmMKICAgIDEyQUJDCiAgICAKL1teYV0rP1gvaQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDEyYWJjCiAgICAxMkFCQwoKL1teYV0/WC9pCiAgICAxMmFYYmNYCiAgICAxMkFYQkNYCiAgICBCQ1ggCgovW15hXT8/WC9pCiAgICAxMmFYYmNYCiAgICAxMkFYQkNYCiAgICBCQ1gKICAgIAovW15hXT8rWC9pCiAgICAxMmFYYmNYCiAgICAxMkFYQkNYCiAgICBCQ1ggCgovW15hXXsyLDN9L2kKICAgIGFiY2RlZgogICAgQUJDREVGICAKCi9bXmFdezIsM30/L2kKICAgIGFiY2RlZgogICAgQUJDREVGICAKCi9bXmFdezIsM30rL2kKICAgIGFiY2RlZgogICAgQUJDREVGICAKCi8oKGF8KSspK1ovCiAgICBaCgovKGEpYnwoYSljLwogICAgYWMKCi8oPz4oYSkpYnwoYSljLwogICAgYWMKCi8oPz0oYSkpYWJ8KGEpYy8KICAgIGFjCgovKCg/PihhKSlifChhKWMpLwogICAgYWMKCi8oKD8+KGEpKWJ8KGEpYykrKy8KICAgIGFjCgovKD86KD8+KGEpKWJ8KGEpYykrKy8KICAgIGFjCgovKD89KD8+KGEpKWJ8KGEpYykoLi4pLwogICAgYWMKCi8oPz4oPz4oYSkpYnwoYSljKS8KICAgIGFjCgovKD86KD8+KFthYl0pKSkrYT0vYWZ0ZXJ0ZXh0CiAgICA9YmE9CgovKD8+KFthYl0pKSthPS9hZnRlcnRleHQKICAgID1iYT0KCi8oKD8+KGErKWIpKyhhYWJhYikpLwogICAgYWFhYWJhYWFiYWFiYWIKCi8oPz5hK3xhYikrP2MvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFiYwoKLyg/PmErfGFiKStjLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYmMKCi8oPzphK3xhYikrYy8KICAgIGFhYmMKCi8oPyg/PShhKSlhKS8KICAgIGEKCi8oPyg/PShhKSlhKShiKS8KICAgIGFiCgovXig/OmF8YWIpKytjLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYWFiYwoKL14oPz5hfGFiKSsrYy8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWFhYmMKCi9eKD86YXxhYikrYy8KICAgIGFhYWFiYwoKLyg/PWFiYyl7M31hYmMvYWZ0ZXJ0ZXh0CiAgICBhYmNhYmNhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICB4eXogIAogICAgCi8oPz1hYmMpK2FiYy9hZnRlcnRleHQKICAgIGFiY2FiY2FiYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIHh5eiAgCiAgICAKLyg/PWFiYykrK2FiYy9hZnRlcnRleHQKICAgIGFiY2FiY2FiYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIHh5eiAgCiAgICAKLyg/PWFiYyl7MH14eXovCiAgICB4eXogCgovKD89YWJjKXsxfXh5ei8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICB4eXogCiAgICAKLyg/PShhKSk/Li8KICAgIGFiCiAgICBiYwogICAgICAKLyg/PShhKSk/Py4vCiAgICBhYgogICAgYmMKCi9eKD89KD8xKSk/W2F6XShbYWJjXSlkLwogICAgYWJkIAogICAgemNkeHggCgovXig/IWEpezB9XHcrLwogICAgYWFhYWEKCi8oPzw9KGFiYykpP3h5ei8KICAgIGFiY3h5egogICAgcHFyeHl6IAoKL15bXGc8YT5dKy8KICAgIGdnZzw8PGFhYT4+PgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIFxcZ2EgIAogICAgCi9eW1xnYV0rLwogICAgZ2dnYWdhZ2F4eXogCiAgICAKL15bOmFbOmRpZ2l0Ol1dKy8KICAgIGFhYWE0NDQ6OjpaIAoKL15bOmFbOmRpZ2l0Ol06Yl0rLwogICAgYWFhYTQ0NDo6OmJiYlogCgovWzphXXh4eFtiOl0vCiAgICAgOnh4eDoKICAgICAKLyg/PD1hezJ9KWIvaQogICAgeGFhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICB4YWJjICAKCi8oPzwhYXsyfSliL2kKICAgIHhhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICB4YWFiYyAgCgovKD88PWFcaCljLwogICAgeGEgYwogICAgCi8oPzw9W15hXXsyfSliLwogICAgYXh4YmMKICAgIGFBQWJjIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIHhhYWJjICAgIAoKLyg/PD1bXmFdezJ9KWIvaQogICAgYXh4YmMgIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFBQWJjIAogICAgeGFhYmMgICAgCgovKD88PWFcSCljLwogICAgYWJjCgovKD88PWFcViljLwogICAgYWJjCiAgICAKLyg/PD1hXHYpYy8KICAgIGFcbmMKCi8oPyg/PWMpY3xkKSsrWS8KICAgIFhjY2NkZFlYCgovKD8oPz1jKWN8ZCkqK1kvCiAgICBYY2NjZGRZWAoKL14oYXsyLDN9KXsyLH0rYS8KICAgIGFhYWFhYWEKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWFhYWEKICAgIGFhYWFhYWFhYSAKCi9eKGF7MiwzfSkrK2EvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhYWFhCgovXihhezIsM30pKithLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYWFhYQoKL1xIXGhcVlx2LwogICAgWCBYXHgwYQogICAgWFx4MDlYXHgwYgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIFx4YTAgWFx4MGEgICAKICAgIAovXEgqXGgrXFY/XHZ7Myw0fS8KICAgIFx4MDlceDIwXHhhMFhceDBhXHgwYlx4MGNceDBkXHgwYQogICAgXHgwOVx4MjBceGEwXHgwYVx4MGJceDBjXHgwZFx4MGEKICAgIFx4MDlceDIwXHhhMFx4MGFceDBiXHgwYwpcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBceDA5XHgyMFx4YTBceDBhXHgwYgogICAgIAovXEh7Myw0fS8KICAgIFhZICBBQkNERQogICAgWFkgIFBRUiBTVCAKICAgIAovLlxoezMsNH0uLwogICAgWFkgIEFCICAgIFBRUlMKCi9caCpYXGg/XEgrWVxIP1ovCiAgICA+WE5OTllaCiAgICA+ICBYIE5ZUVoKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICA+WFlaICAgCiAgICA+ICBYIE5ZIFoKCi9cdipYXHY/WVx2K1pcVipceDBhXFYrXHgwYlxWezIsM31ceDBjLwogICAgPlhZXHgwYVpceDBhQVx4MGJOTlx4MGMKICAgID5ceDBhXHgwZFhceDBhWVx4MGFceDBiWlpaXHgwYUFBQVx4MGJOTk5ceDBjCgovKGZvbylcS2Jhci8KICAgIGZvb2JhcgogICAKLyhmb28pKFxLYmFyfGJheikvCiAgICBmb29iYXIKICAgIGZvb2JheiAKCi8oZm9vXEtiYXIpYmF6LwogICAgZm9vYmFyYmF6CgovYWJjXEt8ZGVmXEsvZyxhZnRlcnRleHQKICAgIFhhYmNkZWZnaGkKCi9hYlxLY3xkZVxLZi9nLGFmdGVydGV4dAogICAgWGFiY2RlZmdoaQogICAgCi8oPz1DKS9nLGFmdGVydGV4dAogICAgQUJDREVDQkEKICAgIAovXmFiY1xLL2FmdGVydGV4dAogICAgYWJjZGVmClw9IEV4cGVjdCBubyBtYXRjaAogICAgZGVmYWJjeHl6ICAgCgovXihhKGIpKVwxXGcxXGd7MX1cZy0xXGd7LTF9XGd7LTJ9Wi8KICAgIGFiYWJhYmFiYmJhYlpYWFhYCgovKD88QT50b218Ym9uKS1cZ3tBfS8KICAgIHRvbS10b20KICAgIGJvbi1ib24gCiAgICAKLyheKGF8Ylxney0xfSkpLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGJhY3h4eAoKLyg/fChhYmMpfCh4eXopKVwxLwogICAgYWJjYWJjCiAgICB4eXp4eXogClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjeHl6CiAgICB4eXphYmMgICAKICAgIAovKD98KGFiYyl8KHh5eikpKD8xKS8KICAgIGFiY2FiYwogICAgeHl6YWJjIApcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICB4eXp4eXogCiAKL15YKD81KShhKSg/fChiKXwocSkpKGMpKGQpKFkpLwogICAgWFlhYmNkWQoKL15YKD83KShhKSg/fChifChyKShzKSl8KHEpKShjKShkKShZKS8KICAgIFhZYWJjZFkKCi9eWCg/NykoYSkoP3woYnwoP3wocil8KHQpKShzKSl8KHEpKShjKShkKShZKS8KICAgIFhZYWJjZFkKCi8oPydhYmMnXHcrKTpcazxhYmM+ezJ9LwogICAgYTphYXh5egogICAgYWI6YWJhYnh5egpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGE6YXh5egogICAgYWI6YWJ4eXoKCi8oPydhYmMnXHcrKTpcZ3thYmN9ezJ9LwogICAgYTphYXh5egogICAgYWI6YWJhYnh5egpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGE6YXh5egogICAgYWI6YWJ4eXoKCi9eKD88YWI+YSk/ICg/KDxhYj4pYnxjKSAoPygnYWInKWR8ZSkveAogICAgYWJkCiAgICBjZQoKL14oYS4pXGctMVovCiAgICBhWGFYWgoKL14oYS4pXGd7LTF9Wi8KICAgIGFYYVhaCgovXig/KERFRklORSkgKD88QT4gYSkgKD88Qj4gYikgKSAgKD8mQSkgKD8mQikgL3gKICAgIGFiY2QKCi8oPzxOQU1FPig/Jk5BTUVfUEFUKSlccysoPzxBRERSPig/JkFERFJFU1NfUEFUKSkKICAoPyhERUZJTkUpCiAgKD88TkFNRV9QQVQ+W2Etel0rKQogICg/PEFERFJFU1NfUEFUPlxkKykKICApL3gKICAgIG1ldGNhbGZlIDMzCgovKD8oREVGSU5FKSg/PGJ5dGU+MlswLTRdXGR8MjVbMC01XXwxXGRcZHxbMS05XT9cZCkpXGIoPyZieXRlKShcLig/JmJ5dGUpKXszfS8KICAgIDEuMi4zLjQKICAgIDEzMS4xMTEuMTAuMjA2CiAgICAxMC4wLjAuMApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDEwLjYKICAgIDQ1NS4zLjQuNQoKL1xiKD8mYnl0ZSkoXC4oPyZieXRlKSl7M30oPyhERUZJTkUpKD88Ynl0ZT4yWzAtNF1cZHwyNVswLTVdfDFcZFxkfFsxLTldP1xkKSkvCiAgICAxLjIuMy40CiAgICAxMzEuMTExLjEwLjIwNgogICAgMTAuMC4wLjAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAxMC42CiAgICA0NTUuMy40LjUKCi9eKFx3Kyt8XHMrKykqJC8KICAgIG5vdyBpcyB0aGUgdGltZSBmb3IgYWxsIGdvb2QgbWVuIHRvIGNvbWUgdG8gdGhlIGFpZCBvZiB0aGUgcGFydHkKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICB0aGlzIGlzIG5vdCBhIGxpbmUgd2l0aCBvbmx5IHdvcmRzIGFuZCBzcGFjZXMhCgovKFxkKyspKFx3KS8KICAgIDEyMzQ1YQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDEyMzQ1KwoKL2ErK2IvCiAgICBhYWFiCgovKGErK2IpLwogICAgYWFhYgoKLyhhKyspYi8KICAgIGFhYWIKCi8oW14oKV0rK3xcKFteKCldKlwpKSsvCiAgICAoKGFiYyhhZGUpdWZoKCkoKXgKCi9cKChbXigpXSsrfFwoW14oKV0rXCkpK1wpLwogICAgKGFiYykKICAgIChhYmMoZGVmKXh5eikKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICAoKCgpYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEKCi9eKFteKCldfFwoKD8xKSpcKSkqJC8KICAgIGFiYwogICAgYShiKWMKICAgIGEoYihjKSlkClw9IEV4cGVjdCBubyBtYXRjaCkKICAgIGEoYihjKWQKCi9ePmFiYz4oW14oKV18XCgoPzEpKlwpKSo8eHl6PCQvCiAgID5hYmM+MTIzPHh5ejwKICAgPmFiYz4xKDIpMzx4eXo8CiAgID5hYmM+KDEoMikzKTx4eXo8CgovXig/OigoLikoPzEpXDJ8KXwoKC4pKD8zKVw0fC4pKSQvaQogICAgMTIyMQogICAgU2F0YW5vc2NpbGxhdGVteW1ldGFsbGljc29uYXRhcwogICAgQW1hbmFwbGFuYWNhbmFsUGFuYW1hCiAgICBBYmxld2FzSWVyZUlzYXdFbGJhClw9IEV4cGVjdCBubyBtYXRjaAogICAgVGhlcXVpY2ticm93bmZveAoKL14oXGQrfFwoKD8xKShbKyotXSkoPzEpXCl8LSg/MSkpJC8KICAgIDEyCiAgICAoKCgyKzIpKi0zKS03KQogICAgLTEyClw9IEV4cGVjdCBubyBtYXRjaAogICAgKCgyKzIpKi0zKS03KQoKL14oeCh5fCg/MSl7Mn0peikvCiAgICB4eXoKICAgIHh4eXp4eXp6Clw9IEV4cGVjdCBubyBtYXRjaAogICAgeHh5enoKICAgIHh4eXp4eXp4eXp6CgovKCg8ICg/OiAoPyhSKSBcZCsrICB8IFtePD5dKispIHwgKD8yKSkgKiA+KSkveAogICAgPD4KICAgIDxhYmNkPgogICAgPGFiYyA8MTIzPiBoaWo+CiAgICA8YWJjIDxkZWY+IGhpaj4KICAgIDxhYmM8PmRlZj4KICAgIDxhYmM8PgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIDxhYmMKCi9eYSsoKkZBSUwpLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYWFhYQogICAgCi9hK2I/YysoKkZBSUwpLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYWJjY2MKCi9hK2I/KCpQUlVORSljKygqRkFJTCkvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhYmNjYwoKL2ErYj8oKkNPTU1JVCljKygqRkFJTCkvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhYmNjYwogICAgCi9hK2I/KCpTS0lQKWMrKCpGQUlMKS8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWFiY2NjYWFhYmNjYwoKL14oPzphYWEoKlRIRU4pXHd7Nn18YmJiKCpUSEVOKVx3ezV9fGNjYygqVEhFTilcd3s0fXxcd3szfSkvCiAgICBhYWF4eHh4eHgKICAgIGFhYSsrKysrKyAKICAgIGJiYnh4eHh4CiAgICBiYmIrKysrKyAKICAgIGNjY3h4eHgKICAgIGNjYysrKysgCiAgICBkZGRkZGRkZCAgIAoKL14oYWFhKCpUSEVOKVx3ezZ9fGJiYigqVEhFTilcd3s1fXxjY2MoKlRIRU4pXHd7NH18XHd7M30pLwogICAgYWFheHh4eHh4CiAgICBhYWErKysrKysgCiAgICBiYmJ4eHh4eAogICAgYmJiKysrKysgCiAgICBjY2N4eHh4CiAgICBjY2MrKysrIAogICAgZGRkZGRkZGQgICAKCi9hK2I/KCpUSEVOKWMrKCpGQUlMKS8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWFiY2NjCgovKEEgKEF8QigqQUNDRVBUKXxDKSBEKShFKS94CiAgICBBQgogICAgQUJYCiAgICBBQURFCiAgICBBQ0RFClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUQgCiAgICAgICAgCi9eXFcqKyg/OigoLilcVyorKD8xKVxXKitcMnwpfCgoLilcVyorKD8zKVxXKitcNHxcVyorLlxXKispKVxXKiskL2kKICAgIDEyMjEKICAgIFNhdGFuLCBvc2NpbGxhdGUgbXkgbWV0YWxsaWMgc29uYXRhcyEKICAgIEEgbWFuLCBhIHBsYW4sIGEgY2FuYWw6IFBhbmFtYSEKICAgIEFibGUgd2FzIEkgZXJlIEkgc2F3IEVsYmEuClw9IEV4cGVjdCBubyBtYXRjaAogICAgVGhlIHF1aWNrIGJyb3duIGZveAoKL14oKC4pKD8xKVwyfC4pJC8KICAgIGEKICAgIGFiYQogICAgYWFiYWEgIAogICAgYWJjZGNiYSAKICAgIHBxYWFiYWFxcCAgCiAgICBhYmxld2FzaWVyZWlzYXdlbGJhClw9IEV4cGVjdCBubyBtYXRjaCAgICAgCiAgICByaHViYXJiCiAgICB0aGUgcXVpY2sgYnJvd24gZm94ICAKCi8oYSkoPzw9Yig/MSkpLwogICAgYmF6Clw9IEV4cGVjdCBubyBtYXRjaAogICAgY2F6ICAKICAgIAovKD88PWIoPzEpKShhKS8KICAgIHpiYWF6Clw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhICAKICAgIAovKD88WD5hKSg/PD1iKD8mWCkpLwogICAgYmF6CgovXig/fChhYmMpfChkZWYpKVwxLwogICAgYWJjYWJjCiAgICBkZWZkZWYgClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjZGVmCiAgICBkZWZhYmMgICAKICAgIAovXig/fChhYmMpfChkZWYpKSg/MSkvCiAgICBhYmNhYmMKICAgIGRlZmFiYwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGRlZmRlZgogICAgYWJjZGVmICAgIAoKLyg/OmEoPzxxdW90ZT4gKD88YXBvc3Ryb3BoZT4nKXwoPzxyZWFscXVvdGU+IikpIHxiKD88cXVvdGU+ICg/PGFwb3N0cm9waGU+Jyl8KD88cmVhbHF1b3RlPiIpKSApICg/KCdxdW90ZScpW2Etel0rfFswLTldKykveCxkdXBuYW1lcwogICAgYVwiYWFhYWEKICAgIGJcImFhYWFhIApcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBiXCIxMTExMQoKLyg/Oig/MSl8QikoQSgqRil8QykvCiAgICBBQkNECiAgICBDQ0QKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBDQUQgICAKCi9eKD86KD8xKXxCKShBKCpGKXxDKS8KICAgIENDRAogICAgQkNEIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFCQ0QKICAgIENBRAogICAgQkFEICAgIAoKLyg/Oig/MSl8QikoQSgqQUNDRVBUKVhYfEMpRC8KICAgIEFBRAogICAgQUNECiAgICBCQUQKICAgIEJDRAogICAgQkFYICAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBQ1gKICAgIEFCQyAgIAoKLyg/KERFRklORSkoQSkpQig/MSlDLwogICAgQkFDCgovKD8oREVGSU5FKSgoQSlcMikpQig/MSlDLwogICAgQkFBQwoKLyg/PHBuPiBcKCAoIFteKCldKysgfCAoPyZwbikgKSogXCkgKS94CiAgICAoYWIoY2QpZWYpCgovXig/PWEoKlNLSVApYnxhYykvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWMKICAgIAovXig/PWEoKlBSVU5FKWIpLwogICAgYWIgIApcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBhYwoKL14oPz1hKCpBQ0NFUFQpYikvCiAgICBhYwoKLyg/PmFcS2IpLwogICAgYWIKCi8oKD8+YVxLYikpLwogICAgYWIKCi8oYVxLYikvCiAgICBhYgogICAgCi9eYVxLY3p8YWMvCiAgICBhYwogICAgCi8oPz5hXEtienxhYikvCiAgICBhYiAKCi9eKD8mdCkoPyhERUZJTkUpKD88dD5hXEtiKSkkLwogICAgYWIKCi9eKFteKCldfFwoKD8xKSpcKSkqJC8KICAgIGEoYiljCiAgICBhKGIoYylkKWUgCgovKD9QPEwxPig/UDxMMj4wKSg/UD5MMSl8KD9QPkwyKSkvCiAgICAwCiAgICAwMAogICAgMDAwMCAgCgovKD9QPEwxPig/UDxMMj4wKXwoP1A+TDIpKD9QPkwxKSkvCiAgICAwCiAgICAwMAogICAgMDAwMCAgCgojIFRoaXMgb25lIGRvZXMgZmFpbCwgYXMgZXhwZWN0ZWQsIGluIFBlcmwuIEl0IG5lZWRzIHRoZSBjb21wbGV4IGl0ZW0gYXQgdGhlCiMgZW5kIG9mIHRoZSBwYXR0ZXJuLiBBIHNpbmdsZSBsZXR0ZXIgaW5zdGVhZCBvZiAoQnxEKSBtYWtlcyBpdCBub3QgZmFpbCwgd2hpY2gKIyBJIHRoaW5rIGlzIGEgUGVybCBidWcuCgovQSgqQ09NTUlUKShCfEQpLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFDQUJYCgojIENoZWNrIHRoZSB1c2Ugb2YgbmFtZXMgZm9yIGZhaWx1cmUKCi9eKEEoKlBSVU5FOkEpQnxDKCpQUlVORTpCKUQpL21hcmsKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBQwogICAgQ0IgICAgCiAgICAKLygqTUFSSzpBKSgqU0tJUDpCKShDfFgpL21hcmsKICAgIEMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBECiAgICAgCi9eKEEoKlRIRU46QSlCfEMoKlRIRU46QilEKS9tYXJrClw9IEV4cGVjdCBubyBtYXRjaAogICAgQ0IgICAgCgovXig/OkEoKlRIRU46QSlCfEMoKlRIRU46QilEKS9tYXJrClw9IEV4cGVjdCBubyBtYXRjaAogICAgQ0IgICAgCiAgICAKL14oPz5BKCpUSEVOOkEpQnxDKCpUSEVOOkIpRCkvbWFyawpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIENCICAgIAogICAgCiMgVGhpcyBzaG91bGQgc3VjY2VlZCwgYXMgdGhlIHNraXAgY2F1c2VzIGJ1bXAgdG8gb2Zmc2V0IDEgKHRoZSBtYXJrKS4gTm90ZQojIHRoYXQgd2UgaGF2ZSB0byBoYXZlIHNvbWV0aGluZyBjb21wbGljYXRlZCBzdWNoIGFzIChCfFopIGF0IHRoZSBlbmQgYmVjYXVzZSwKIyBmb3IgUGVybCwgYSBzaW1wbGUgY2hhcmFjdGVyIHNvbWVob3cgY2F1c2VzIGFuIHVud2FudGVkIG9wdGltaXphdGlvbiB0byBtZXNzCiMgd2l0aCB0aGUgaGFuZGxpbmcgb2YgYmFja3RyYWNraW5nIHZlcmJzLgoKL0EoKk1BUks6QSlBKygqU0tJUDpBKShCfFopIHwgQUMveCxtYXJrCiAgICBBQUFDCiAgICAKIyBUZXN0IHNraXBwaW5nIG92ZXIgYSBub24tbWF0Y2hpbmcgbWFyay4KCi9BKCpNQVJLOkEpQSsoKk1BUks6QikoKlNLSVA6QSkoQnxaKSB8IEFDL3gsbWFyawogICAgQUFBQwogICAgCiMgQ2hlY2sgc2hvcnRoYW5kIGZvciBNQVJLLgoKL0EoKjpBKUErKCpTS0lQOkEpKEJ8WikgfCBBQy94LG1hcmsKICAgIEFBQUMKCi8oKjpBKUErKCpTS0lQOkEpKEJ8WikvbWFyawpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFBQUMKCiMgVGhpcyBzaG91bGQgc3VjY2VlZCwgYXMgYSBub24tZXhpc3RlbnQgc2tpcCBuYW1lIGRpc2FibGVzIHRoZSBza2lwLgoKL0EoKk1BUks6QSlBKygqU0tJUDpCKShCfFopIHwgQUMveCxtYXJrCiAgICBBQUFDCgovQSgqTUFSSzpBKUErKCpTS0lQOkIpKEJ8WikgfCBBQygqOkIpL3gsbWFyawogICAgQUFBQwoKIyBDT01NSVQgYXQgdGhlIHN0YXJ0IG9mIGEgcGF0dGVybiBzaG91bGQgYWN0IGxpa2UgYW4gYW5jaG9yLiBBZ2FpbiwgaG93ZXZlciwKIyB3ZSBuZWVkIHRoZSBjb21wbGljYXRpb24gZm9yIFBlcmwuCgovKCpDT01NSVQpKEF8UCkoQnxQKShDfFApLwogICAgQUJDREVGRwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIERFRkdBQkMgIAoKIyBDT01NSVQgaW5zaWRlIGFuIGF0b21pYyBncm91cCBjYW4ndCBzdG9wIGJhY2t0cmFja2luZyBvdmVyIHRoZSBncm91cC4KCi8oXHcrKSg/PmIoKkNPTU1JVCkpXHd7Mn0vCiAgICBhYmJiCgovKFx3KyliKCpDT01NSVQpXHd7Mn0vClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJiYgoKIyBDaGVjayBvcGVuaW5nIHBhcmVucyBpbiBjb21tZW50IHdoZW4gc2Vla2luZyBmb3J3YXJkIHJlZmVyZW5jZS4KCi8oPyZ0KSg/IygpKD8oREVGSU5FKSg/PHQ+YSkpLwogICAgYmFjCgojIENPTU1JVCBzaG91bGQgb3ZlcnJpZGUgVEhFTi4KCi8oPz4oKkNPTU1JVCkoPz55ZXN8bm8pKCpUSEVOKSgqRikpPy8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgeWVzCgovKD8+KCpDT01NSVQpKHllc3xubykoKlRIRU4pKCpGKSk/LwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICB5ZXMKCi9iPygqU0tJUCljLwogICAgYmMKICAgIGFiYwogICAKLygqU0tJUCliYy8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhCgovKCpTS0lQKWIvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYSAKCi8oP1A8YWJuPig/UD1hYm4peHh4fCkrLwogICAgeHh4CgovKD9pOihbXmJdKSkoPzEpLwogICAgYWEKICAgIGFBICAgICAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYgogICAgYUIKICAgIEJhCiAgICBiYQoKL14oPyZ0KSorKD8oREVGSU5FKSg/PHQ+YSkpXHckLwogICAgYWFhYWFhWApcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBhYWFhYWEgCgovXig/JnQpKig/KERFRklORSkoPzx0PmEpKVx3JC8KICAgIGFhYWFhYVgKICAgIGFhYWFhYSAKCi9eKGEpKisoXHcpLwogICAgYWFhYVgKICAgIFlaIApcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBhYWFhCgovXig/OmEpKisoXHcpLwogICAgYWFhYVgKICAgIFlaIApcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBhYWFhCgovXihhKSsrKFx3KS8KICAgIGFhYWFYClw9IEV4cGVjdCBubyBtYXRjaCAKICAgIGFhYWEKICAgIFlaIAoKL14oPzphKSsrKFx3KS8KICAgIGFhYWFYClw9IEV4cGVjdCBubyBtYXRjaCAKICAgIGFhYWEKICAgIFlaIAoKL14oYSk/KyhcdykvCiAgICBhYWFhWAogICAgWVogCgovXig/OmEpPysoXHcpLwogICAgYWFhYVgKICAgIFlaIAoKL14oYSl7Mix9KyhcdykvCiAgICBhYWFhWApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYQogICAgWVogCgovXig/OmEpezIsfSsoXHcpLwogICAgYWFhYVgKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWEKICAgIFlaIAoKLyhhfCkqKD8xKWIvCiAgICBiCiAgICBhYgogICAgYWFiICAKCi8oYSkrKyg/MSliLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiIAogICAgYWFiCgovKGEpKisoPzEpYi8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYgogICAgYWFiICAKCi8oPzEpKD86KGIpKXswfS8KICAgIGIKCi8oZm9vICggXCggKCg/Oig/PiBbXigpXSsgKXwoPzIpKSopIFwpICkgKS94CiAgICBmb28oYmFyKGJheikrYmF6KGJvcCkpCgovKEEgKEF8QigqQUNDRVBUKXxDKSBEKShFKS94CiAgICBBQgoKL1xBLio/KGF8YmMpLwogICAgYmEKCi9cQS4qPyg/OmF8YmMpKysvCiAgICBiYQoKL1xBLio/KGF8YmMpKysvCiAgICBiYQoKL1xBLio/KD86YXxiY3xkKS8KICAgIGJhCgovKD86KGIpKSsrLwogICAgYmVldGxlCgovKD8oPz0oYSgqQUNDRVBUKXopKWEpLwogICAgYQoKL14oYSkoPzEpK2FiLwogICAgYWFhYWIKICAgIAovXihhKSg/MSkrK2FiLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYWFiCgovXig/PWEoKjpNKSlhWi9tYXJrCiAgICBhWmJjCgovXig/ISgqOk0pYilhWi9tYXJrCiAgICBhWmJjCgovKD8oREVGSU5FKShhKSk/Yig/MSkvCiAgICBiYWNrZ2FtbW9uCgovXlxOKy8KICAgIGFiY1xuZGVmCiAgICAKL15cTnsxLH0vCiAgICBhYmNcbmRlZiAKCi8oPyhSKWErfCg/UiliKS8KICAgIGFhYWFiY2RlCgovKD8oUilhK3woKD9SKSliKS8KICAgIGFhYWFiY2RlCgovKCg/KFIpYSt8KD8xKWIpKS8KICAgIGFhYWFiY2RlCgovKCg/KFIxKWErfCg/MSliKSkvCiAgICBhYWFhYmNkZQogICAgCi8oKD8oUilhfCg/MSkpKSovCiAgICBhYWEKCi8oKD8oUilhfCg/MSkpKSsvCiAgICBhYWEgCgovYSgqOmFueSAKbmFtZSkvbWFyawogICAgYWJjCiAgICAKLyg/Pig/JnQpY3woPyZ0KSkoPyhERUZJTkUpKD88dD5hfGIoKlBSVU5FKWMpKS8KICAgIGEKICAgIGJhCiAgICBiYmEgCiAgICAKIyBDaGVja2luZyByZXZpc2VkICgqVEhFTikgaGFuZGxpbmcuCgojIENhcHR1cmUKCi9eLio/IChhKCpUSEVOKWIpIGMveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYmMKCi9eLio/IChhKCpUSEVOKWJ8KCpGKSkgYy94CiAgICBhYWJjCgovXi4qPyAoIChhKCpUSEVOKWIpIHwgKCpGKSApIGMveAogICAgYWFiYwoKL14uKj8gKCAoYSgqVEhFTiliKSApIGMveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYmMKCiMgTm9uLWNhcHR1cmUKCi9eLio/ICg/OmEoKlRIRU4pYikgYy94Clw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFiYwoKL14uKj8gKD86YSgqVEhFTilifCgqRikpIGMveAogICAgYWFiYwoKL14uKj8gKD86ICg/OmEoKlRIRU4pYikgfCAoKkYpICkgYy94CiAgICBhYWJjCgovXi4qPyAoPzogKD86YSgqVEhFTiliKSApIGMveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYmMKCiMgQXRvbWljCgovXi4qPyAoPz5hKCpUSEVOKWIpIGMveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYmMKCi9eLio/ICg/PmEoKlRIRU4pYnwoKkYpKSBjL3gKICAgIGFhYmMKCi9eLio/ICg/PiAoPz5hKCpUSEVOKWIpIHwgKCpGKSApIGMveAogICAgYWFiYwoKL14uKj8gKD8+ICg/PmEoKlRIRU4pYikgKSBjL3gKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWJjCgojIFBvc3Nlc3NpdmUgY2FwdHVyZQoKL14uKj8gKGEoKlRIRU4pYikrKyBjL3gKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWJjCgovXi4qPyAoYSgqVEhFTilifCgqRikpKysgYy94CiAgICBhYWJjCgovXi4qPyAoIChhKCpUSEVOKWIpKysgfCAoKkYpICkrKyBjL3gKICAgIGFhYmMKCi9eLio/ICggKGEoKlRIRU4pYikrKyApKysgYy94Clw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFiYwoKIyBQb3NzZXNzaXZlIG5vbi1jYXB0dXJlCgovXi4qPyAoPzphKCpUSEVOKWIpKysgYy94Clw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFiYwoKL14uKj8gKD86YSgqVEhFTilifCgqRikpKysgYy94CiAgICBhYWJjCgovXi4qPyAoPzogKD86YSgqVEhFTiliKSsrIHwgKCpGKSApKysgYy94CiAgICBhYWJjCgovXi4qPyAoPzogKD86YSgqVEhFTiliKSsrICkrKyBjL3gKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWJjCiAgICAKIyBDb25kaXRpb24gYXNzZXJ0aW9uCgovXig/KD89YSgqVEhFTiliKWFifGFjKS8KICAgIGFjCiAKIyBDb25kaXRpb24KCi9eLio/KD8oPz1hKWF8YigqVEhFTiljKS8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBiYQoKL14uKj8oPzooPyg/PWEpYXxiKCpUSEVOKWMpfGQpLwogICAgYmEKCi9eLio/KD8oPz1hKWEoKlRIRU4pYnxjKS8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYwoKIyBBc3NlcnRpb24KCi9eLiooPz1hKCpUSEVOKWIpLwogICAgYWFiYwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLyg/PmEoKjptKSkvaW1zeCxtYXJrCiAgICBhCgovKD8+KGEpKCo6bSkpL2ltc3gsbWFyawogICAgYQoKLyg/PD1hKCpBQ0NFUFQpYiljLwogICAgeGFjZAoKLyg/PD0oYSgqQUNDRVBUKWIpKWMvCiAgICB4YWNkCgovKD88PShhKCpDT01NSVQpYikpYy8KICAgIHhhYmNkClw9IEV4cGVjdCBubyBtYXRjaCAKICAgIHhhY2QKICAgIAovKD88IWEoKkZBSUwpYiljLwogICAgeGNkCiAgICBhY2QgCgovKD88PWEoKjpOKWIpYy9tYXJrCiAgICB4YWJjZAogICAgCi8oPzw9YSgqUFJVTkUpYiljLwogICAgeGFiY2QgCgovKD88PWEoKlNLSVApYiljLwogICAgeGFiY2QgCgovKD88PWEoKlRIRU4pYiljLwogICAgeGFiY2QgCgovKGEpKD8yKXsyfSguKS8KICAgIGFiY2QKCi8oKk1BUks6QSkoKlBSVU5FOkIpKEN8WCkvbWFyawogICAgQwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEQgCgovKCpNQVJLOkEpKCpQUlVORTpCKShDfFgpL21hcmsKICAgIEMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBEIAoKLygqTUFSSzpBKSgqVEhFTjpCKShDfFgpL21hcmsKICAgIEMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBEIAoKLygqTUFSSzpBKSgqVEhFTjpCKShDfFgpL21hcmssbm9fc3RhcnRfb3B0aW1pemUKICAgIEMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBEIAoKLygqTUFSSzpBKSgqVEhFTjpCKShDfFgpL21hcmsKICAgIEMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBEIAoKIyBUaGlzIHNob3VsZCBmYWlsLCBhcyB0aGUgc2tpcCBjYXVzZXMgYSBidW1wIHRvIG9mZnNldCAzICh0aGUgc2tpcCkuCgovQSgqTUFSSzpBKUErKCpTS0lQKShCfFopIHwgQUMveCxtYXJrClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUFBQwoKIyBTYW1lIAoKL0EoKk1BUks6QSlBKygqTUFSSzpCKSgqU0tJUDpCKShCfFopIHwgQUMveCxtYXJrClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUFBQwoKL0EoKjpBKUErKCpTS0lQKShCfFopIHwgQUMveCxtYXJrClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUFBQwoKIyBUaGlzIHNob3VsZCBmYWlsLCBhcyBhIG51bGwgbmFtZSBpcyB0aGUgc2FtZSBhcyBubyBuYW1lLgoKL0EoKk1BUks6QSlBKygqU0tJUDopKEJ8WikgfCBBQy94LG1hcmsKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBQUFDCgojIEEgY2hlY2sgb24gd2hhdCBoYXBwZW5zIGFmdGVyIGhpdHRpbmcgYSBtYXJrIGFuZCB0aGVtIGJ1bXBpbmcgYWxvbmcgdG8KIyBzb21ldGhpbmcgdGhhdCBkb2VzIG5vdCBldmVuIHN0YXJ0LiBQZXJsIHJlcG9ydHMgdGFncyBhZnRlciB0aGUgZmFpbHVyZXMKIyBoZXJlLCB0aG91Z2ggaXQgZG9lcyBub3Qgd2hlbiB0aGUgaW5kaXZpZHVhbCBsZXR0ZXJzIGFyZSBtYWRlIGludG8gc29tZXRoaW5nCiMgbW9yZSBjb21wbGljYXRlZC4KCi9BKCo6QSlCfFhYKCo6QilZL21hcmsKICAgIEFBQkMKICAgIFhYWVogClw9IEV4cGVjdCBubyBtYXRjaAogICAgWEFRUSAgCiAgICBYQVFRWFpaICAKICAgIEFYUVFRIAogICAgQVhYUVFRIAogICAgCi9eKEEoKlRIRU46QSlCfEMoKlRIRU46QilEKS9tYXJrCiAgICBBQgogICAgQ0QKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBQwogICAgQ0IgICAgCiAgICAKL14oQSgqUFJVTkU6QSlCfEMoKlBSVU5FOkIpRCkvbWFyawogICAgQUIKICAgIENEClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUMKICAgIENCICAgIAogICAgCiMgQW4gZW1wdHkgbmFtZSBkb2VzIG5vdCBwYXNzIGJhY2sgYW4gZW1wdHkgc3RyaW5nLiBJdCBpcyB0aGUgc2FtZSBhcyBpZiBubwojIG5hbWUgd2VyZSBnaXZlbi4KCi9eKEEoKlBSVU5FOilCfEMoKlBSVU5FOkIpRCkvbWFyawogICAgQUIKICAgIENEIAoKIyBQUlVORSBnb2VzIHRvIG5leHQgYnVtcGFsb25nOyBDT01NSVQgZG9lcyBub3QuCiAgICAKL0EoKlBSVU5FOkEpQi9tYXJrCiAgICBBQ0FCCgojIE1hcmsgbmFtZXMgY2FuIGJlIGR1cGxpY2F0ZWQuCgovQSgqOkEpQnxYKCo6QSlZL21hcmsKICAgIEFBQkMKICAgIFhYWVogCiAgICAKL2IoKjptKWZ8YSgqOm4pdy9tYXJrCiAgICBhdyAKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgYWJjCgovYigqOm0pZnxhdy9tYXJrCiAgICBhYmF3Clw9IEV4cGVjdCBubyBtYXRjaCAKICAgIGFiYwogICAgYWJheCAKCi9BKCpNQVJLOkEpQSsoKlNLSVA6QikoQnxaKSB8IEFBQy94LG1hcmsKICAgIEFBQUMKCi8oPz1hKCpNQVJLOkEpYikuLngvbWFyawogICAgYWJ4eQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFicHEgIAoKLyg/PWEoKk1BUks6QSliKS4uKCo6WSl4L21hcmsKICAgIGFieHkKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYnBxICAKCi8oPz1hKCpQUlVORTpBKWIpLi54L21hcmsKICAgIGFieHkKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYnBxICAKCi8oPz1hKCpQUlVORTpBKWIpLi4oKjpZKXgvbWFyawogICAgYWJ4eQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFicHEgIAoKLyg/PWEoKlRIRU46QSliKS4ueC9tYXJrCiAgICBhYnh5Clw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJwcSAgCgovKD89YSgqVEhFTjpBKWIpLi4oKjpZKXgvbWFyawogICAgYWJ4eQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFicHEgIAoKLyhhbm90aGVyKT8oXDE/KXRlc3QvCiAgICBoZWxsbyB3b3JsZCB0ZXN0CgovKGFub3RoZXIpPyhcMSspdGVzdC8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBoZWxsbyB3b3JsZCB0ZXN0CgovKGEoKkNPTU1JVCliKXswfWEoPzEpfGFhYy8KICAgIGFhYwoKLygoPzphPykqKSpjLwogICAgYWFjICAgCgovKCg/PmE/KSopKmMvCiAgICBhYWMgICAKCi8oPz4uKj9hKSg/PD1iYSkvCiAgICBhYmEKCi8oPzouKj9hKSg/PD1iYSkvCiAgICBhYmEKCi8oPz4uKj9hKWIvcwogICAgYWFiCgovKD8+Lio/YSliLwogICAgYWFiCgovKD8+XmEpYi9zClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFiCgovKD8+Lio/KSg/PD0oYWJjZCl8KHd4eXopKS8KICAgIGFscGhhYmV0YWJjZAogICAgZW5kaW5nd3h5eiAKCi8oPz4uKikoPzw9KGFiY2QpfCh3eHl6KSkvCiAgICBhbHBoYWJldGFiY2QKICAgIGVuZGluZ3d4eXogCgovKD8+LiopZm9vLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY2Rmb294eXoKICAgIAovKD8+Lio/KWZvby8KICAgIGFiY2Rmb294eXoKCi8oPzooYSgqUFJVTkUpYikpezB9KD86KD8xKXxhYykvCiAgICBhYwogICAgCi8oPzooYSgqU0tJUCliKSl7MH0oPzooPzEpfGFjKS8KICAgIGFjIAoKLyg/PD0oKlNLSVApYWMpYS8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYQoKL0EoKk1BUks6QSlBKygqU0tJUDpCKShCfFopIHwgQUMveCxtYXJrCiAgICBBQUFDCgovYSgqU0tJUDptKXh8YWMoKjpuKSgqU0tJUDpuKWR8YWMvbWFyawogICAgYWNhY2QKCi9BKCpTS0lQOm0peHxBKCpTS0lQOm4peHxBQi9tYXJrCiAgICBBQgoKLygoKlNLSVA6cilkKXswfWEoKlNLSVA6bSl4fGFjKCo6bil8YWMvbWFyawogICAgYWNhY2QKCiMgVGVzdHMgdGhhdCB0cnkgdG8gZmlndXJlIG91dCBob3cgUGVybCB3b3Jrcy4gTXkgaHlwb3RoZXNpcyBpcyB0aGF0IHRoZSBmaXJzdAojIHZlcmIgdGhhdCBpcyBiYWNrdHJhY2tlZCBvbnRvIGlzIHRoZSBvbmUgdGhhdCBhY3RzLiBUaGlzIHNlZW1zIHRvIGJlIHRoZSBjYXNlCiMgYWxtb3N0IGFsbCB0aGUgdGltZSwgYnV0IHRoZXJlIGlzIG9uZSBleGNlcHRpb24gdGhhdCBpcyBwZXJoYXBzIGEgYnVnLgoKIyBUaGlzIG1hdGNoZXMgImFhYWFjIjsgZWFjaCBQUlVORSBhZHZhbmNlcyBvbmUgY2hhcmFjdGVyIHVudGlsIHRoZSBzdWJqZWN0IG5vCiMgbG9uZ2VyIHN0YXJ0cyB3aXRoIDUgJ2Ency4KCi9hYWFhYSgqUFJVTkUpYnxhK2MvCiAgICBhYWFhYWFjCgojIFB1dHRpbmcgU0tJUCBpbiBmcm9udCBvZiBQUlVORSBtYWtlcyBubyBkaWZmZXJlbmNlLCBhcyBpdCBpcyBuZXZlcgojIGJhY2t0cmFja2VkIG9udG8sIHdoZXRoZXIgb3Igbm90IGl0IGhhcyBhIGxhYmVsLgoKL2FhYWFhKCpTS0lQKSgqUFJVTkUpYnxhK2MvCiAgICBhYWFhYWFjCgovYWFhYWEoKlNLSVA6TikoKlBSVU5FKWJ8YStjLwogICAgYWFhYWFhYwoKL2FhYWEoKjpOKWEoKlNLSVA6TikoKlBSVU5FKWJ8YStjLwogICAgYWFhYWFhYwoKIyBQdXR0aW5nIFRIRU4gaW4gZnJvbnQgbWFrZXMgbm8gZGlmZmVyZW5jZS4KICAgIAovYWFhYWEoKlRIRU4pKCpQUlVORSlifGErYy8KICAgIGFhYWFhYWMKIAojIEhvd2V2ZXIsIHB1dHRpbmcgQ09NTUlUIGluIGZyb250IG9mIHRoZSBwcnVuZSBjaGFuZ2VzIGl0IHRvICJubyBtYXRjaCIuIEkgCiMgdGhpbmsgdGhpcyBpcyBpbmNvbnNpc3RlbnQgYW5kIHBvc3NpYmx5IGEgYnVnLiBGb3IgdGhlIG1vbWVudCwgcnVubmluZyB0aGlzCiMgdGVzdCBpcyBtb3ZlZCBvdXQgb2YgdGhlIFBlcmwtY29tcGF0aWJsZSBmaWxlLiAKCi9hYWFhYSgqQ09NTUlUKSgqUFJVTkUpYnxhK2MvCiAgICAKIyBPSywgbGV0cyBwbGF5IHRoZSBzYW1lIGdhbWUgYWdhaW4gdXNpbmcgU0tJUCBpbnN0ZWFkIG9mIFBSVU5FLgoKIyBUaGlzIG1hdGNoZXMgImFjIiBiZWNhdXNlIFNLSVAgZm9yY2VzIHRoZSBuZXh0IG1hdGNoIHRvIHN0YXJ0IG9uIHRoZQojIHNpeHRoICJhIi4gCgovYWFhYWEoKlNLSVApYnxhK2MvCiAgICBhYWFhYWFjCiAKIyBQdXR0aW5nIFBSVU5FIGluIGZyb250IG1ha2VzIG5vIGRpZmZlcmVuY2UuIAoKL2FhYWFhKCpQUlVORSkoKlNLSVApYnxhK2MvCiAgICBhYWFhYWFjCgojIFB1dHRpbmcgVEhFTiBpbiBmcm9udCBtYWtlcyBubyBkaWZmZXJlbmNlLiAKCi9hYWFhYSgqVEhFTikoKlNLSVApYnxhK2MvCiAgICBhYWFhYWFjCgojIEluIHRoaXMgY2FzZSwgbmVpdGhlciBkb2VzIENPTU1JVC4gVGhpcyBzdGlsbCBtYXRjaGVzICJhYyIuIAoKL2FhYWFhKCpDT01NSVQpKCpTS0lQKWJ8YStjLwogICAgYWFhYWFhYwogICAgCiMgVGhpcyBnaXZlcyAibm8gbWF0Y2giLCBhcyBleHBlY3RlZC4gCgovYWFhYWEoKkNPTU1JVClifGErYy8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYWFhYWFjCgojIC0tLS0gVGVzdHMgdXNpbmcgVEhFTiAtLS0tCgojIFRoaXMgbWF0Y2hlcyAiYWFhYWFhYyIsIGFzIGV4cGVjdGVkLiAKCi9hYWFhYSgqVEhFTilifGErYy8KICAgIGFhYWFhYWMKCiMgUHV0dGluZyBTS0lQIGluIGZyb250IG1ha2VzIG5vIGRpZmZlcmVuY2UuIAoKL2FhYWFhKCpTS0lQKSgqVEhFTilifGErYy8KICAgIGFhYWFhYWMKICAgIAojIFB1dHRpbmcgUFJVTkUgaW4gZnJvbnQgbWFrZXMgbm8gZGlmZmVyZW5jZS4gCgovYWFhYWEoKlBSVU5FKSgqVEhFTilifGErYy8KICAgIGFhYWFhYWMKICAgIAojIFB1dHRpbmcgQ09NTUlUIGluIGZyb250IG1ha2VzIG5vIGRpZmZlcmVuY2UuIAoKL2FhYWFhKCpDT01NSVQpKCpUSEVOKWJ8YStjLwogICAgYWFhYWFhYwogICAgCiMgRW5kIG9mICJwcmlvcml0eSIgdGVzdHMgIAoKL2FhYWFhKCo6bSkoKlBSVU5FOm0pKCpTS0lQOm0pbXxhKy8KICAgIGFhYWFhYQoKL2FhYWFhKCo6bSkoKk1BUks6bSkoKlBSVU5FKSgqU0tJUDptKW18YSsvCiAgICBhYWFhYWEKCi9hYWFhYSgqOm4pKCpQUlVORTptKSgqU0tJUDptKW18YSsvCiAgICBhYWFhYWEKCi9hYWFhYSgqOm4pKCpNQVJLOm0pKCpQUlVORSkoKlNLSVA6bSltfGErLwogICAgYWFhYWFhCgovYSgqTUFSSzpBKWFhKCpQUlVORTpBKWEoKlNLSVA6QSlifGErYy8KICAgIGFhYWFjCgovYSgqTUFSSzpBKWFhKCpNQVJLOkEpYSgqU0tJUDpBKWJ8YStjLwogICAgYWFhYWMKCi9hYWEoKlBSVU5FOkEpYSgqU0tJUDpBKWJ8YStjLwogICAgYWFhYWMKCi9hYWEoKk1BUks6QSlhKCpTS0lQOkEpYnxhK2MvCiAgICBhYWFhYwoKL2EoKjptKWEoKkNPTU1JVCkoKlNLSVA6bSlifGErYy9tYXJrCiAgICBhYWFhYWFjCgovLj8oYXxiKCpUSEVOKWMpLwogICAgYmEKCi8oYSgqQ09NTUlUKWIpY3xhYmQvCiAgICBhYmMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmQKCi8oPz1hKCpDT01NSVQpYilhYmN8YWJkLwogICAgYWJjCiAgICBhYmQKCi8oPz5hKCpDT01NSVQpYiljfGFiZC8KICAgIGFiYwogICAgYWJkCgovYSg/PWIoKkNPTU1JVCljKVteZF18YWJkLwogICAgYWJjClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJkCgovYSg/PWJjKS58YWJkLwogICAgYWJkCiAgICBhYmMgCiAgICAKL2EoPz5iKCpDT01NSVQpYylkfGFiZC8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmNlYWJkIAoKL2EoPz5iYylkfGFiZC8KICAgIGFiY2VhYmQgCgovKD8+YSgqQ09NTUlUKWIpY3xhYmQvCiAgICBhYmQKCi8oPz5hKCpDT01NSVQpYylkfGFiZC8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmQKCi8oKD89YSgqQ09NTUlUKWIpYWJ8YWMpezB9KD86KD8xKXxhKGMpKS8KICAgIGFjIAogICAgCiMgVGhlc2UgdGVzdHMgd2VyZSBmb3JtZXJseSBpbiB0ZXN0IDIsIGJ1dCBjaGFuZ2VzIGluIFBDUkUgYW5kIFBlcmwgaGF2ZQojIG1hZGUgdGhlbSBjb21wYXRpYmxlLiAKICAgIAovXihhKT8oPygxKWF8YikrJC8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhCgovQSgqUFJVTkU6QSlBKygqU0tJUDpBKShCfFopIHwgQUMveCxtYXJrClw9IEV4cGVjdCBubyBtYXRjaAogICAgQUFBQwoKL14oKGFiY3xhYmN4KSgqVEhFTil5fGFiY2QpLwogICAgYWJjZApcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBhYmN4eSAKICAgIAovXigoeWVzfG5vKSgqVEhFTikoKkYpKT8vClw9IEV4cGVjdCBubyBtYXRjaAogICAgeWVzCgovKEEgKC4qKSAgIEM/ICgqVEhFTikgIHwgQSBEKSAoKkZBSUwpL3gKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBYmNkQ0JlZmdCaGlCcXoKCi8oQSAoLiopICAgQz8gKCpUSEVOKSAgfCBBIEQpIHoveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDQmVmZ0JoaUJxegoKLyhBICguKikgICBDPyAoKlRIRU4pICB8IEEgRCkgXHMqICgqRkFJTCkveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDQmVmZ0JoaUJxegoKLyhBICguKikgICBDPyAoKlRIRU4pICB8IEEgRCkgXHMqIHoveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDQmVmZ0JoaUJxegoKLyhBICguKikgICAoPzpDfCkgKCpUSEVOKSAgfCBBIEQpICgqRkFJTCkveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDQmVmZ0JoaUJxegoKLyhBICguKikgICAoPzpDfCkgKCpUSEVOKSAgfCBBIEQpIHoveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDQmVmZ0JoaUJxegoKLyhBICguKikgICBDezAsNn0gKCpUSEVOKSAgfCBBIEQpICgqRkFJTCkveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDQmVmZ0JoaUJxegoKLyhBICguKikgICBDezAsNn0gKCpUSEVOKSAgfCBBIEQpIHoveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDQmVmZ0JoaUJxegoKLyhBICguKikgICAoQ0UpezAsNn0gKCpUSEVOKSAgfCBBIEQpICgqRkFJTCkveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDRUJlZmdCaGlCcXoKCi8oQSAoLiopICAgKENFKXswLDZ9ICgqVEhFTikgIHwgQSBEKSB6L3gKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBYmNkQ0VCZWZnQmhpQnF6CgovKEEgKC4qKSAgIChDRSopezAsNn0gKCpUSEVOKSAgfCBBIEQpICgqRkFJTCkveApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEFiY2RDQmVmZ0JoaUJxegoKLyhBICguKikgICAoQ0UqKXswLDZ9ICgqVEhFTikgIHwgQSBEKSB6L3gKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBBYmNkQ0JlZmdCaGlCcXoKCi8oPz1hKCpDT01NSVQpYnxhYylhY3xhYy8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYwoKLyg/PWEoKkNPTU1JVClifChhYykpIGFjIHwgKGEpYy94Clw9IEV4cGVjdCBubyBtYXRjaAogICAgYWMKCiMgLS0tLQoKLyg/KD8hYigqVEhFTilhKWJufGJubikvCiAgICBibm4gCgovKD8hYigqU0tJUClhKWJufGJubi8KICAgIGJubgogICAgCi8oPyg/IWIoKlNLSVApYSlibnxibm4pLwogICAgYm5uIAoKLyg/IWIoKlBSVU5FKWEpYm58Ym5uLwogICAgYm5uCiAgICAKLyg/KD8hYigqUFJVTkUpYSlibnxibm4pLwogICAgYm5uIAogICAKLyg/IWIoKkNPTU1JVClhKWJufGJubi8KICAgIGJubgogICAgCi8oPyg/IWIoKkNPTU1JVClhKWJufGJubikvCiAgIGJubiAKCi8oPz1iKCpTS0lQKWEpYm58Ym5uLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGJubgoKLyg/PWIoKlRIRU4pYSlibnxibm4vCiAgICBibm4KICAgIAovXig/IWEoKlNLSVApYikvCiAgICBhYwoKL14oPyFhKCpTS0lQKWIpLi4vCiAgICBhY2QKCi8oPyFhKCpTS0lQKWIpLi4vCiAgICBhY2QKCi9eKD8oPyFhKCpTS0lQKWIpKS8KICAgIGFjCgovXig/IWEoKlBSVU5FKWIpLi4vCiAgICBhY2QKCi8oPyFhKCpQUlVORSliKS4uLwogICAgYWNkCgovKD8hYSgqQ09NTUlUKWIpYWN8Y2QvCiAgICBhYwoKL1xBLio/KD86YXxiYykvCiAgICBiYQoKL14oQSgqVEhFTilCfEMoKlRIRU4pRCkvCiAgICBDRCAgICAgICAgICAgCgovKCo6bShtKSg/JnkpKD8oREVGSU5FKSg/PHk+YikpL21hcmsKICAgIGFiYwoKLygqUFJVTkU6bShtKSg/JnkpKD8oREVGSU5FKSg/PHk+YikpL21hcmsKICAgIGFiYwoKLygqU0tJUDptKG0pKD8meSkoPyhERUZJTkUpKD88eT5iKSkvbWFyawogICAgYWJjCgovKCpUSEVOOm0obSkoPyZ5KSg/KERFRklORSkoPzx5PmIpKS9tYXJrCiAgICBhYmMKCi9eXGQqXHd7NH0vCiAgICAxMjM0Clw9IEV4cGVjdCBubyBtYXRjaAogICAgMTIzIAoKL15bXmJdKlx3ezR9LwogICAgYWFhYQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYSAgICAgCgovXlteYl0qXHd7NH0vaQogICAgYWFhYQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFhYSAgICAgCgovXmEqXHd7NH0vCiAgICBhYWFhClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhICAgICAKCi9eYSpcd3s0fS9pCiAgICBhYWFhClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhICAgICAKCi8oPzooPzxuPmZvbyl8KD88bj5iYXIpKVxrPG4+L2R1cG5hbWVzCiAgICBmb29mb28KICAgIGJhcmJhcgoKLyg/PG4+QSkoPzooPzxuPmZvbyl8KD88bj5iYXIpKVxrPG4+L2R1cG5hbWVzCiAgICBBZm9vQQogICAgQWJhckEgIApcPSBFeHBlY3Qgbm8gbWF0Y2ggCiAgICBBZm9vZm9vCiAgICBBYmFyYmFyCgovXihcZCspXHMrSU5ccytTT0FccysoXFMrKVxzKyhcUyspXHMqXChccyokLwogICAgMSBJTiBTT0Egbm9uLXNwMSBub24tc3AyKAoKL14gKD86KD88QT5BKXwoPydCJ0IpKD88QT5BKSkgKD8oJ0EnKXgpICg/KDxCPil5KSQveCxkdXBuYW1lcwogICAgQXgKICAgIEJBeHkgCiAgICAKL15BXHhaLwogICAgQVwwWiAKCi9eQVxvezEyM31CLwogICAgQVwxMjNCCgovIF4gYSArICsgYiAkIC94CiAgICBhYWFhYgogICAgCi8gXiBhICsgI2NvbW1lbnQKICArIGIgJCAveAogICAgYWFhYWIKICAgIAovIF4gYSArICNjb21tZW50CiAgI2NvbW1lbnQKICArIGIgJCAveAogICAgYWFhYWIKICAgIAovIF4gKD8+IGEgKyApIGIgJCAveAogICAgYWFhYWIgCgovIF4gKCBhICsgKSArICsgXHcgJCAveAogICAgYWFhYWIgCgovKD86YVxLYikqKy9hZnRlcnRleHQKICAgIGFiYWJjCgovKD8+YVxLYikqL2FmdGVydGV4dAogICAgYWJhYmMKCi8oPzphXEtiKSovYWZ0ZXJ0ZXh0CiAgICBhYmFiYwoKLyhhXEtiKSorL2FmdGVydGV4dAogICAgYWJhYmMKCi8oYVxLYikqL2FmdGVydGV4dAogICAgYWJhYmMKCi8oPzp4fCg/Oih4eHx5eSkrfHh8eHx4fHh8eCl8YXxhfGEpYmMvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWNiCgovXEEoPzpbXlwiXSsrfFwiKD86W15cIl0qK3xcIlwiKSorXCIpKysvCiAgICBOT04gUVVPVEVEIFwiUVVPVFwiXCJFRFwiIEFGVEVSIFwiTk9UIE1BVENIRUQKCi9cQSg/OlteXCJdKyt8XCIoPzpbXlwiXSsrfFwiXCIpKitcIikrKy8KICAgIE5PTiBRVU9URUQgXCJRVU9UXCJcIkVEXCIgQUZURVIgXCJOT1QgTUFUQ0hFRAoKL1xBKD86W15cIl0rK3xcIig/OlteXCJdKyt8XCJcIikrK1wiKSsrLwogICAgTk9OIFFVT1RFRCBcIlFVT1RcIlwiRURcIiBBRlRFUiBcIk5PVCBNQVRDSEVECgovXEEoW15cIjFdKyt8W1wiMl0oW15cIjNdKit8W1wiNF1bXCI1XSkqK1tcIjZdKSsrLwogICAgTk9OIFFVT1RFRCBcIlFVT1RcIlwiRURcIiBBRlRFUiBcIk5PVCBNQVRDSEVECgovXlx3Kyg/PlxzKikoPzw9XHcpLwogICAgdGVzdCB0ZXN0CgovKD9QPHNhbWU+YSkoP1A8c2FtZT5iKS9nLGR1cG5hbWVzCiAgICBhYmJhYmEKCi8oP1A8c2FtZT5hKSg/UDxzYW1lPmIpKD9QPXNhbWUpL2csZHVwbmFtZXMKICAgIGFiYmFiYQoKLyg/UD1zYW1lKT8oP1A8c2FtZT5hKSg/UDxzYW1lPmIpL2csZHVwbmFtZXMKICAgIGFiYmFiYQoKLyg/Oig/UD1zYW1lKT8oPzooP1A8c2FtZT5hKXwoP1A8c2FtZT5iKSkoP1A9c2FtZSkpKy9nLGR1cG5hbWVzCiAgICBiYmJhYWFiYWFiYgoKLyg/Oig/UD1zYW1lKT8oPzooP1A9c2FtZSkoP1A8c2FtZT5hKSg/UD1zYW1lKXwoP1A9c2FtZSk/KD9QPHNhbWU+YikoP1A9c2FtZSkpezJ9KD9QPXNhbWUpKD9QPHNhbWU+YykoP1A9c2FtZSkpezJ9KD9QPHNhbWU+eik/L2csZHVwbmFtZXMKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBiYmJhYWFjY2NjYWFhYmJiY2MKCi8oP1A8TmFtZT5hKT8oP1A8TmFtZTI+Yik/KD8oPE5hbWU+KWN8ZCkqbC8KICAgIGFjbAogICAgYmRsCiAgICBhZGwKICAgIGJjbCAgICAKCi9cc2FiYy8KICAgIFx4ezBifWFiYwoKL1tcUWFdXEVdKy8KICAgIGFhXV0KCi9bXFFdYVxFXSsvCiAgICBhYV1dCgovQSgoKCgoKCgoYSkpKSkpKSkpXDhCLyAKICAgIEFhYUIKCi9BKCgoKCgoKCgoYSkpKSkpKSkpKVw5Qi8gCiAgICBBYWFCCiAgICAKL0FbXDhcOV1CLwogICAgQThCCiAgICBBOUIgIAoKLyh8YWIpKj9kLwogICBhYmQKICAgeHlkIAoKLyg/OigoYWJjZCkpfCgoKD86KD86KD86KD86YWJjfCg/OmFiY2RlZikpKSliKWFiY2RlZmdoaSlhYmMpfCgoKkFDQ0VQVCkpKS8KICAgIDEyMzRhYmNkCgovKFwyfGEpKFwxKS8KICAgIGFhYQoKLyhcMikoXDEpLwoKL1oqKHxkKil7MjE2fS8KCi8oPzEpKD8jPycpezh9KGEpLwogICAgYmFhYWFhYWFhYWMKCi8oKCgoKCgoKCgoKCh4KSkpKSkpKSkpKSkpXDEyLwogICAgeHgKCi9BW1w4XUJbXDldQy8KICAgIEE4QjlDCgovKD8xKSgpKCgoKCgoXDErKykpXHg4NSkrKXwpKS8KICAgIFx4ODVceDg1CgovKD98KFxrJ1BtJyl8KD8nUG0nKSkvCiAgICBhYmNkCgovKD98KGFhYSl8KGIpKVxnezF9LwogICAgYWFhYWFhCiAgICBiYiAKCi8oP3woYWFhKXwoYikpKD8xKS8KICAgIGFhYWFhYQogICAgYmFhYSAKXD0gRXhwZWN0IG5vIG1hdGNoIAogICAgYmIgCgovKD98KGFhYSl8KGIpKS8KICAgIHhhYWEKICAgIHhiYyAKCi8oP3woPydhJ2FhYSl8KD8nYSdiKSlcaydhJy8KICAgIGFhYWFhYQogICAgYmIgCgovKD98KD8nYSdhYWEpfCg/J2EnYikpKD8nYSdjY2NjKVxrJ2EnL2R1cG5hbWVzCiAgICBhYWFjY2NjYWFhCiAgICBiY2NjY2IgCgojIC94IGRvZXMgbm90IGFwcGx5IHRvIE1BUksgbGFiZWxzIAoKL3ggKCpNQVJLOmFiIGNkICMgY29tbWVudAplZikgeC94LG1hcmsKICAgIGF4eHoKCi8oPzw9YShCKXswfWMpWC8KICAgIGFjWAoKLyg/PERFRklORT5iKSg/KERFRklORSkoYSspKSg/JkRFRklORSkvICAgICAgICAgIAogICAgYmJiYiAKXD0gRXhwZWN0IG5vIG1hdGNoICAgICAKICAgIGJhYWFiCgovKD89LipbQS1aXSkoPz0uKlthLXpdKSg/PS4qWzAtOV0pKD89LipbLDs6XSkoPz0uezgsMTZ9KSg/IS4qW1xzXSkvCiAgICBcICAgRnJlZDowOTkKCi8oPz0uKlgpWCQvIAogICAgXCAgWAoKLyg/cykoPz0uKj8pYi8KICAgIGFhYmMKCi8oWikoYSlcMnsxLDJ9Pyg/LWkpXDFYL2kKICAgIFphQUFaWAoKLyg/J2MnKVhYKD8nWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlDbCcpLwoKL1tzWzpkaWdpdDpdXEUtSF0rLwogICAgczA5LUgKCi9bc1s6ZGlnaXQ6XVxRXEUtSF0rLwogICAgczA5LUgKCi9hKyg/OnxiKWEvCiAgICBhYWFhCgovWD8oUnx8KXszMzM1fS8KCi8oPzEpKEEoKkNPTU1JVCl8QilELwogICAgQUJECiAgICBYQUJECiAgICBCQUQKICAgIEFCWEFCRCAgClw9IEV4cGVjdCBubyBtYXRjaCAKICAgIEFCWCAKCi8oPyhERUZJTkUpKD88bT4gMT8gKD89KD88Y29uZD4yKT8pIDEgMiAoPygnY29uZCcpfDMpKSkKICAgIFxBCiAgICAoKQogICAgKD8mbSkKICAgIFxaL3gKICAgIDEyMwoKL14oPzogCig/OiBBfCAoMT8gKD89KD88Y29uZD4yKT8pICgxKSAyICg/KCdjb25kJyl8MykpICkKKFopCikrJC94CiAgICBBWjEyM1oKXD0gRXhwZWN0IG5vIG1hdGNoICAgICAKICAgIEFaMTJaIAogICAgCi9eICg/KERFRklORSkgKCAoPyEoYSlcMmIpLi4pICkgICAoKSg/MSkgIC94CiAgICBhY2IKXD0gRXhwZWN0IG5vIG1hdGNoICAgICAKICAgIGFhYgogICAgCi8oPz5hYnxhYmFiKXsxLDV9P00vCiAgICBhYmFiYWJhYmFiYWJhYmFiYWJhYmFiTQoKLyg/PmFifGFiYWIpezJ9P00vCiAgICBhYmFiYWJNCgovKCg/KD89KGEpKWEpK2spLwogICAgYmJhawoKLygoPyg/PShhKSlhfCkraykvCiAgICBiYmFrCgovKD8oPyEoYikpYXxiKStrLwogICAgYWJhYmJhbGJiYWRhYmFrCgovKD8hKGIpKWN8Yi8KICAgIEFiCiAgICBBYyAKCi8oPz0oYikpYnxjLwogICAgQWIKICAgIEFjIAoKL14oLnwoLikoPzEpXDIpJC8KICAgIGEKICAgIGFiYQogICAgYWJjYmEKICAgIGFiYWJhCiAgICBhYmNkY2JhCgovXigoLikoPzEpXDJ8Lj8pJC8KICAgIGEKICAgIGFiYQogICAgYWJiYQogICAgYWJjYmEKICAgIGFiYWJhCiAgICBhYmNjYmEKICAgIGFiY2RjYmEKICAgIGFiY2RkY2JhCgovXiguKShcMXxhKD8yKSkvCiAgICBiYWIKCi9eKC58KC4pKD8xKT9cMikkLwogICAgYWJjYmEKICAgIAovXig/KD89KGEpKWFiY3xkZWYpLwogICAgYWJjCgovXig/KD8hKGEpKWRlZnxhYmMpLwogICAgYWJjCgovXig/KD89KGEpKCpBQ0NFUFQpKWFiY3xkZWYpLwogICAgYWJjCgovXig/KD8hKGEpKCpBQ0NFUFQpKWRlZnxhYmMpLwogICAgYWJjCgovXig/MSlcZHszfShhKS8KICAgIGExMjNhCgojIFRoaXMgcGF0dGVybiB1c2VzIGEgbG90IG9mIG5hbWVkIHN1YnBhdHRlcm5zIGluIG9yZGVyIHRvIG1hdGNoIGVtYWlsCiMgYWRkcmVzc2VzIGluIHZhcmlvdXMgZm9ybWF0cy4gSXQncyBhIGhlYXZ5IHRlc3QgZm9yIG5hbWVkIHN1YnBhdHRlcm5zLiBJbiB0aGUKIyA8YXRleHQ+IGdyb3VwLCBzbGFzaCBpcyBjb2RlZCBhcyBceHsyZn0gc28gdGhhdCB0aGlzIHBhdHRlcm4gY2FuIGFsc28gYmUKIyBwcm9jZXNzZWQgYnkgcGVybHRlc3Quc2gsIHdoaWNoIGRvZXMgbm90IGNhdGVyIGZvciBhbiBlc2NhcGVkIGRlbGltaXRlcgojIHdpdGhpbiB0aGUgcGF0dGVybi4gJCB3aXRoaW4gdGhlIHBhdHRlcm4gbXVzdCBhbHNvIGJlIGVzY2FwZWQuIEFsbCAkIGFuZCBACiMgY2hhcmFjdGVycyBpbiBzdWJqZWN0IHN0cmluZ3MgYXJlIGVzY2FwZWQgc28gdGhhdCBQZXJsIGRvZXNuJ3QgaW50ZXJwcmV0IHRoZW0KIyBhcyB2YXJpYWJsZSBpbnNlcnRpb25zIGFuZCAiIGNoYXJhY3RlcnMgbXVzdCBhbHNvIGJlIGVzY2FwZWQgZm9yIFBlcmwuCgojIFRoaXMgc2V0IG9mIHN1YnBhdHRlcm5zIGlzIG1vcmUgb3IgbGVzcyBhIGRpcmVjdCB0cmFuc2xpdGVyYXRpb24gb2YgdGhlIEJORgojIGRlZmluaXRpb25zIGluIFJGQzI4MjIsIHdpdGhvdXQgYW55IG9mIHRoZSBvYnNvbGV0ZSBmZWF0dXJlcy4gVGhlIGFkZGl0aW9uIG9mCiMgYSBwb3NzZXNzaXZlICsgdG8gdGhlIGRlZmluaXRpb24gb2YgPHBocmFzZT4gcmVkdWNlZCB0aGUgbWF0Y2ggbGltaXQgaW4gUENSRTIKIyBmcm9tIG92ZXIgNSBtaWxsaW9uIHRvIGp1c3QgdW5kZXIgNDAwLCBhbmQgZWxpbWluYXRlZCBhIHZlcnkgbm90aWNlYWJsZSBkZWxheQojIHdoZW4gdGhpcyBmaWxlIHdhcyBwYXNzZWQgdG8gcGVybHRlc3Quc2guCgovKD9peCkoPyhERUZJTkUpCig/PGFkZHJfc3BlYz4gICAgICAgKD8mbG9jYWxfcGFydCkgXEAgKD8mZG9tYWluKSApCig/PGFuZ2xlX2FkZHI+ICAgICAgKD8mQ0ZXUyk/KyA8ICg/JmFkZHJfc3BlYykgPiAoPyZDRldTKT8rICkKKD88YXRleHQ+ICAgICAgICAgICBbYS16XGQhI1wkJSYnKistXHh7MmZ9PT9eX2B7fH1+XSApCig/PGF0b20+ICAgICAgICAgICAgKD8mQ0ZXUyk/KyAoPyZhdGV4dCkrICg/JkNGV1MpPysgKQooPzxjY29udGVudD4gICAgICAgICg/JmN0ZXh0KSB8ICg/JnF1b3RlZF9wYWlyKSB8ICg/JmNvbW1lbnQpICkKKD88Y3RleHQ+ICAgICAgICAgICBbXlx4ezl9XHh7MTB9XHh7MTN9XHh7N2Z9LVx4e2ZmfVwgKClcXF0gKQooPzxjb21tZW50PiAgICAgICAgIFwoICg/OiAoPyZGV1MpPysgKD8mY2NvbnRlbnQpICkqKyAoPyZGV1MpPysgXCkgKQooPzxDRldTPiAgICAgICAgICAgICg/OiAoPyZGV1MpPysgKD8mY29tbWVudCkgKSogKD8jIE5PVCBwb3NzZXNzaXZlKQogICAgICAgICAgICAgICAgICAgICg/OiAoPyZGV1MpPysgKD8mY29tbWVudCkgfCAoPyZGV1MpICkgKQooPzxkY29udGVudD4gICAgICAgICg/JmR0ZXh0KSB8ICg/JnF1b3RlZF9wYWlyKSApCig/PGRpc3BsYXlfbmFtZT4gICAgKD8mcGhyYXNlKSApCig/PGRvbWFpbj4gICAgICAgICAgKD8mZG90X2F0b20pIHwgKD8mZG9tYWluX2xpdGVyYWwpICkKKD88ZG9tYWluX2xpdGVyYWw+ICAoPyZDRldTKT8rIFxbICg/OiAoPyZGV1MpPysgKD8mZGNvbnRlbnQpICkqICg/JkZXUyk/KyBcXQogICAgICAgICAgICAgICAgICAgICg/JkNGV1MpPysgKQooPzxkb3RfYXRvbT4gICAgICAgICg/JkNGV1MpPysgKD8mZG90X2F0b21fdGV4dCkgKD8mQ0ZXUyk/KyApCig/PGRvdF9hdG9tX3RleHQ+ICAgKD8mYXRleHQpKysgKD86IFwuICg/JmF0ZXh0KSsrKSorICkKKD88ZHRleHQ+ICAgICAgICAgICBbXlx4ezl9XHh7MTB9XHh7MTN9XHh7N2Z9LVx4e2ZmfVwgXFtcXVxcXSApCig/PEZXUz4gICAgICAgICAgICAgKD86IFtcdFwgXSorIFxuKT8rIFtcdFwgXSsrICkKKD88bG9jYWxfcGFydD4gICAgICAoPyZkb3RfYXRvbSkgfCAoPyZxdW90ZWRfc3RyaW5nKSAgKQooPzxtYWlsYm94PiAgICAgICAgICg/Jm5hbWVfYWRkcikgfCAoPyZhZGRyX3NwZWMpICkKKD88bmFtZV9hZGRyPiAgICAgICAoPyZkaXNwbGF5X25hbWUpPyAoPyZhbmdsZV9hZGRyKSApCig/PHBocmFzZT4gICAgICAgICAgKD8md29yZCkrKyApCig/PHFjb250ZW50PiAgICAgICAgKD8mcXRleHQpIHwgKD8mcXVvdGVkX3BhaXIpICkKKD88cXVvdGVkX3BhaXI+ICAgICAiICg/JnRleHQpICkKKD88cXVvdGVkX3N0cmluZz4gICAoPyZDRldTKT8rICIgKD86ICg/JkZXUyk/KyAoPyZxY29udGVudCkpKiAoPyZGV1MpPysgIgogICAgICAgICAgICAgICAgICAgICg/JkNGV1MpPysgKQooPzxxdGV4dD4gICAgICAgICAgIFteXHh7OX1ceHsxMH1ceHsxM31ceHs3Zn0tXHh7ZmZ9XCAiXFxdICkKKD88dGV4dD4gICAgICAgICAgICBbXlxyXG5dICkKKD88d29yZD4gICAgICAgICAgICAoPyZhdG9tKSB8ICg/JnF1b3RlZF9zdHJpbmcpICkKKSAjIEVuZCBERUZJTkUKXig/Jm1haWxib3gpJC8KICAgIEFsYW4gT3RoZXIgPHVzZXJcQGRvbS5haW4+CiAgICA8dXNlclxAZG9tLmFpbj4KICAgIHVzZXJcQGRvbS5haW4KICAgIHVzZXJcQFtdIAogICAgdXNlclxAW2RvbWFpbiBsaXRlcmFsXSAKICAgIHVzZXJcQFtkb21haW4gbGl0ZXJhbCB3aXRoIFwiW3NxdWFyZSBicmFja2V0c1wiXSBpbnNpZGVdIAogICAgXCJBLiBPdGhlclwiIDx1c2VyLjEyMzRcQGRvbS5haW4+IChhIGNvbW1lbnQpCiAgICBBLiBPdGhlciA8dXNlci4xMjM0XEBkb20uYWluPiAoYSBjb21tZW50KQogICAgXCIvcz11c2VyL291PWhvc3Qvbz1wbGFjZS9wcm1kPXV1Lnl5L2FkbWQ9IC9jPWdiL1wiXEB4NDAwLXJlLmxheQpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIEEgbWlzc2luZyBhbmdsZSA8dXNlclxAc29tZS53aGVyZQogICAgVGhlIHF1aWNrIGJyb3duIGZveAogICAgCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gCgojIFRoaXMgcGF0dGVybiB1c2VzIG5hbWVkIGdyb3VwcyB0byBtYXRjaCBkZWZhdWx0IFBDUkUyIHBhdHRlcm5zLiBJdCdzIGFub3RoZXIKIyBoZWF2eSB0ZXN0IGZvciBuYW1lZCBzdWJwYXR0ZXJucy4gT25jZSBhZ2FpbiwgY29kZSBzbGFzaCBhcyBceHsyZn0gYW5kIGVzY2FwZSAKIyAkIGV2ZW4gaW4gY2xhc3NlcyBzbyB0aGF0IHRoaXMgd29ya3Mgd2l0aCBwY3JlMnRlc3QuCgovKD9zeCkoPyhERUZJTkUpCgooPzxhc3NlcnRpb24+ICAgICAgICAgKD8mc2ltcGxlX2Fzc2VydGlvbikgfCAoPyZsb29rYXJvdW5kKSApCgooPzxhdG9taWNfZ3JvdXA+ICAgICAgXCggXD8gPiAoPyZyZWdleCkgXCkgKQoKKD88YmFja19yZWZlcmVuY2U+ICAgIFxcIFxkKyB8CiAgICAgICAgICAgICAgICAgICAgICBcXGcgKD86IFsrLV0/XGQrIHwgXHsgKD86IFsrLV0/XGQrIHwgKD8mZ3JvdXBuYW1lKSApIFx9ICkgfAogICAgICAgICAgICAgICAgICAgICAgXFxrIDwoPyZncm91cG5hbWUpPiB8CiAgICAgICAgICAgICAgICAgICAgICBcXGsgJyg/Jmdyb3VwbmFtZSknIHwKICAgICAgICAgICAgICAgICAgICAgIFxcayBceyAoPyZncm91cG5hbWUpIFx9IHwKICAgICAgICAgICAgICAgICAgICAgIFwoIFw/IFA9ICg/Jmdyb3VwbmFtZSkgXCkgKQoKKD88YnJhbmNoPiAgICAgICAgICAgICg/Oig/JmFzc2VydGlvbikgfAogICAgICAgICAgICAgICAgICAgICAgICAgKD8mY2FsbG91dCkgfAogICAgICAgICAgICAgICAgICAgICAgICAgKD8mY29tbWVudCkgfAogICAgICAgICAgICAgICAgICAgICAgICAgKD8mb3B0aW9uX3NldHRpbmcpIHwKICAgICAgICAgICAgICAgICAgICAgICAgICg/JnF1YWxpZmllZF9pdGVtKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAoPyZxdW90ZWRfc3RyaW5nKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAoPyZxdW90ZWRfc3RyaW5nX2VtcHR5KSB8IAogICAgICAgICAgICAgICAgICAgICAgICAgKD8mc3BlY2lhbF9lc2NhcGUpIHwKICAgICAgICAgICAgICAgICAgICAgICAgICg/JnZlcmIpCiAgICAgICAgICAgICAgICAgICAgICApKiApCgooPzxjYWxsb3V0PiAgICAgICAgICAgXChcP0MgKD86IFxkKyB8IAogICAgICAgICAgICAgICAgICAgICAgKD86ICg/PEQ+WyInYF4lXCNcJF0pIAogICAgICAgICAgICAgICAgICAgICAgICAoPzogXGsnRCdcaydEJyB8ICg/IVxrJ0QnKSAuICkqIFxrJ0QnIHwKICAgICAgICAgICAgICAgICAgICAgIFx7ICg/OiBcfVx9IHwgW159XSorICkqIFx9ICkgCiAgICAgICAgICAgICAgICAgICAgICApPyBcKSApCgooPzxjYXB0dXJpbmdfZ3JvdXA+ICAgXCggKD86IFw/IFA/IDwgKD8mZ3JvdXBuYW1lKSA+IHwgXD8gJyAoPyZncm91cG5hbWUpICcgKT8KICAgICAgICAgICAgICAgICAgICAgICg/JnJlZ2V4KSBcKSApCgooPzxjaGFyYWN0ZXJfY2xhc3M+ICAgXFsgXF4/KyAoPzogXF0gKD8mY2xhc3NfaXRlbSkqIHwgKD8mY2xhc3NfaXRlbSkrICkgXF0gKQoKKD88Y2hhcmFjdGVyX3R5cGU+ICAgICg/ISBcXE5ce1x3K1x9ICkgXFwgW2REc1N3V2hIdlZSTl0gKQoKKD88Y2xhc3NfaXRlbT4gICAgICAgICg/OiBcWyA6ICg/OgogICAgICAgICAgICAgICAgICAgICAgYWxudW18YWxwaGF8YXNjaWl8Ymxhbmt8Y250cmx8ZGlnaXR8Z3JhcGh8bG93ZXJ8cHJpbnR8CiAgICAgICAgICAgICAgICAgICAgICBwdW5jdHxzcGFjZXx1cHBlcnx3b3JkfHhkaWdpdAogICAgICAgICAgICAgICAgICAgICAgKSA6IFxdIHwKICAgICAgICAgICAgICAgICAgICAgICg/JnF1b3RlZF9zdHJpbmcpIHwgIAogICAgICAgICAgICAgICAgICAgICAgKD8mcXVvdGVkX3N0cmluZ19lbXB0eSkgfCAKICAgICAgICAgICAgICAgICAgICAgICg/JmVzY2FwZWRfY2hhcmFjdGVyKSB8IAogICAgICAgICAgICAgICAgICAgICAgKD8mY2hhcmFjdGVyX3R5cGUpIHwgCiAgICAgICAgICAgICAgICAgICAgICBbXl1dICkgKQoKKD88Y29tbWVudD4gICAgICAgICAgIFwoXD9cIyBbXildKiBcKSB8ICg/JnF1b3RlZF9zdHJpbmdfZW1wdHkpIHwgXFxFICkKCig/PGNvbmRpdGlvbj4gICAgICAgICAoPzogXCggWystXT8gXGQrIFwpIHwKICAgICAgICAgICAgICAgICAgICAgICAgICBcKCA8ICg/Jmdyb3VwbmFtZSkgPiBcKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgXCggJyAoPyZncm91cG5hbWUpICcgXCkgfAogICAgICAgICAgICAgICAgICAgICAgICAgIFwoIFIgXGQqIFwpIHwKICAgICAgICAgICAgICAgICAgICAgICAgICBcKCBSICYgKD8mZ3JvdXBuYW1lKSBcKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgXCggKD8mZ3JvdXBuYW1lKSBcKSB8IAogICAgICAgICAgICAgICAgICAgICAgICAgIFwoIERFRklORSBcKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgXCggVkVSU0lPTiA+Pz1cZCsoPzpcLlxkXGQ/KT8gXCkgfAogICAgICAgICAgICAgICAgICAgICAgICAgICg/JmNhbGxvdXQpPysgKD8mY29tbWVudCkqICg/Jmxvb2thcm91bmQpICkgKQoKKD88Y29uZGl0aW9uYWxfZ3JvdXA+IFwoXD8gKD8mY29uZGl0aW9uKSAoPyZicmFuY2gpICg/OiBcfCAoPyZicmFuY2gpICk/IFwpICkKCig/PGRlbGltaXRlZF9yZWdleD4gICAoPzxkZWxpbWl0ZXI+IFstXHh7MmZ9ISInYD1fOjssJSZAfl0pICg/JnJlZ2V4KSAKICAgICAgICAgICAgICAgICAgICAgIFxrJ2RlbGltaXRlcicgLiogKQoKKD88ZXNjYXBlZF9jaGFyYWN0ZXI+IFxcICg/OiAwWzAtN117MSwyfSB8IFswLTddezEsM30gfCBvXHsgWzAtN10rIFx9IHwKICAgICAgICAgICAgICAgICAgICAgIHggXHsgKCpDT01NSVQpIFtbOnhkaWdpdDpdXSogXH0gfCB4IFtbOnhkaWdpdDpdXXswLDJ9IHwgCiAgICAgICAgICAgICAgICAgICAgICBbYWVmbnJ0XSB8IGNbWzpwcmludDpdXSB8CiAgICAgICAgICAgICAgICAgICAgICBbXls6YWxudW06XV0gKSApCgooPzxncm91cD4gICAgICAgICAgICAgKD8mY2FwdHVyaW5nX2dyb3VwKSB8ICg/Jm5vbl9jYXB0dXJpbmdfZ3JvdXApIHwKICAgICAgICAgICAgICAgICAgICAgICg/JnJlc2V0dGluZ19ncm91cCkgfCAoPyZhdG9taWNfZ3JvdXApIHwKICAgICAgICAgICAgICAgICAgICAgICg/JmNvbmRpdGlvbmFsX2dyb3VwKSApCgooPzxncm91cG5hbWU+ICAgICAgICAgW2EtekEtWl9dXHcqICkKCig/PGxpdGVyYWxfY2hhcmFjdGVyPiAoPyEgKD8mcmFuZ2VfcXVhbGlmaWVyKSApIFteWygpfCorPy5cJFxcXSApCgooPzxsb29rYXJvdW5kPiAgICAgICAgXChcPyAoPzogPSB8ICEgfCA8PSB8IDwhICkgKD8mcmVnZXgpIFwpICkKCig/PG5vbl9jYXB0dXJpbmdfZ3JvdXA+IFwoXD8gW2lKbW5zVXgtXSogOiAoPyZyZWdleCkgXCkgKQoKKD88b3B0aW9uX3NldHRpbmc+ICAgIFwoXD8gW2lKbW5zVXgtXSogXCkgKQoKKD88cXVhbGlmaWVkX2l0ZW0+ICAgICg/OlwuIHwKICAgICAgICAgICAgICAgICAgICAgICAgICg/Jmxvb2thcm91bmQpIHwKICAgICAgICAgICAgICAgICAgICAgICAgICg/JmJhY2tfcmVmZXJlbmNlKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAoPyZjaGFyYWN0ZXJfY2xhc3MpIHwKICAgICAgICAgICAgICAgICAgICAgICAgICg/JmNoYXJhY3Rlcl90eXBlKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAoPyZlc2NhcGVkX2NoYXJhY3RlcikgfAogICAgICAgICAgICAgICAgICAgICAgICAgKD8mZ3JvdXApIHwKICAgICAgICAgICAgICAgICAgICAgICAgICg/JnN1YnJvdXRpbmVfY2FsbCkgfAogICAgICAgICAgICAgICAgICAgICAgICAgKD8mbGl0ZXJhbF9jaGFyYWN0ZXIpIHwKICAgICAgICAgICAgICAgICAgICAgICAgICg/JnF1b3RlZF9zdHJpbmcpIAogICAgICAgICAgICAgICAgICAgICAgKSAoPyZjb21tZW50KT8gKD8mcXVhbGlmaWVyKT8gKQoKKD88cXVhbGlmaWVyPiAgICAgICAgICg/OiBbPyorXSB8ICg/JnJhbmdlX3F1YWxpZmllcikgKSBbKz9dPyApCgooPzxxdW90ZWRfc3RyaW5nPiAgICAgKD86IFxcUSAoPzogKD8hXFxFIHwgXGsnZGVsaW1pdGVyJykgLiApKysgKD86IFxcRSB8ICkgKSApIAogICAgICAgICAgICAgICAgICAgICAgCig/PHF1b3RlZF9zdHJpbmdfZW1wdHk+ICBcXFFcXEUgKSAKCig/PHJhbmdlX3F1YWxpZmllcj4gICBceyAoPzogXGQrICg/OiAsIFxkKiApPyB8ICwgXGQrICkgXH0gKQoKKD88cmVnZXg+ICAgICAgICAgICAgICg/JnN0YXJ0X2l0ZW0pKiAoPyZicmFuY2gpICg/OiBcfCAoPyZicmFuY2gpICkqICkKCig/PHJlc2V0dGluZ19ncm91cD4gICBcKCBcPyBcfCAoPyZyZWdleCkgXCkgKQoKKD88c2ltcGxlX2Fzc2VydGlvbj4gIFxeIHwgXCQgfCBcXEEgfCBcXGIgfCBcXEIgfCBcXEcgfCBcXHogfCBcXFogKQoKKD88c3BlY2lhbF9lc2NhcGU+ICAgIFxcSyApCgooPzxzdGFydF9pdGVtPiAgICAgICAgXCggXCogKD86CiAgICAgICAgICAgICAgICAgICAgICBBTlkgfAogICAgICAgICAgICAgICAgICAgICAgQU5ZQ1JMRiB8CiAgICAgICAgICAgICAgICAgICAgICBCU1JfQU5ZQ1JMRiB8CiAgICAgICAgICAgICAgICAgICAgICBCU1JfVU5JQ09ERSB8CiAgICAgICAgICAgICAgICAgICAgICBDUiB8CiAgICAgICAgICAgICAgICAgICAgICBDUkxGIHwKICAgICAgICAgICAgICAgICAgICAgIExGIHwKICAgICAgICAgICAgICAgICAgICAgIExJTUlUX01BVENIPVxkKyB8CiAgICAgICAgICAgICAgICAgICAgICBMSU1JVF9ERVBUSD1cZCsgfAogICAgICAgICAgICAgICAgICAgICAgTElNSVRfSEVBUD1cZCsgfCAKICAgICAgICAgICAgICAgICAgICAgIE5PVEVNUFRZIHwKICAgICAgICAgICAgICAgICAgICAgIE5PVEVNUFRZX0FUU1RBUlQgfAogICAgICAgICAgICAgICAgICAgICAgTk9fQVVUT19QT1NTRVNTIHwKICAgICAgICAgICAgICAgICAgICAgIE5PX0RPVFNUQVJfQU5DSE9SIHwKICAgICAgICAgICAgICAgICAgICAgIE5PX0pJVCB8CiAgICAgICAgICAgICAgICAgICAgICBOT19TVEFSVF9PUFQgfAogICAgICAgICAgICAgICAgICAgICAgTlVMIHwKICAgICAgICAgICAgICAgICAgICAgIFVURiB8CiAgICAgICAgICAgICAgICAgICAgICBVQ1AgKSBcKSApCgooPzxzdWJyb3V0aW5lX2NhbGw+ICAgKD86IFwoXD9SXCkgfCBcKFw/WystXT9cZCtcKSB8CiAgICAgICAgICAgICAgICAgICAgICBcKFw/ICg/OiAmIHwgUD4gKSAoPyZncm91cG5hbWUpIFwpIHwKICAgICAgICAgICAgICAgICAgICAgIFxcZyA8ICg/Jmdyb3VwbmFtZSkgPiB8CiAgICAgICAgICAgICAgICAgICAgICBcXGcgJyAoPyZncm91cG5hbWUpICcgfAogICAgICAgICAgICAgICAgICAgICAgXFxnIDwgWystXT8gXGQrID4gfAogICAgICAgICAgICAgICAgICAgICAgXFxnICcgWystXT8gXGQrICkgKQoKKD88dmVyYj4gICAgICAgICAgICAgIFwoXCogKD86IEFDQ0VQVCB8IEZBSUwgfCBGIHwgQ09NTUlUIHwKICAgICAgICAgICAgICAgICAgICAgICg/Ok1BUkspPzooPyZ2ZXJibmFtZSkgfAogICAgICAgICAgICAgICAgICAgICAgKD86UFJVTkV8U0tJUHxUSEVOKSAoPzogOiAoPyZ2ZXJibmFtZSk/ICk/ICkgXCkgKQoKKD88dmVyYm5hbWU+ICAgICAgICAgIFteKV0rICkKCikgIyBFbmQgREVGSU5FCiMgS2ljayBpdCBhbGwgb2ZmLi4uCl4oPyZkZWxpbWl0ZWRfcmVnZXgpJC9zdWJqZWN0X2xpdGVyYWwsaml0c3RhY2s9MjU2CiAgICAvXihhKShiKShjKShkKShlKShmKShnKShoKShpKShqKShrKVwxMSooXDNcNClcMSg/IykyJC8KICAgIC8oY2F0KGEocmFjdHx0b25pYyl8ZXJwaWxsYXIpKSBcMSgpMigzKS8KICAgIC9eRnJvbSArKFteIF0rKSArW2EtekEtWl1bYS16QS1aXVthLXpBLVpdICtbYS16QS1aXVthLXpBLVpdW2EtekEtWl0gK1swLTldP1swLTldICtbMC05XVswLTldOlswLTldWzAtOV0vCiAgICAvXkZyb21ccytcUytccysoW2EtekEtWl17M31ccyspezJ9XGR7MSwyfVxzK1xkXGQ6XGRcZC8KICAgIC88dHIoW1x3XFdcc1xkXVtePD5dezAsfSk+PFREKFtcd1xXXHNcZF1bXjw+XXswLH0pPihbXGRdezAsfVwuKSguKikoKDxCUj4oW1x3XFdcc1xkXVtePD5dezAsfSl8W1xzXXswLH0pKTxcL2E+PFwvVEQ+PFREKFtcd1xXXHNcZF1bXjw+XXswLH0pPihbXHdcV1xzXGRdW148Pl17MCx9KTxcL1REPjxURChbXHdcV1xzXGRdW148Pl17MCx9KT4oW1x3XFdcc1xkXVtePD5dezAsfSk8XC9URD48XC9UUj4vaXMKICAgIC9eKD8oREVGSU5FKSAoPzxBPiBhKSAoPzxCPiBiKSApICAoPyZBKSAoPyZCKSAvCiAgICAvKD8oREVGSU5FKSg/PGJ5dGU+MlswLTRdXGR8MjVbMC01XXwxXGRcZHxbMS05XT9cZCkpXGIoPyZieXRlKShcLig/JmJ5dGUpKXszfS8KICAgIC9cYig/JmJ5dGUpKFwuKD8mYnl0ZSkpezN9KD8oREVGSU5FKSg/PGJ5dGU+MlswLTRdXGR8MjVbMC01XXwxXGRcZHxbMS05XT9cZCkpLwogICAgL14oXHcrK3xccysrKSokLwogICAgL2ErYj8oKlRIRU4pYysoKkZBSUwpLwogICAgLyhBIChBfEIoKkFDQ0VQVCl8QykgRCkoRSkveAogICAgL15cVyorKD86KCguKVxXKisoPzEpXFcqK1wyfCl8KCguKVxXKisoPzMpXFcqK1w0fFxXKisuXFcqKykpXFcqKyQvaQogICAgL0EoKlBSVU5FKUIoKlNLSVApQygqVEhFTilEKCpDT01NSVQpRSgqRilGKCpGQUlMKUcoPyEpSCgqQUNDRVBUKUkvQgogICAgLyg/Q2BhYGBiYCkoP0MnYScnYicpKD9DImEiImIiKSg/Q15hXl5iXikoP0MlYSUlYiUpKD9DI2EjI2IjKSg/QyRhJCRiJCkoP0N7YX19Yn0pL0IsY2FsbG91dF9pbmZvCiAgICAvKD9zeCkoPyhERUZJTkUpKD88YXNzZXJ0aW9uPiAoPyZzaW1wbGVfYXNzZXJ0aW9uKSB8ICg/Jmxvb2thcm91bmQpICkoPzxhdG9taWNfZ3JvdXA+IFwoIFw/ID4gKD8mcmVnZXgpIFwpICkoPzxiYWNrX3JlZmVyZW5jZT4gXFwgXGQrIHwgXFxnICg/OiBbKy1dP1xkKyB8IFx7ICg/OiBbKy1dP1xkKyB8ICg/Jmdyb3VwbmFtZSkgKSBcfSApIHwgXFxrIDwoPyZncm91cG5hbWUpPiB8IFxcayAnKD8mZ3JvdXBuYW1lKScgfCBcXGsgXHsgKD8mZ3JvdXBuYW1lKSBcfSB8IFwoIFw/IFA9ICg/Jmdyb3VwbmFtZSkgXCkgKSg/PGJyYW5jaD4gKD86KD8mYXNzZXJ0aW9uKSB8ICg/JmNhbGxvdXQpIHwgKD8mY29tbWVudCkgfCAoPyZvcHRpb25fc2V0dGluZykgfCAoPyZxdWFsaWZpZWRfaXRlbSkgfCAoPyZxdW90ZWRfc3RyaW5nKSB8ICg/JnF1b3RlZF9zdHJpbmdfZW1wdHkpIHwgKD8mc3BlY2lhbF9lc2NhcGUpIHwgKD8mdmVyYikgKSogKSg/PGNhbGxvdXQ+IFwoXD9DICg/OiBcZCsgfCAoPzogKD88RD5bIidgXiVcI1wkXSkgKD86IFxrJ0QnXGsnRCcgfCAoPyFcaydEJykgLiApKiBcaydEJyB8IFx7ICg/OiBcfVx9IHwgW159XSorICkqIFx9ICkgKT8gXCkgKSg/PGNhcHR1cmluZ19ncm91cD4gXCggKD86IFw/IFA/IDwgKD8mZ3JvdXBuYW1lKSA+IHwgXD8gJyAoPyZncm91cG5hbWUpICcgKT8gKD8mcmVnZXgpIFwpICkoPzxjaGFyYWN0ZXJfY2xhc3M+IFxbIFxePysgKD86IFxdICg/JmNsYXNzX2l0ZW0pKiB8ICg/JmNsYXNzX2l0ZW0pKyApIFxdICkoPzxjaGFyYWN0ZXJfdHlwZT4gKD8hIFxcTlx7XHcrXH0gKSBcXCBbZERzU3dXaEh2VlJOXSApKD88Y2xhc3NfaXRlbT4gKD86IFxbIDogKD86IGFsbnVtfGFscGhhfGFzY2lpfGJsYW5rfGNudHJsfGRpZ2l0fGdyYXBofGxvd2VyfHByaW50fCBwdW5jdHxzcGFjZXx1cHBlcnx3b3JkfHhkaWdpdCApIDogXF0gfCAoPyZxdW90ZWRfc3RyaW5nKSB8ICg/JnF1b3RlZF9zdHJpbmdfZW1wdHkpIHwgKD8mZXNjYXBlZF9jaGFyYWN0ZXIpIHwgKD8mY2hhcmFjdGVyX3R5cGUpIHwgW15dXSApICkoPzxjb21tZW50PiBcKFw/XCMgW14pXSogXCkgfCAoPyZxdW90ZWRfc3RyaW5nX2VtcHR5KSB8IFxcRSApKD88Y29uZGl0aW9uPiAoPzogXCggWystXT8gXGQrIFwpIHwgXCggPCAoPyZncm91cG5hbWUpID4gXCkgfCBcKCAnICg/Jmdyb3VwbmFtZSkgJyBcKSB8IFwoIFIgXGQqIFwpIHwgXCggUiAmICg/Jmdyb3VwbmFtZSkgXCkgfCBcKCAoPyZncm91cG5hbWUpIFwpIHwgXCggREVGSU5FIFwpIHwgXCggVkVSU0lPTiA+Pz1cZCsoPzpcLlxkXGQ/KT8gXCkgfCAoPyZjYWxsb3V0KT8rICg/JmNvbW1lbnQpKiAoPyZsb29rYXJvdW5kKSApICkoPzxjb25kaXRpb25hbF9ncm91cD4gXChcPyAoPyZjb25kaXRpb24pICg/JmJyYW5jaCkgKD86IFx8ICg/JmJyYW5jaCkgKT8gXCkgKSg/PGRlbGltaXRlZF9yZWdleD4gKD88ZGVsaW1pdGVyPiBbLVx4ezJmfSEiJ2A9Xzo7LCUmQH5dKSAoPyZyZWdleCkgXGsnZGVsaW1pdGVyJyAuKiApKD88ZXNjYXBlZF9jaGFyYWN0ZXI+IFxcICg/OiAwWzAtN117MSwyfSB8IFswLTddezEsM30gfCBvXHsgWzAtN10rIFx9IHwgeCBceyAoKkNPTU1JVCkgW1s6eGRpZ2l0Ol1dKiBcfSB8IHggW1s6eGRpZ2l0Ol1dezAsMn0gfCBbYWVmbnJ0XSB8IGNbWzpwcmludDpdXSB8IFteWzphbG51bTpdXSApICkoPzxncm91cD4gKD8mY2FwdHVyaW5nX2dyb3VwKSB8ICg/Jm5vbl9jYXB0dXJpbmdfZ3JvdXApIHwgKD8mcmVzZXR0aW5nX2dyb3VwKSB8ICg/JmF0b21pY19ncm91cCkgfCAoPyZjb25kaXRpb25hbF9ncm91cCkgKSg/PGdyb3VwbmFtZT4gW2EtekEtWl9dXHcqICkoPzxsaXRlcmFsX2NoYXJhY3Rlcj4gKD8hICg/JnJhbmdlX3F1YWxpZmllcikgKSBbXlsoKXwqKz8uXCRcXF0gKSg/PGxvb2thcm91bmQ+IFwoXD8gKD86ID0gfCAhIHwgPD0gfCA8ISApICg/JnJlZ2V4KSBcKSApKD88bm9uX2NhcHR1cmluZ19ncm91cD4gXChcPyBbaUptbnNVeC1dKiA6ICg/JnJlZ2V4KSBcKSApKD88b3B0aW9uX3NldHRpbmc+IFwoXD8gW2lKbW5zVXgtXSogXCkgKSg/PHF1YWxpZmllZF9pdGVtPiAoPzpcLiB8ICg/Jmxvb2thcm91bmQpIHwgKD8mYmFja19yZWZlcmVuY2UpIHwgKD8mY2hhcmFjdGVyX2NsYXNzKSB8ICg/JmNoYXJhY3Rlcl90eXBlKSB8ICg/JmVzY2FwZWRfY2hhcmFjdGVyKSB8ICg/Jmdyb3VwKSB8ICg/JnN1YnJvdXRpbmVfY2FsbCkgfCAoPyZsaXRlcmFsX2NoYXJhY3RlcikgfCAoPyZxdW90ZWRfc3RyaW5nKSApICg/JmNvbW1lbnQpPyAoPyZxdWFsaWZpZXIpPyApKD88cXVhbGlmaWVyPiAoPzogWz8qK10gfCAoPyZyYW5nZV9xdWFsaWZpZXIpICkgWys/XT8gKSg/PHF1b3RlZF9zdHJpbmc+ICg/OiBcXFEgKD86ICg/IVxcRSB8IFxrJ2RlbGltaXRlcicpIC4gKSsrICg/OiBcXEUgfCApICkgKSAoPzxxdW90ZWRfc3RyaW5nX2VtcHR5PiBcXFFcXEUgKSAoPzxyYW5nZV9xdWFsaWZpZXI+IFx7ICg/OiBcZCsgKD86ICwgXGQqICk/IHwgLCBcZCsgKSBcfSApKD88cmVnZXg+ICg/JnN0YXJ0X2l0ZW0pKiAoPyZicmFuY2gpICg/OiBcfCAoPyZicmFuY2gpICkqICkoPzxyZXNldHRpbmdfZ3JvdXA+IFwoIFw/IFx8ICg/JnJlZ2V4KSBcKSApKD88c2ltcGxlX2Fzc2VydGlvbj4gXF4gfCBcJCB8IFxcQSB8IFxcYiB8IFxcQiB8IFxcRyB8IFxceiB8IFxcWiApKD88c3BlY2lhbF9lc2NhcGU+IFxcSyApKD88c3RhcnRfaXRlbT4gXCggXCogKD86IEFOWSB8IEFOWUNSTEYgfCBCU1JfQU5ZQ1JMRiB8IEJTUl9VTklDT0RFIHwgQ1IgfCBDUkxGIHwgTEYgfCBMSU1JVF9NQVRDSD1cZCsgfCBMSU1JVF9ERVBUSD1cZCsgfCBMSU1JVF9IRUFQPVxkKyB8IE5PVEVNUFRZIHwgTk9URU1QVFlfQVRTVEFSVCB8IE5PX0FVVE9fUE9TU0VTUyB8IE5PX0RPVFNUQVJfQU5DSE9SIHwgTk9fSklUIHwgTk9fU1RBUlRfT1BUIHwgTlVMIHwgVVRGIHwgVUNQICkgXCkgKSg/PHN1YnJvdXRpbmVfY2FsbD4gKD86IFwoXD9SXCkgfCBcKFw/WystXT9cZCtcKSB8IFwoXD8gKD86ICYgfCBQPiApICg/Jmdyb3VwbmFtZSkgXCkgfCBcXGcgPCAoPyZncm91cG5hbWUpID4gfCBcXGcgJyAoPyZncm91cG5hbWUpICcgfCBcXGcgPCBbKy1dPyBcZCsgPiB8IFxcZyAnIFsrLV0/IFxkKyApICkoPzx2ZXJiPiBcKFwqICg/OiBBQ0NFUFQgfCBGQUlMIHwgRiB8IENPTU1JVCB8ICg/Ok1BUkspPzooPyZ2ZXJibmFtZSkgfCAoPzpQUlVORXxTS0lQfFRIRU4pICg/OiA6ICg/JnZlcmJuYW1lKT8gKT8gKSBcKSApKD88dmVyYm5hbWU+IFteKV0rICkpXig/JmRlbGltaXRlZF9yZWdleCkkLwpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIC8oKD8oP0MnJylcUVhcRSg/ISgoPyg/QycnKSg/IVg9WCkpOz0pcipYPVgpKTs9KS8KICAgIC8oPzooPygyeSlhfGIpKFgpKSsvCiAgICAvYSgqTUFSSyliLwogICAgL2EoKkNSKWIvCiAgICAvKD9QPGFibj4oP1A9YWJuKSg/PGJhZHN0dWZ4eHgpLwoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAKCi88KD94OlthIGJdKT4veHgKICAgIDwgPgoKLzwoPzpbYSBiXSk+L3h4CiAgICA8ID4KCi88KD94eHg6W2EgYl0pPi8KICAgIDwgPgogICAgCi88KD8teDpbYSBiXSk+L3h4CiAgICA8ID4KCi9bWzpkaWdpdDpdLV0rLwogICAgMTItMjQKCi8oKD88PSgoKkFDQ0VQVCkpIClcMT9cYikgLwpcPSBFeHBlY3Qgbm8gbWF0Y2ggICAgIAogICAgKCg/PD0oKCpBQ0NFUFQpKSApXFwxP1xcYilceDIwCgovKCg/PD0oKCpBQ0NFUFQpKVgpXDE/WSlcMS8KICAgIFhZWVoKCi8oKD88PSgoKkFDQ0VQVCkpWClcMT9ZKCpBQ0NFUFQpKVwxLwogICAgWFlZWgoKLyg/KERFRklORSkoPzxvcHRpb25hbF9hPmE/KVgpXig/Jm9wdGlvbmFsX2EpYSQvCiAgICBhYQogICAgYQoKL14oYT8pYig/MSlhLwogICAgYWJhYQogICAgYWJhIAogICAgYmFhCiAgICBiYSAgCgovXihhPykrYig/MSlhLwogICAgYWJhYQogICAgYWJhIAogICAgYmFhCiAgICBiYSAgCgovXihhPykrK2IoPzEpYS8KICAgIGFiYWEKICAgIGFiYSAKICAgIGJhYQogICAgYmEgIAoKL14oYT8pK2IvCiAgICBiCiAgICBhYgogICAgYWFhYiAKCi8oPz1hKylhKGErKSsrYi8KICAgIGFhYgoKLyg/PD1cRy4pL2csYWZ0ZXJ0ZXh0CiAgICBhYmMKCi8oPzw9KD89Lik/KS8KCi8oPzw9KD89Lik/KykvCgovKD88PSg/PS4pKikvCgovKD88PSg/PS4pezQsNX0pLwoKLyg/PD0oPz0uKXs0LDV9eCkvCgovYSg/PS4oKjpYKSkoKlNLSVA6WCkoKkYpfCguKS8KICAgIGFiYwoKL2EoPz4oKjpYKSkoKlNLSVA6WCkoKkYpfCguKS8KICAgIGFiYwoKL2EoPzooKjpYKSkoKlNLSVA6WCkoKkYpfCguKS8KICAgIGFiYwoKI3BhdHRlcm4gbm9fc3RhcnRfb3B0aW1pemUKCi8oPz5hKCo6MSkpKD8+YigqOjEpKSgqU0tJUDoxKXh8LiovCiAgICBhYmMKCi8oPz5hKCo6MSkpKD8+YikoKlNLSVA6MSl4fC4qLwogICAgYWJjCgojc3ViamVjdCBtYXJrCgovYSgqQUNDRVBUOlgpYi8KICAgIGFiYwogICAgCi8oPz1hKCpBQ0NFUFQ6UVEpYmMpYXh5ei8KICAgIGF4eXoKCi8oPyhERUZJTkUpKGEoKkFDQ0VQVDpYKSkpKD8xKWIvCiAgICBhYmMKICAgIAovYSgqRjpYKWIvCiAgICBhYmMKICAgIAovKD8oREVGSU5FKShhKCpGOlgpKSkoPzEpYi8KICAgIGFiYwoKL2EoKkNPTU1JVDpYKWIvCiAgICBhYmMKICAgIAovKD8oREVGSU5FKShhKCpDT01NSVQ6WCkpKSg/MSliLwogICAgYWJjCiAgICAKL2ErKCo6WiliKCpDT01NSVQ6WCkoKlNLSVA6WiljfC4qLwogICAgYWFhYWJkCgovYSsoKjpaKWIoKkNPTU1JVDpYKSgqU0tJUDpYKWN8LiovCiAgICBhYWFhYmQKCi9hKCpDT01NSVQ6WCliLwogICAgYXhhYmMKCiNwYXR0ZXJuIC1ub19zdGFydF9vcHRpbWl6ZQojc3ViamVjdCAtbWFyayAKCi8oLkNPTU1JVCkoKkNPTU1JVDo6Ojo6Ojo6OjppbnRlcmFsIGVycm9yOjo6KS8KCi8oKkNPTU1JVDr//ykvCgovKCpDT01NSVQ6XXcpLwoKLyg/aSlBKD9eKUIoP154OkMgRCkoP15pKWUgZi8KICAgIGFCQ0RFIEYKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhQkNERUYKICAgIEFiQ0RlIGYKCi8oKnBsYTpmb28pLns2fS8KICAgIGFiY2Zvb2Jhcnh5egpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY2Zvb2JhCgovKCpwb3NpdGl2ZV9sb29rYWhlYWQ6Zm9vKS57Nn0vCiAgICBhYmNmb29iYXJ4eXoKICAgIAovKD8oKnBsYTpmb28pLns2fXxhLi4pLwogICAgZm9vYmFyYmF6CiAgICBhYmNmb29iYXIgICAgICAgCgovKD8oKnBvc2l0aXZlX2xvb2thaGVhZDpmb28pLns2fXxhLi4pLwogICAgZm9vYmFyYmF6CiAgICBhYmNmb29iYXIgICAgICAgCiAgICAKLygqcGxiOmZvbyliYXIvCiAgICBhYmNmb29iYXIKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmNiYXJmb28gICAgIAoKLygqcG9zaXRpdmVfbG9va2JlaGluZDpmb28pYmFyLwogICAgYWJjZm9vYmFyClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjYmFyZm9vCiAgICAKLyg/KCpwbGI6Zm9vKWJhcnxiYXopLwogICAgYWJjZm9vYmFyCiAgICBiYXpmb29iYXIKICAgIGFiY2JhemZvb2JhcgogICAgZm9vYmF6Zm9vYmFyICAgIAogCi8oPygqcG9zaXRpdmVfbG9va2JlaGluZDpmb28pYmFyfGJheikvCiAgICBhYmNmb29iYXIKICAgIGJhemZvb2JhcgogICAgYWJjYmF6Zm9vYmFyCiAgICBmb29iYXpmb29iYXIgICAgCiAKLygqbmxiOmZvbyliYXIvCiAgICBhYmNiYXJmb28gICAgIApcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIGFiY2Zvb2JhcgoKLygqbmVnYXRpdmVfbG9va2JlaGluZDpmb28pYmFyLwogICAgYWJjYmFyZm9vICAgICAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmNmb29iYXIKICAgIAovKD8oKm5sYjpmb28pYmFyfGJheikvCiAgICBhYmNmb29iYXogCiAgICBhYmNiYXJiYXogClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWJjZm9vYmFyCiAKLyg/KCpuZWdhdGl2ZV9sb29rYmVoaW5kOmZvbyliYXJ8YmF6KS8KICAgIGFiY2Zvb2JheiAKICAgIGFiY2JhcmJheiAKXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmNmb29iYXIKIAovKCphdG9taWM6YSspXHcvCiAgICBhYWFiClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhYSAgICAgIAoKLyAgICg/PHdvcmQ+IFx3KyApKiAgICBcLiAgIC94aQogICAgcG9rdXMuCiAgICAKLyg/KERFRklORSkgKD88d29yZD4gXHcrICkgKSAoPyZ3b3JkKSogICBcLi94aQogICAgcG9rdXMuCgovKD8oREVGSU5FKSAoPzx3b3JkPiBcdysgKSApICggKD8md29yZCkqICkgICBcLi94aSAKICAgIHBva3VzLgoKLyg/JndvcmQpKiAgKD8oREVGSU5FKSAoPzx3b3JkPiBcdysgKSApICBcLi94aQogICAgcG9rdXMuCgovKD8md29yZCkqICBcLiAoPzx3b3JkPiBcdysgKS94aQogICAgcG9rdXMuaG9rdXMKCi9hKD8oPz0oKjoyKWIpLikvbWFyawogICAgYWJjCiAgICBhY2IgICAgIAoKL2EoPyg/ISgqOjIpYikuKS9tYXJrCiAgICBhY2IKICAgIGFiYyAgICAgCgovKD86YXxhYil7MX0rYy8KXD0gRXhwZWN0IG5vIG1hdGNoCiAgICBhYmMKCi8oYXxhYil7MX0rYy8KICAgIGFiYwogICAgCi8oYSspezF9K2EvClw9IEV4cGVjdCBubyBtYXRjaAogICAgYWFhYQoKLyg/KERFRklORSkoYXxhYikpKD8xKXsxfStjLwogICAgYWJjICAgIAoKLyg/OmF8KD89Yil8LikqXHovCiAgICBhYmMKICAgIAovKD86YXwoPz1iKXwuKSovCiAgICBhYmMgCiAgICAKLyg/PD1hKCpTS0lQKXgpfGMvCiAgICBhYmNkCiAgICAKLyg/PD1hKCpTS0lQKXgpfGQvCiAgICBhYmNkCiAKLyg/PD0oPz0uKD88PXgpKSkvYWZ0ZXJ0ZXh0CiAgICBhYngKCi8oPzw9KD89KD88PWEpKSliLwogICAgYWIKCi9eKD88QT5hKSg/KDxBPiliKSgoPzw9YikuKikkLwogICAgYWJjCgovXihhXDE/KXs0fSQvCiAgICBhYWFhCiAgICBhYWFhYWEKCi9eKChcMSspfFxkKSsxMzNYJC8KICAgIDExMTEzM1gKCi9eKD89LiooPz0oKFtBLVpdKS4qKD8oMSlcMSkpKSg/IS4rXDIpKXsyNn0vaQogICAgVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4KICAgIEphY2tkYXdzIGxvdmUgbXkgYmlnIHNwaGlueCBvZiBxdWFydHouCiAgICBQYWNrIG15IGJveCB3aXRoIGZpdmUgZG96ZW4gbGlxdW9yIGp1Z3MuClw9IEV4cGVjdCBubyBtYXRjaAogICAgVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGNhdC4KICAgIEhhY2tkYXdzIGxvdmUgbXkgYmlnIHNwaGlueCBvZiBxdWFydHouCiAgICBQYWNrIG15IGZveCB3aXRoIGZpdmUgZG96ZW4gbGlxdW9yIGp1Z3MuCgovXig/Pi4qPyhbQS1aXSkoPyEuKlwxKSl7MjZ9L2kKICAgIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuCiAgICBKYWNrZGF3cyBsb3ZlIG15IGJpZyBzcGhpbnggb2YgcXVhcnR6LgogICAgUGFjayBteSBib3ggd2l0aCBmaXZlIGRvemVuIGxpcXVvciBqdWdzLgpcPSBFeHBlY3Qgbm8gbWF0Y2gKICAgIFRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBjYXQuCiAgICBIYWNrZGF3cyBsb3ZlIG15IGJpZyBzcGhpbnggb2YgcXVhcnR6LgogICAgUGFjayBteSBmb3ggd2l0aCBmaXZlIGRvemVuIGxpcXVvciBqdWdzLgoKLyg/PD1YKD8oREVGSU5FKShBKSkpWCgqRikvClw9IEV4cGVjdCBubyBtYXRjaAogICAgQVhZWgoKLyg/PD1YKD8oREVGSU5FKShBKSkpLi8KICAgIEFYWVoKCi8oPzw9WCg/KERFRklORSkoLiopKVkpLi8KICAgIEFYWVoKCi8oPzw9WCg/KERFRklORSkoWSkpKD8xKSkuLwogICAgQVhZWgoKLyg/KERFRklORSkoPzxmb28+YmFyKSkoPzwhWy1hLXowLTldKXdvcmQvCiAgICB3b3JkCgovYXsxLDIsM31iLwogICAgYXsxLDIsM31iCgovXDIxNDc0ODM2NC8KICAgID5ceHs4Y303NDgzNjQ8CiAgICAKL2F7NjU1MzYvCiAgICA+YXs2NTUzNjwKCi9hXEsuKD8wKSovCiAgICBhYmFjCgovKGFcSy4oPzEpKikvCiAgICBhYmFjCgojIEVuZCBvZiB0ZXN0aW5wdXQxIAo=